$OWL send doyle <<'EOF'
perri — closing note: operator confirmed the SPT_DEV "hardcode" was a misremembrance, nothing to revert. Fully settled on all sides. Signing off for the session. 🦉
EOF
$LIVE commune perri <<'EOF'
## SESSION CLOSE — full status + resume brief (2026-06-23, perri)

EVERYTHING THIS SESSION IS CLOSED. Operator resumes next session. spt-core v0.14.0, claude-spt v0.6.1, node CLEAN (no endpoints/psyches/orphans). All work committed + pushed to main.

### END GOAL (unchanged)
spt-claude-code = the rebuilt Claude Code harness adapter (`claude-spt`) — spt-core's v1 acceptance proof, its first casual-end-user entrypoint (a CC plugin), and an invisible spt-core installer. Built PUBLIC-SURFACE-ONLY against spt-core (SaberMage/spt-releases + GH-Pages docs). Proving the adapter contract is buildable from the published surface ALONE is the whole point — any gap is a FINDING to doyle, never worked around by reading spt-core source. Orientation: SCOPE.md, HANDOFF.md (the hard constraint), CONTEXT.md, docs/adr/, docs/KNOWN-HAZARDS.md, docs/TRACEABILITY.md, traceable-reqs.toml. Commit trailer "Co-authored by: perri".

### SHIPPED THIS SESSION (all on main, pushed)
1. A — W3 psyche-lock fix VALIDATED on spt-core v0.13.2 (ADR-0025). F-010xF-015 CLOSED both sides (.live-bin own-copy, install binary lock-free, orphan reaps on stop).
2. B — F-017 multi-subnet seed shipped (62cfbe3), then v0.14.0 fix VALIDATED + seed flipped to "fix confirmed" (24c620a). F-017 = RESOLVED-SHIPPED+VALIDATED. endpoint run no --subnet → MULTI_SUBNET_HOME refuse 0.058s (old 25s timeout gone); --subnet → homed+bound UNBOUND→online; hollow UNBOUND pre-bind row confirmed.
3. C — claude-spt v0.6.1 SHIPPED (F-014 DEAD). Single MULTI-PLATFORM fat adapter.spt (per-triple subdirs x86_64-pc-windows-msvc + x86_64-unknown-linux-gnu; shared manifest+strings at root; install classify+flattens host triple). min_spt_core 0.9.0→0.13.2 (mandatory for fat). /sptc:setup simplified to bare `adapter add --release` (host-agnostic). cplugs sptc 0.1.5 pushed. Proof-ints (translate/digest) → --dir/--manifest (F-011 W5). Commits 3ad54c0+934b79d. GitHub release v0.6.1 w/ fat asset. REAL-EXTRACT proven on-node (adapter add --release → classify+flatten → claude-spt 0.6.1, proofs green).

### FINDINGS LOGGED (docs/SPT-CORE-FINDINGS.md)
- F-018: `spt adapter add --github` on an already-extracted gh_release Pointer = destructive footgun (wipes install, os-error-2, F-011 sibling). doyle ACCEPTED → adapter-safety fast-follow (NOT v0.14.0).
- Multi-platform .spt authoring layout was a published-docs GAP (only spt-core CONTEXT.md). doyle fixing in spt-core PR #31. Not separately logged (his call).
- `add --release` DEFERRED label = eager-extract + deferred-update-conduct, not lazy (doyle confirmed; label-clarity polish batched w/ F-018).
- SPT_DEV "hardcode" = operator misremembrance, nothing to revert (grep-clean adapter+plugin+bringup+settings). SETTLED.

### IMMEDIATE NEXT STEPS (next session)
1. WATCH for doyle's dispatch ping on the adapter-safety fast-follow (F-018 fix: add --github should refuse/route-to-update + not wipe before avenue succeeds; os-2 carries path+cause; + the deferred-label clarity polish). When it lands as an spt-core release, re-validate on real claude-spt.
2. OPTIONAL C-adjacent cleanup (no dependency, pick up if asked): the dist/ now ships fat-only, but ci/publish/package-adapter.sh + RELEASE-RUNBOOK still carry the legacy per-OS cross-build recipe (needed to BUILD the linux binaries that feed the fat packer — keep). The old per-OS .spt assets in dist/ (adapter-windows/linux-x86_64.spt) are now vestigial build artifacts (gitignored, not shipped on v0.6.1). Nothing required.
3. NOTHING ELSE QUEUED. All milestones (A/B/C + v0.14.0 validation) closed both sides with doyle.

### KEY RECIPES (for resume)
- Live-bringup on a multi-subnet node: `api seed --session-id <s> --pid <claude-pid>` + persistent `api listen <id> --subnet <name>` (hook-path listen TAKES --subnet). Or now v0.14.0: `spt endpoint run --adapter claude-spt --id <id> --subnet <name> --start` (homes at creation).
- Fat .spt build: build BOTH platforms (win native + linux cargo-zigbuild) → `sh ci/publish/package-adapter.sh --apply` → dist/adapter.spt.
- Recover a bricked claude-spt install: `spt adapter add --release SaberMage/spt-claude-code --tag <ver>` (re-extracts the fat archive, repairs the pointer).
- bash tar chokes on C:\ paths (reads C: as remote host) — use PowerShell tar for Windows-path archives.
EOF
echo COMMUNED

Final session commune + close note to doyle


➜ SENT:doyle
➜ SENT:perri-psyche
COMMUNED


Communed to Psyche — full status + resume brief saved. SPT_DEV closed (misremembrance, nothing to revert).

**Session wrapped.** Everything closed both sides with doyle:
- **A** — W3 psyche-lock validated (F-010×F-015 closed)
- **B** — F-017 multi-subnet: seed shipped, v0.14.0 fix validated, seed flipped to fix-confirmed
- **C** — claude-spt **v0.6.1** shipped (fat multi-platform `.spt`, F-014 dead, setup simplified, cplugs 0.1.5), real-extract proven on-node

**Next session:** watch for doyle's adapter-safety fast-follow dispatch (F-018 + deferred-label polish); otherwise nothing queued.

State: spt-core 0.14.0, claude-spt 0.6.1, node clean, main pushed. Resume brief is in the Psyche. 🦉