## [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.

<!-- [doc->REQ-RESIDENT-WEB-SKEW-DIAGNOSIS] -->
- 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

<!-- [doc->REQ-CONN-HEALTHY-LIFECYCLE-BOUNDED] -->
- Daemon logs now summarize healthy connection activity once a minute instead of recording
  every open and close.

