diff --git a/internal/agent/agent.go b/internal/agent/agent.go index 9b6d4c2..45bf7d8 100644 --- a/internal/agent/agent.go +++ b/internal/agent/agent.go @@ -1552,7 +1552,12 @@ func (a *Agent) waitsForYes(ctx context.Context, module string, w wantNow, comp // Composed back to what runs: a have still waiting for a yes for a move since gone says running again, or it waits // for a yes nobody needs (issue 774, 2026-10-31: four providers stayed waiting-yes once their consumers composed). if h, ok := a.env.Haves.Read(ctx, module); ok && h.Phase == string(delivery.PhaseWaitingYes) { - a.writeHave(ctx, Have{Module: module, FP: r.FP, Composed: r.Composed, Phase: string(delivery.PhaseRunning), Sealed: h.Sealed}) + // Its sealed values only when they are of what runs; else writeHave reads them (sealedOf). + var sealed delivery.Seals + if h.Composed == r.Composed { + sealed = h.Sealed + } + a.writeHave(ctx, Have{Module: module, FP: r.FP, Composed: r.Composed, Phase: string(delivery.PhaseRunning), Sealed: sealed}) } return false }