# Memory index

- [spt crate test conventions](spt-test-conventions.md) — bin-only crate (no lib), unit-test commands, isolated_home, dummy-harness e2e fixture pattern, scoped pid reaping.
- [W3b crc_swap rollback forcing](w3b-crc-swap-rollback-forcing.md) — REQ-ADAPTER-LIVE-UPDATE: force apply_crc_swap mid-loop fail via pre-seeded non-empty `<second>.old` dir (move-aside-then-rename-in defeats the naive dir trick); rename->non-empty-dir = Win os-err-5; cmp_owned uses Path::new not PathBuf::from; filter names after `--`.
- [W3c live-update reload tests](w3c-live-update-reload-tests.md) — REQ-ADAPTER-LIVE-UPDATE: ManifestCell refresh + reload-on-dirty units in spt-daemon lifecycle.rs; assert BOTH manifest_snapshot + runtime_snapshot().manifest() versions; unparseable keeps last-good + no `last` advance; impl `manifest_cell()` gap filled mid-session.
- [W3e live-update int keystone](w3e-live-update-int-keystone.md) — REQ-ADAPTER-LIVE-UPDATE + REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP NO-MOCKS int A (own-copy lock-free + stop reaps orphan psyche) + int B (Brain::adapter_apply swaps a Windows-LOCKED translation binary, endpoint never restarts); `live_adapt_*` NOT `live_update_*` (os-740 UAC name).
- [W3 (a)+(c) stop-reap + own-copy tests](w3ac-stop-reap-owncopy-tests.md) — REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP + REQ-INSTALL-11: WIN lingering-owned-Child-handle keeps is_process_alive TRUE post-TerminateProcess (drop Child before reap); own-copy fake-binary at install_dir/<token>; copy_if_changed no-op = mtime-preserved (deterministic).
- [W2 gh-transport unit tests](w2-gh-transport-unit-tests.md) — REQ-ADAPTER-GH-TRANSPORT: pure resolve_transport (explicit-never-probes via `|| unreachable!()`), gh command-shape builders (None drops `{tag}` token+key), clap conflicts_with; int is HITL/unit-covered-not-int.
- [Effect journal wedge tests](effect-journal-wedge-tests.md) — repro-first patterns for REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE: structural lock-across-effect unit, file-content fsync proxy, real loopback-attach facet-B int; Windows-absorb vs forkpty-park.
- [ConPTY injected-echo loss](conpty-injected-echo-loss.md) — Windows ConPTY won't echo programmatically-injected PTY input (nor deliver it to a custom io::stdin child); assert injected byte-receipt cfg(unix), capture on Windows. Whole conn ignores read deadline — use cold_start_pump.
- [W5 driven_by self-heal](w5-driven-by-selfheal.md) — CONVERGED: ships Gap B only (GREEN unit+int); Gap A reconcile-clear REJECTED, reframed as invariant; A2 deferred to REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT.
- [W5 driven_by characterization (A1/A2)](w5-driven-by-selfheal-characterization.md) — EMPIRICAL: A2 (abandoned remote controller, idle session) keeps controller_by=Some ⇒ controller_by==None is NOT sufficient for Gap A; fix must be broker-side eviction. Pre-seed perch info.json or driven_by won't latch.
- [RC attach online-race repro](rc-attach-online-race.md) — REQ-HAZARD-RC-ATTACH-ONLINE-RACE int RED: endpoint run (no --start) attaches before ONLINE; observed face = connect-then-empty-detach (no heartbeat), not the named offline/no-session bails.
- [Resume-template marker fixture](resume-template-marker-fixture.md) — REQ-SESSION-RESUME-TEMPLATE: mock-session --marker-file proves which [session.role] ran + cwd; --start (no PTY race); daemon e2e flake under parallel → run --test-threads=1.
- [P0 PTY input-writer wedge tests](p0-pty-input-writer-wedge-tests.md) — REQ-HAZARD-PTY-INPUT-WRITER-WEDGE: build InputWriter struct directly (spawn hard-wired to PtySession), empty endpoint = no-op stamp; SPT_INPUT_QUEUE_DEPTH leak hygiene; seed perch for input_backpressure read.
- [P1b input ack-deadlock tests](p1b-input-ack-deadlock-tests.md) — REQ-HAZARD-INPUT-ACK-BACKPRESSURE: ack-gate by FIFO ordering, exactly-once via journal anchor, flood keystone. Watchdog every read_frame (Windows blocks); quiet child + pump flooder + direct KIND_SESSIONS probe; FLOOD_N=64 RED is forkpty-only.
- [P1c controller-writer reorder tests](p1c-controller-writer-reorder-tests.md) — REQ-HAZARD-CONTROLLER-WRITER-REORDER: unit pins send.lock() across two become_controller for deterministic [0,1] wire (unit=gate RED carrier); int asserts CONSUMER-dedup level (stays green on neutered gate by design); handoff seeds session_cursor==prior.next_seq. No blocking EOF probe (Windows pipe hang).
