Dispatch lifecycle visibility: pending strip + presumed-dead surfacing (v1.18.0) #42
Loading…
Reference in a new issue
No description provided.
Delete branch "oss-oo/observatory-lifecycle-p-nkyp20260925"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivated by three silent dispatcher deaths in one day (2026-09-25) that were only noticed because the Running table went empty. Pairs with zcode-dispatch v0.3.4 (merged, released, installed) whose lifecycle ledger feeds this round.
Pending strip. A slim strip above Running lists lifecycle-ledger entries without a live session yet: chips with project/model/age and a breathing dot. Normal state: seconds while the app-server boots the session, then the chip resolves as the session appears in Running.
Anomaly states. Pending >
ZDO_PENDING_DISPATCH_MS(120 s default) → AMBER glow. Presumed-dead (reaper flagged the process gone without a terminal state) → RED glow, copy buttons for the cwd and result-file path so the owner can hand the creator session the trail, and the row STAYS until dismissed (✕ — observatory-local state in observatory-state.json, pruned when the ledger cap ages the id out; the ledger itself is read-only here). Completed dispatches are not shown; no ledger (older dispatcher) → empty strip.API:
/api/sessionsgainsdispatches; newPOST /api/dispatch/dismiss.Verification: unit tests for the row derivation (pending/amber/red precedence, dismissal, garbage tolerance, state pruning — 11 tests green); live CDP DOM probes in a real headless browser confirmed chip classes, copy payloads, and dismissal across a full reload; Super-Linter green on the verified lane set (BASH/BASH_EXEC/MARKDOWN/PYTHON_PYLINT/PYTHON_RUFF/YAML).
README: lifecycle paragraph (fired → pending → running → done/presumed-dead) and what each glow means.