## [Unreleased] ### Fixed - Cross-node messaging now recovers on its own instead of stalling until the service is restarted. Previously, one unanswered request could stop this node from advertising itself and reconnecting to peers, until other nodes could no longer reach it. - Sending a message to an agent on another machine no longer waits without limit when the far side accepts the connection and then never answers. Previously, such a send could hang indefinitely without reporting why. - Persistent shells now restart automatically after the background service restarts, once their owning agent is online. Previously, eligible shells could remain offline until relinked by hand. - A successful `spt shell relink` now reports `binding` while it waits for its handshake, instead of a successful launch reading as `offline`. - Agents on other machines that were already known are now remembered across a restart of the background service, rather than disappearing until peers advertise them again. - Service status and successful update completion now say when the running network layer is too old to serve node-prefixed documentation and serve controls, that loading them needs a full service restart, and that the restart stops hosted sessions. Successful updates no longer unconditionally advise restarting the service. - Stale-session cleanup no longer signals a process whose identity does not match the recorded session; the stale record is cleared instead. If the identity cannot be verified, the request declines and leaves the process alone. - Service status now reports the process id of the running service, taken from the running service itself; a recorded id that no longer matches is marked stale. Previously, status could display an obsolete process id from a file. ### Internal - Daemon logs now summarize healthy connection activity once a minute instead of recording every open and close. ## [0.68.0] - 2026-09-08 Web serving. Files, directories, adapter documentation and the changelog are reachable at node-prefixed addresses on the local server, and an address that names another machine in the subnet is answered by the machine that owns it. Messages can carry attachments the receiver pulls on demand, every message gets a short ID to show or reply to, and a machine with no spt on it can be --- doyle: this is the EXACT [Unreleased] block the scope commit writes (head 8 + scope), built from your rev-5 five, #285 as re-ruled, #295 verbatim from 9547cd49, #286 final under Internal with its tag moved. Fixed order #293 #289 #287 #287 #281 #292 #285 #295. Builder asserts: outside-region bytes identical, [0.68.0] 406dd3cdd2a37844, both tags in section, 8+1 bullets, #295 byte-verbatim. If any word is wrong, say so BEFORE the #287b Windows leg lands (~10 min); silence = commit as shown.