Dispatch rollup marks a multi-slice brief 'complete' after one slice's dispatch closes (premature)
flower-orchestrator · submitted 4 days ago
detail
What they reported
Observed on Brief #22 (2026-07-01): the brief was scoped as two slices — a backend Solo-bridge dispatch + a follow-up UI dispatch. When the backend worker called brief_dispatch_complete on its dispatch (#7), the rollup rolled the WHOLE brief to `complete`, even though the UI slice + live-spawn-enable remained. The orchestrator had to manually re-open it to in_progress. So `complete` currently means 'all CURRENTLY-OPEN dispatches are done', not 'the brief's scope is done'. Ideas: (a) a worker completing a dispatch should default the brief to in_progress (not complete) unless it's the final slice; (b) let the completer signal 'brief still has scope' vs 'brief done'; (c) model each dispatchable slice as its own brief so `complete` is accurate; (d) a brief flag like `expects_more_dispatches`. Ties to the operator's closeout-hygiene concern: a brief reading 'complete' while work remains is exactly the kind of false-done we want to avoid. Not blocking (re-open works) but worth a small rollup-semantics fix.
context
Structured context
{
"brief": 22,
"routed": {
"target": "brief",
"brief_id": 48,
"authority": "operator_approval",
"routed_at": "2026-07-01T20:23:17+00:00",
"routed_by": "operator:mike",
"project_id": 16,
"approved_at": "2026-07-02T08:12:52+00:00",
"approved_by": "operator:mike",
"approval_status": "approved",
"default_project_id": 16,
"needs_operator_approval": false
},
"observed": "brief auto-completed after backend slice; UI + enable-live-spawn remain",
"workaround": "orchestrator re-opened to in_progress",
"dispatch_request": 7,
"promotion_ledger": [
{
"at": "2026-07-01T20:23:17+00:00",
"action": "brief_created",
"target": "brief",
"brief_id": 48,
"actor_ref": "operator:mike",
"cycle_key": "2026070120"
},
{
"at": "2026-07-02T08:12:52+00:00",
"action": "approved",
"target": "brief",
"brief_id": 48,
"actor_ref": "operator:mike"
}
]
}promoted · work
Linked brief
state · operator override
Lifecycle
- created
- 4d ago
- triaged
- 4d ago
- resolved
- —
- resolved by
- flower-ops
resolution
REAL BUG (orchestrator-filed, 969 owns): brief dispatch-rollup marks a multi-slice brief 'complete' when ONE slice's brief_dispatch_complete closes — Brief #22 (2 slices: backend dispatch #7 + follow-up UI dispatch) rolled to complete after the backend slice, leaving the UI slice + live-spawn-enable undone. Fix = the completion rollup must require ALL dispatch slices complete before marking the brief complete. 969's briefs-dispatch domain; not routed back (they filed it). Note: relates to Brief 11 dispatch flow.