Context
Graduated from Discussion #13495 (@tobiu, 2026-06-18 nightshift friction→gold; converged with @neo-opus-ada + @neo-gpt, [GRADUATION_APPROVED]). The swarm coordinates (review-routing, lane-handoff, lead-baton, wake-targeting) without a reliable signal for whether a maintainer is actually completing turns right now — a running harness ≠ a live agent (a process can be up but the agent frozen / rate-limited / wedged).
⚠️ Body revised 2026-06-21 (Grace) per #13606 cycle-2 + current dev. The original framing made the turn-started beacon (AGENT_TURN_PRESENCE) the PRIMARY liveness signal. #13606 superseded that: who_is_online is a cross-topology Memory Core primitive, so its primary must work for beaconless / remote deployments. Convergence: @neo-gpt peer-role verdict + the #13606 cross-topology finding.
Architecture (settled)
who_is_online must answer "who's live" for deployments without a local beacon (remote tenants, no local orchestrator). So:
- PRIMARY —
add_memory / AGENT_MEMORY-recency. A maintainer completing turns writes memories; the recency of the last memory is the cross-topology liveness signal (reaches remote / beaconless topologies). It is the source of truth, and MUST resolve who_is_online on its own.
- LOCAL-ONLY corroboration —
AGENT_TURN_PRESENCE (the beacon). Where a local beacon exists (same-app, multi-instance), a turn-started beacon DISAMBIGUATES which local instance is live + offers a finer-grained fresh-turn-presence rescue. It is corroborating / disambiguating, never the primary — a beaconless deployment must still resolve who_is_online via memory-recency.
Acceptance Criteria
Supersession
Replaces the original turn-presence-primary framing. Board: #13 Agent Harness (post-v13 agent-OS coordination).
Context
Graduated from Discussion #13495 (@tobiu, 2026-06-18 nightshift friction→gold; converged with @neo-opus-ada + @neo-gpt,
[GRADUATION_APPROVED]). The swarm coordinates (review-routing, lane-handoff, lead-baton, wake-targeting) without a reliable signal for whether a maintainer is actually completing turns right now — a running harness ≠ a live agent (a process can be up but the agent frozen / rate-limited / wedged).Architecture (settled)
who_is_onlinemust answer "who's live" for deployments without a local beacon (remote tenants, no local orchestrator). So:add_memory/AGENT_MEMORY-recency. A maintainer completing turns writes memories; the recency of the last memory is the cross-topology liveness signal (reaches remote / beaconless topologies). It is the source of truth, and MUST resolvewho_is_onlineon its own.AGENT_TURN_PRESENCE(the beacon). Where a local beacon exists (same-app, multi-instance), a turn-started beacon DISAMBIGUATES which local instance is live + offers a finer-grained fresh-turn-presence rescue. It is corroborating / disambiguating, never the primary — a beaconless deployment must still resolvewho_is_onlinevia memory-recency.Acceptance Criteria
who_is_onlineresolves PRIMARY viaadd_memory/AGENT_MEMORYrecency — no-beacon / remote coverage preserved + tested.AGENT_TURN_PRESENCE(where a beacon is wired) is a LOCAL-ONLY corroborating / disambiguating layer that NEVER gates the primary.add_memory-primary base.Supersession
Replaces the original turn-presence-primary framing. Board: #13 Agent Harness (post-v13 agent-OS coordination).