---
name: v0370-published
description: "v0.37.0 PUBLISHED counter 64 — REGISTRY-LIFECYCLE (3 waves), 6th release on private BigscreenVR/spt-bs-releases"
metadata:
  node_type: memory
  type: project
  originSessionId: 89cc9038-e5d9-429e-b4a9-40fba8af71ee
---

**v0.37.0 PUBLISHED — counter 64** @9b910e0 (merge PR #25, tag v0.37.0), 2026-07-17.
REGISTRY-LIFECYCLE milestone (REGISTRY-STALL + DAEMON-LIFECYCLE combined; 3 waves
W1 registry/stream @68c3223, W2 endpoint lifecycle @a80ede5, W3 spawn-truth @2c04184;
14 REQs). **6th release on private `BigscreenVR/spt-bs-releases`** (59-64).

URL: https://github.com/BigscreenVR/spt-bs-releases/releases/tag/v0.37.0
Signed rel-primary-2026 (54188f12). Live update-set: counter 64, product 0.37.0,
channel stable. 11 assets. isDraft=false, latest → v0.37.0.

## What shipped (surfaces, census v0.36.0..v0.37.0 — end-user voice)
- **Changed** — `spt endpoint run` refuses `ENDPOINT_CREATE_CONFLICT` (exit 1) on a
  live session instead of silently reattaching (`spt rc <id>` or `--resume`).
- **Fixed** — steady idle background CPU on every node (daemon self-verified its
  program file ~2×/sec → once at startup).
- **Fixed** — 15-25s attached-endpoint stalls from re-applied old peer-directory
  updates (apply-once + discard completed transfers; also ends thread/memory growth
  on long-lived connections).
- **Fixed** — abrupt remote-control close no longer leaves an endpoint stuck
  CONTROLLED (released across daemon restarts).
- **Fixed** — stopped/crashed endpoints no longer wake-loop; stale ONLINE entries
  from dead processes self-clear.
- **Fixed** — stop/run cycles no longer wedge on a stale session (run/list/shutdown
  agree on liveness).
- **Internal** — named threads, stream/seat gauges.
Wire additions all additive (KIND_SPAWN_FRESH/CONFLICT, KIND_NET_STREAM_UNSUBSCRIBE,
terminal-retire flag, StreamLifetime); new verbs loud-fail on older brokers (N-1 safe).

## Ceremony facts
- Counter verified 64 from published metadata (v0.36.0=63). Seed pre-seated (len 64).
- CHANGELOG in END-USER VOICE per the new RELEASE-RUNBOOK step-2 standard
  ([[release-notes-enduser-voice]]): doyle's census drafts adopted with light polish
  ("re-applying" not "replayed"). Verified 0 "you", 0 mechanism nouns, 0 leak. Ladder
  self-check contiguous.
- **GEN BLOCKER (new gotcha): `xtask gen` failed `os error 5 Access denied` removing
  `target/debug/spt.exe`** — 6 LEAKED dev-target spt.exe procs (from todlando's merged
  wave builds) held the binary. Fix: killed ONLY the 6 procs whose ExecutablePath =
  `...\target\debug\spt.exe` (Get-CimInstance Win32_Process filter by exact path →
  Stop-Process), leaving the 9-11 live `AppData\Local\spt-core\bin\spt.exe` plugin
  procs (my perch, flynn, other agents) UNTOUCHED. gen clean on retry. Kin
  [[spt-daemon-is-live-infra]], [[e2e-leaked-daemons-shared-box]],
  [[no-machinewide-killon-shared-runner]].
- Merge+tag from main HEAD; signed from isolated worktree of the tag (own throwaway
  CARGO_TARGET_DIR); worktree pinned on first cleanup (build handle) → removed on
  retry. Disk tightening (114G at cut — dev target + wave artifacts regrew).

## Post-publish
Publish-confirm SENT to doyle + hertz. hertz field-verifies against preserved v0.36
baseline (poison-count freeze, CPU to noise, bounded+named thread census, zero
WAKE_RESUME) — their GO closes the milestone. doyle live for ladder-check/HOLD window.

Related: [[v0360-published]], [[v0350-published]], [[release-notes-enduser-voice]], [[release-counter-from-published]], [[spt-daemon-is-live-infra]], [[e2e-leaked-daemons-shared-box]].
