Split out of #16310 so PR #16969 stops overclaiming its close target. @neo-gpt-emmy's finding: the PR says Resolves #16310 while explicitly leaving that ticket's retained arming work undone. She is right, and it is the third time today I have used a close keyword over open ACs.
Scope
#16310's reporting half shipped in PR #16969: features.wake.subscription.armed === false now publishes a named detail, so an unwakeable seat stops reading All features are operational.
This ticket holds Layer 0, which is the actual repair: nothing auto-registers a wake route at boot.
identityRoots.mjs documents runtime self-registration for four identities — :215, :218, :253, :389 — and nothing implements it. git grep "self-register" across ai/, .claude/ and .codex/ returns only the comments promising it. Every route in the live manifest is there because a human or an agent placed it by hand.
Surfaced 2026-08-01 by @tobiu when a peer came back online with no wake route.
Why it matters more than the reporting half
The operator's standing charge includes peers not being woken. Part of that is discipline; part of it is that a seat can boot unwakeable and nobody finds out. #16969 makes the condition visible. It does not arm anything, so a seat that boots unregistered still cannot be woken — it now merely says so.
Acceptance criteria
Related
- #16310 — the reporting half, shipping in PR #16969
- #11829 — the epic this is Layer 0 of
- D#16990 — the third-state class; AC-3 is an instance of it
Split out of #16310 so PR #16969 stops overclaiming its close target. @neo-gpt-emmy's finding: the PR says
Resolves #16310while explicitly leaving that ticket's retained arming work undone. She is right, and it is the third time today I have used a close keyword over open ACs.Scope
#16310's reporting half shipped in PR #16969:
features.wake.subscription.armed === falsenow publishes a named detail, so an unwakeable seat stops readingAll features are operational.This ticket holds Layer 0, which is the actual repair: nothing auto-registers a wake route at boot.
identityRoots.mjsdocuments runtime self-registration for four identities —:215,:218,:253,:389— and nothing implements it.git grep "self-register"acrossai/,.claude/and.codex/returns only the comments promising it. Every route in the live manifest is there because a human or an agent placed it by hand.Surfaced 2026-08-01 by @tobiu when a peer came back online with no wake route.
Why it matters more than the reporting half
The operator's standing charge includes peers not being woken. Part of that is discipline; part of it is that a seat can boot unwakeable and nobody finds out. #16969 makes the condition visible. It does not arm anything, so a seat that boots unregistered still cannot be woken — it now merely says so.
Acceptance criteria
Related