A node composition that drops the provisioner client's account what runs names is said (issue 774)
Applied, a node's own composition naming no account refuses every filled write and hands no module, which on ace went unsaid from 01:29 to 01:33 but for the refusals themselves. The pass now says it once, naming the account what runs names. A placed client keeps its account by the previous commit; this says the case that is left, a client no longer composed here. Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
This commit is contained in:
@@ -915,6 +915,13 @@ func (c *Composer) compose(ctx context.Context) []agent.Update {
|
|||||||
}
|
}
|
||||||
c.paid()
|
c.paid()
|
||||||
pass.Held = held
|
pass.Held = held
|
||||||
|
// The provisioner client's account the node runs with, dropped by this pass, is said: every filled write is refused
|
||||||
|
// under a declaration that names none (filling.JudgeAccount), and no module is handed to it (issue 774, ace,
|
||||||
|
// 2026-11-04 01:29). A placed client keeps its account while it is held (compose.Node.RunningProvisioner).
|
||||||
|
if was, now := ownProvisioner(running), ownProvisioner(mapValues(compositions)); was != "" && now == "" && nodeWanted {
|
||||||
|
c.sayOnceEach(fmt.Sprintf("the node's own composition names no provisioner client's account, where what runs names %s: "+
|
||||||
|
"once applied, every filled write is refused and no module is handed to the provisioner", was))
|
||||||
|
}
|
||||||
// A module refused alone is held: it keeps what it runs, its have says why, and every other module is applied (issue
|
// A module refused alone is held: it keeps what it runs, its have says why, and every other module is applied (issue
|
||||||
// 1126: one module's refusal froze the whole node).
|
// 1126: one module's refusal froze the whole node).
|
||||||
done := c.waiting("the agent marking each held module's have")
|
done := c.waiting("the agent marking each held module's have")
|
||||||
@@ -1699,3 +1706,21 @@ func (c *Composer) ComposedToday(ctx context.Context, module, fp string) (string
|
|||||||
}
|
}
|
||||||
return "", false
|
return "", false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ownProvisioner is the provisioner client's account the node's own composition among cs names, or "".
|
||||||
|
func ownProvisioner(cs []delivery.Composed) string {
|
||||||
|
for _, c := range cs {
|
||||||
|
if c.Module == "" {
|
||||||
|
return c.Own.Provisioner
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func mapValues(m map[string]delivery.Composed) []delivery.Composed {
|
||||||
|
out := make([]delivery.Composed, 0, len(m))
|
||||||
|
for _, k := range slices.Sorted(maps.Keys(m)) {
|
||||||
|
out = append(out, m[k])
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user