flower
/
All feedback
Idea planned #37 routed · brief

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"
        }
    ]
}

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.

Delete permanently?