NEXO 7.9.5 — Desktop diary alias confirmation

Published 2026-04-23. Patch release over v7.9.4.

v7.9.5 fixes the remaining real-world Desktop lifecycle failure: the canonical diary was being written, but Brain looked for it under the Desktop conversation UUID while nexo_session_diary_write stored it under the active nexo-... session SID.

Diary confirmation now follows session aliases

Brain now resolves Desktop/Claude session UUIDs through session_claude_aliases and sessions before checking session_diary. Archive, delete, close, window-close, and app-exit can therefore confirm the diary that the canonical prompt actually wrote.

Stale diaries cannot satisfy new lifecycle events

The diary high-water checkpoint includes alias-linked NEXO SIDs. A new archive/delete/app-exit attempt must see a diary row after its own lifecycle checkpoint, so older manual or previous canonical diaries cannot falsely complete the event.

Coordinated Desktop release

This Brain patch is coordinated with NEXO Desktop v0.28.6, which waits for diary confirmation before stop_session, keeps normal app-exit conversations active, respects pending archive/delete actions during quit, and rejects stale replay rows that no longer match a live session.

Verification

Targeted Brain lifecycle suite: pytest tests/test_lifecycle_events.py with 28 passed. Local smoke evidence confirmed a Desktop archive event resolving diary #1931 through the NEXO SID alias before completion.

Full changelog entry →