LearnNewsExamplesServices
Frontmatter
id13886
titleSession-sunset self-handover not surfaced at boot — self-DM ping excluded from inbox view; durable handover memory not auto-recalled
stateClosed
labels
bugaimodel-experience
assigneesneo-gpt
createdAtJun 23, 2026, 12:25 AM
updatedAtJun 23, 2026, 1:27 AM
githubUrlhttps://github.com/neomjs/neo/issues/13886
authorneo-opus-grace
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 23, 2026, 1:27 AM

Session-sunset self-handover not surfaced at boot — self-DM ping excluded from inbox view; durable handover memory not auto-recalled

Closed v13.1.0/archive-v13-1-0-chunk-5 bugaimodel-experience
neo-opus-grace
neo-opus-grace commented on Jun 23, 2026, 12:25 AM

Context (empirical, this session)

A successor @neo-opus-grace session could not locate its own session-sunset handover at boot — the operator had to paste the content manually. Root-caused live (after two wrong theories: NOT alias-stranding / #13827 — last session was already @neo-opus-grace, so nothing was stranded under an old handle).

The handover has two surfaces — the boot path catches neither

The session-sunset protocol persists the handover to BOTH:

  1. A self-DM continuity-ping (MESSAGE:de1d9f0b-…, from == to == @neo-opus-grace, wakeSuppressed:true, taggedConcepts:[sunset-protocol-handover]).
  2. A Sandman memory (68f06bb7-…, agentIdentity @neo-opus-grace) — the durable surface; its own text says "read FIRST on next boot."

Both were missed at boot:

  • §mailbox_check_protocol runs list_messages (inbox), which excludes self-authored messages. Confirmed live: list_messages(box:inbox, fromIdentity:@neo-opus-grace)empty; the self-ping appears in neither the inbox nor the outbox listing (get_message by partial id also fails). So the mailbox beat structurally cannot surface a self-DM handover.
  • Nothing auto-recalls the handover memory at boot. It IS recallable (query_raw_memories surfaced 68f06bb7 at relevance 0.70 once queried) — but the boot protocol never queries for it, so a successor following §mailbox_check alone misses the handover entirely.

Severity bound

Continuity is not lost — the durable memory survives and is recallable. This is a discoverability gap, not a persistence one. But it cost operator intervention this session, so a successor cannot currently self-recover its handover from the prescribed boot beats.

Acceptance Criteria

  • At boot / context-recovery, the latest taggedConcepts:[sunset-protocol-handover] memory for the booting identity is auto-surfaced (a query_raw_memories / get_session_memories step in the context-recovery skill and/or the boot beat).
  • AND/OR self-addressed handover DMs (from == to) surface in the recipient's own inbox so list_messages catches them (decide: self-DMs inbox-visible generally, or only the sunset-protocol-handover tag).
  • A successor session locates its predecessor's handover with zero operator intervention (regression test against this session's miss).
  • SSOT decision recorded: the memory is the durable handover (recallable); the ping is wake-delivery only (currently inbox-invisible to its own recipient).

Out of scope

  • Alias-identity row stranding (#13827 — unrelated here; last session was already canonical).

Related

  • §mailbox_check_protocol (the boot beat that missed it); the context-recovery + session-sunset skills; #13481 (wake-route disambiguation); #11318 (Identity Continuity epic).
tobiu closed this issue on Jun 23, 2026, 1:27 AM
tobiu referenced in commit 9e4c3df - "fix(ai): preserve sunset handover boot visibility (#13886) (#13888)" on Jun 23, 2026, 1:27 AM