---
name: v0240-published
description: "v0.24.0 PUBLISHED — counter 44, F-029 PICKER-POLISH; infra-flake displace-recovery mid-cut + third-party darling collision"
metadata: 
  node_type: memory
  type: project
  originSessionId: 26d7f056-5571-45c0-8cc3-2452d759ae26
---

v0.24.0 PUBLISHED — counter 44 @188fe1a (PR#50 merge; parent2 = doyle-gated f8428a8, tree IDENTICAL; NO [twohost]). F-029 PICKER-POLISH: endpoint-picker label/key/flow honesty + B6 checkpoint-wake root fix (C-1 + C-2).

**Cut flow:** published counter confirmed==43 → branch f028-runtruth (reused for F-029) thru C-2 @e7b514c (doyle GATE-PASS 1545/1545) → **merged origin/main FIRST** (brought v0.23.0 companion→Psyche fix PR#49; branch had diverged, merge kept mergeable + CHANGELOG consistent, clean no-conflict) → bump @f8428a8 (Cargo.toml 0.24.0 + 11 first-party Cargo.lock lines; CHANGELOG [0.24.0] 2 Added/2 Changed/7 Fixed) → PR#50 → doyle FINAL VET APPROVED + CUT GATE (conditional on CI) → CI all green → merge → tag v0.24.0 @188fe1a → release.yml draft → **RC-WINDOW HOLD** → doyle staged binary → perri 2/2 GREEN → release-publish --version 44.

**MID-CUT INFRA FLAKE (release.yml Windows build FAILED, recovered):** `actions/checkout@v5` EPERM unlink `C:\actions-runner\_work\spt-core\spt-core\target\debug\spt.exe` — leaked CI e2e-daemon holding exe-lock (disk NOT full, 177GB free). Get-Process/CIM: 5 live-infra spt.exe protected (`AppData\Local\spt-core\bin`) + 4 BLANK-path spt.exe (cross-account/runner-service, unreadable even via CIM) = lockers, KILL IMPOSSIBLE (cross-account access-denied, no sudo on box). deployah STOPPED (binding no-machine-wide-kill + can't-ID-target) → escalated doyle. **doyle fix = DISPLACE-not-kill (F-028 C1 pattern): RmGetList pinned all 4 blank PIDs as image-mapped lockers → moved locked exe to `C:\actions-runner\_leak\` → repo-dir rename round-trip verified zero residual handles → checkout clean/recreate succeeds, live-infra untouched.** Then: wait run conclude (failure) → `gh run rerun --failed` (NO retag, tag/commit unchanged, binaries rebuild) → both builds + assemble green. LESSON: EPERM-unlink-exe on runner checkout = leaked-daemon lock; displace (move locked file aside) beats kill when cross-account; repeatable. Blank-path+blank-cmdline via CIM = cross-account proc, not identifiable/killable by non-elevated user.

**THIRD-PARTY COLLISION (bump hazard, honored [[v073-published]]):** darling/darling_core/darling_macro were THIRD-PARTY @0.23.0 — blanket `sed 0.23.0→0.24.0` would corrupt them. Used name-anchored awk bumping ONLY the 11 first-party crates (spt* + mock-adapter + xtask), darling×3 preserved @0.23.0. ALWAYS grep `name` lines preceding `version = "<prev>"` before bump; count first-party vs total.

**RC-WINDOW (2nd use):** doyle staged draft binary (byte-verified) for perri → ITEM-1 wake-survival full-stack GREEN (5 boundary runs: C-1 miss!=fault 0 faults, C-2 ready re-stamp ≤2s, adapter v0.13.1 unarmed-fires safe; wake-turn non-execution = PRE-EXISTING, identical on 0.23 control = non-blocker; perri's initial CC-prompt-queue root narrative later RETRACTED — corrected F-031 seed in [[f029-pickerpolish-progress]]) + ITEM-2 SEAM-2 GREEN (ready-absent strand ELIMINATED, 150ms ready=True thru rotation, 157/157 force-native 0 UNDELIVERED). doyle RC-GREEN → flip.

**SETTLE GREEN attempt 1** — served version==44 product==0.24.0, no stale window. draft=false, published 2026-07-04T07:14:47Z (tagged 07-03 local PDT — CHANGELOG date 2026-07-03 correct per local-at-tag; publish crossed midnight to 07-04 UTC/local, date NOT bumped since tag landed 07-03). HASHES: windows `d89307a6097b016b4bef4a6489ff9dde4e50dc2e3c407f9e3aff23221537cfee` (BYTE-IDENTICAL to perri RC candidate — doyle-asserted) / linux `dd61d99c6d91384c41e8d1b6794c05883f8573d8cb63c326ec0b6aa526db2358`.

**doyle addendum — deferred cleanup + RC mechanics:** (1) The 4 leaked runner-account daemons (PIDs 36904/373268/346780/27016, two parent chains) outlived the release (unkillable non-elevated; Windows sudo disabled on hfenduleam) — operator reaped them 2026-07-04, doyle verified all dead + GC'd the displaced exe and `C:\actions-runner\_leak\`. CLOSED. RmGetList P/Invoke (rstrtmgr.dll) is the pin tool: register the locked file, RmGetList returns locker PIDs even when Get-Process/CIM show blank path. Repo-dir rename round-trip = cheap zero-residual-handles proof before declaring checkout unblocked. (2) RC candidate staged at `C:\Users\decid\spt-rc\v0.24.0\` (draft download needs repo auth; Latest at hold correctly serves OLD counter). (3) Perri RC seeds banked in [[f029-pickerpolish-progress]]: F-031 frozen-wake observable + two mechanism opens (initial prompt-queue chain RETRACTED; blind-Enter still UNSAFE = double clear, observable-based), bringup-retry hardening, LIVEHOST_PSYCHE_NONRESIDENT F-030 floor evidence, broker-PTY zero-transcript-jsonl rig gap (side-effect proof files = ground truth). (4) gh gotchas: `gh release view` has NO `isLatest` field — use `gh api repos/<r>/releases/latest`; update-set envelope artifact key = `artifact_sha256`.

**CHANGELOG process (glossary-vetted, doyle pre+final vet):** diff-analysis agent grounded doyle's surface inventory + vetted vs CONTEXT.md glossary (Psyche not companion; standardized "endpoint picker" over drifted "agent picker"). doyle pre-vet: KEEP adapter-author manifest bullet (v0.16.0 precedent), tighten consequence clause. C-1/C-2 split as distinct bullets. translation_fault stamped on info.json but NOT human-rendered → didn't claim it shows (doyle banked as post-release seed). Ledger: [[v0230-published]] / [[v0121-published]].

**Index-detail preserved on 2026-07-06 compaction:** counter 44 @188fe1a; F-029 PICKER-POLISH + B6 checkpoint-wake root fix (C-1+C-2); RC-window 2/2 GREEN. MID-CUT infra flake: release.yml Win build EPERM-unlink runner-workspace target\debug\spt.exe (leaked CI daemon lock) → doyle DISPLACE-not-kill (move locked exe to _leak/, F-028 C1 pattern; cross-account PIDs unkillable, no sudo) → rerun --failed no-retag. BUMP HAZARD: darling×3 THIRD-PARTY @0.23.0 → name-anchored awk, only 11 first-party bumped. windows sha d89307a6 byte-identical perri-RC→published. Loose end CLOSED 2026-07-04: all 4 runner-account daemons dead (operator reaped), _leak\ displaced exe GC'd.
