Skip to content

[WIP prerequisite] preserve cached snapshot semantics for #850 - #1195

Draft
sethkarten wants to merge 13 commits into
mainfrom
v080/prereq-850-ci-candidate
Draft

[WIP prerequisite] preserve cached snapshot semantics for #850#1195
sethkarten wants to merge 13 commits into
mainfrom
v080/prereq-850-ci-candidate

Conversation

@sethkarten

@sethkarten sethkarten commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Purpose

Draft prerequisite validation of the contributor #850 semantics plus the cached-snapshot correction, based on main solely so the repository CI workflow runs. This is a CI-validation and collaboration surface, not a v0.8 stack deliverable and not ready for human merge review.

Exact candidate

  • Reviewed tree commit: dba83904c43f0f32be4e62c74e8678d9a0bd7abc
  • CI head: a6db0246b52cea74f2f675fea95ac43c9842d39a (one-line test-type fixture repair atop the ancestry/CI commits; production tree remains reviewed dba83904...; contributor head is a parent)
  • Parent reviewed restack backup: 0026c8adc13d29fd9efcb52b28fe2adbb9dbb7a0
  • Contributor fix(coding-agent): report accurate worker lifecycle and hide stopping workers #850 head observed before this Draft: 749831dd9dd1a0b35708513390080030878d9e4f

Corrections

  • Preserve supervisor-owned cached/retained snapshot attachment without requiring a live worker connection.
  • Continue rejecting unavailable workers when an uncached attach requires actual worker RPC.
  • Correct two ENG-4602 fixtures that incorrectly marked otherwise-live catch-up workers as intentionally stopping.
  • Preserve the existing snapshot-loading-failure regression and add the unavailable-worker regression separately.
  • Preserve schema revision 16 digest coverage for the referenced SessionSummary.workerState wire shape.

Evidence and hold

Focused daemon protocol, supervisor monitor, ENG-4602, and ENG-4677 coverage: 69/69 passed locally with direct pinned dependencies. Independent review found no remaining P0/P1 in this delta. Local full-shard evidence was rejected as environment-contaminated (FORCE_COLOR plus live HOME/daemon state), so this Draft exists to obtain clean GitHub CI evidence.

Do not merge or restack #851/#852 from this head until CI is green and the prerequisite is accepted. No contributor branch was force-pushed or mutated.

First remote CI attempt

Run 31455798294 classified the product candidate: all production/process/kernel/shards except one unrelated 60-second IPython bootstrap outlier passed. Build/check found a test-only TS2502 self-referential parameter name introduced by the added regression fixture. Head a6db0246... changes only that parameter name; direct monitor 51/51 and direct tsgo passed. Failed-run evidence is retained with SHA-256 e262fcd750b9c54a6248d01ca68a86a81da25f04bc7cda674118c7b12e9133ab.

snimu and others added 11 commits August 10, 2026 22:09
… workers

A worker with a durable stop intent is now reported as "stopping" and a
disconnected worker is never reported as "ready". Stopping workers are
excluded from live session lists and daemon-wide fan-out commands.
…y checks

The list response feeds shutdownStaleDaemonIfNotBusy and
probeRunningDaemonSessions, so hiding stopping workers made a
tombstoned-but-running worker look idle and let a stale-daemon replace
terminate it silently. Stopping workers stay listed with an honest
"stopping" workerState; command fan-outs still skip them.
…ates

Revision 14 records the workerState wire-semantics change ("stopping"
state; disconnected workers no longer report "ready") so version probes
can tell old and new daemons apart. The field stays optional and
backward-tolerant, so no capability gate is needed.
… workers

A worker with a durable stop intent is now reported as "stopping" and a
disconnected worker is never reported as "ready". Stopping workers are
excluded from live session lists and daemon-wide fan-out commands.
…y checks

The list response feeds shutdownStaleDaemonIfNotBusy and
probeRunningDaemonSessions, so hiding stopping workers made a
tombstoned-but-running worker look idle and let a stale-daemon replace
terminate it silently. Stopping workers stay listed with an honest
"stopping" workerState; command fan-outs still skip them.
…ates

Revision 14 records the workerState wire-semantics change ("stopping"
state; disconnected workers no longer report "ready") so version probes
can tell old and new daemons apart. The field stays optional and
backward-tolerant, so no capability gate is needed.
@sethkarten
sethkarten changed the base branch from snimu/worker-lifecycle-accuracy to main August 11, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants