spawn, engine: act on the daemon's .down verdict instead of the screen (spawn recovery U8) #4

Merged
caoer115 merged 3 commits from timeline-consumes-down into main 2026-10-27 05:53:29 +00:00
Owner

Plan U8 of spawn recovery (sessions 27-04-spawn-recovery): the runner learns a spawn walled from the daemon's .down verdict, not the pane's screen.

  • Every spawn seeds --set timeline=<slug>.
  • Each tick, Watch reads .agent.down from ccc-agent get <id> --json for every seat fired in the last 24 h.
    • Seated card: the key settles taken_over (the fleet takeover replaces it), told once.
    • Unseated: ended (kill --any, then the seat's cccd session killme --delay 1 when the kill fails, only closes the pane, or the seat is still listed), recorded down, and re-run at once — on the record's next fallback: entry, else on .down.next (model, effort, launcher). No step left, out of attempts, or the entry changed: settles as an error, marked and told.
    • No .down reads as working (a daemon older than the verdict watches nothing).
  • walledRe and its screen read go.
  • Module launcher example: ark/glm-5.3 (the model ucc-glm-vol pins) → ucc-glm-vol.

Fixtures: ccc-statusd's own Engine.Get Result at 549b7b69 (PR #1090). Merge after ccc-statusd #1090 lands with the same .down shape.

Tests: go test ./... green on workstation-nyc-2.

Plan U8 of spawn recovery (sessions 27-04-spawn-recovery): the runner learns a spawn walled from the daemon's `.down` verdict, not the pane's screen. - Every spawn seeds `--set timeline=<slug>`. - Each tick, `Watch` reads `.agent.down` from `ccc-agent get <id> --json` for every seat fired in the last 24 h. - Seated card: the key settles `taken_over` (the fleet takeover replaces it), told once. - Unseated: ended (`kill --any`, then the seat's `cccd session killme --delay 1` when the kill fails, only closes the pane, or the seat is still listed), recorded `down`, and re-run at once — on the record's next `fallback:` entry, else on `.down.next` (model, effort, launcher). No step left, out of attempts, or the entry changed: settles as an error, marked and told. - No `.down` reads as working (a daemon older than the verdict watches nothing). - `walledRe` and its screen read go. - Module launcher example: `ark/glm-5.3` (the model `ucc-glm-vol` pins) → `ucc-glm-vol`. Fixtures: ccc-statusd's own `Engine.Get` Result at 549b7b69 (PR #1090). Merge after ccc-statusd #1090 lands with the same `.down` shape. Tests: `go test ./...` green on workstation-nyc-2.
Every spawn seeds --set timeline=<slug>. Each tick, Watch reads .down from
ccc-agent get --json for every seat fired in the last 24 h. A seated card's
down settles the key as taken_over (the fleet takeover owns it); an unseated
one is ended (kill --any, then the seat's killme when the kill fails or the
seat is still listed) and re-run at once: on the record's next fallback:
entry, else on .down.next (model, effort, launcher). No .down reads as
working. walledRe and its screen read go. The module's launcher example maps
ark/glm-5.3 (the model ucc-glm-vol pins) to ucc-glm-vol.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
caoer115/agent-timeline!4
No description provided.