v5.10.4
RDR-151 root-cause fix for the recurring T2 daemon 100% CPU peg, plus a T1 scratch
recovery fix.
Fixed
- T2 daemon CPU peg root-caused and fixed (RDR-151, nexus-uzay8 / nexus-xmohw).
The peg was contention-driven write starvation:taxonomy.*write RPCs bypassed
the daemon's_catalog_write_lock, andnx indexopened its own direct T2 write
connection, so multiple writers raced the single SQLite WAL writer lock while the
daemon's executor thread wedged on it. Two fixes: (1)taxonomy.*writes now
serialize through the daemon's catalog write lock; (2) every direct T2 taxonomy
write on thenx indexpath and thenx taxonomyCLI now routes through the
daemon (compute client-side where ChromaDB is needed, persist daemon-routed),
leaving only read-only direct connections (WAL readers don't take the writer
lock). Astorage_boundary_lintenforce-flip fails CI on any taxonomy write
method called on a directly-constructed handle outsidedb/+daemon/. - T1 scratch restored when the session id diverges from the MCP lease key
(nexus-gff3g). T1 working memory is now matched by Claude-ancestor pid with a
deterministic tie-break, so sibling agents recover the correct scratch when the
session id and lease key differ. - Daemon lifecycle/teardown hardening: idle read deadline on accepted connections,
mark_shutting_down()first instop()(T2 + T3),to_thread(heartbeat_tick)
so the flock never blocks the event loop, and reaperendpoint.pidfallback.
Changed
- RDR-147 (multi-hop entity-resolution retrieval) accepted.