---
name: v0260-published
description: "v0.26.0 PUBLISHED (counter 46 @1dcfcfa) — REMOTE-TRUTH milestone; cleanest cut to date, no flake/EPERM trips"
metadata: 
  node_type: memory
  type: project
  originSessionId: 5b3a2381-5e45-4f9a-8543-4c5f5009c468
---

**v0.26.0 PUBLISHED + PUBLIC 2026-07-06T09:58:47Z — counter 46, tag on blessed commit 1dcfcfa, Latest on SaberMage/spt-releases.** Milestone: REMOTE-TRUTH (waves A–F, PR #52 remote-truth→main @b8d8a2a, then release PR #53). Signed rel-primary-2026 (54188f127f9c...3ec9), update-set v46.

- linux   sha256: 72ad21050de5054626dfb720356fc064070f3eb81363be96640db26dc9c72534
- windows sha256: 5258fffc88704af097f93da3c3bfa343250ef02389088d7d3656861bd11be166

**Adapter floor for next claude-spt = 1dcfcfa.**

**RELEASE-DRIVE (clean run, banked):**
- FF-MERGE mechanics held (release standard): release branch was exactly 1 commit ahead of main → `git push origin release/v0.26.0:main` fast-forwards main to 1dcfcfa (PR auto-merges MERGED), then `git tag v0.26.0 1dcfcfa` lands the tag on the EXACT CI-validated + doyle-blessed commit (not a merge commit). Tag push triggers release.yml + docs-publish.
- BUMP: workspace 0.26.0; Cargo.lock — exactly 11 first-party lines at 0.25.0 (spt/spt-*/mock-adapter/xtask), ZERO third-party collision this cut (verified count first, then sed). `xtask gen` = no doc drift.
- SIGN: `SPT_RELEASE_SEED` already in box env (64 hex/32 bytes) → hex-env mode, NO `_CMD` powershell double-hex snag (v0.25.0 lesson applied). `cargo run -p xtask -- release-publish --tag v0.26.0 --key-id rel-primary-2026 --version 46` verified-vs-SHA256SUMS → signed → uploaded → flipped public in one shot.
- doyle CHANGELOG scope-by-surface gate (his standing offer, TAKEN): FIRST pass NOT-YET — I'd under-scoped 2 field-observable surfaces (A-4 op-id collision `op already applied — retry with a fresh op_id`; B-1 attach-wedge self-heal) + 2 extensions (rc residual-error mapping fold on auto-reconnect tail; translation-fault annotation names `spt whoami` too, REQ names both). Amended+force-pushed (PR open, not merged → safe), re-gated → BLESS on 1dcfcfa (21 surfaces). LESSON: don't drop a "tracing-only"/"internal" fix from CHANGELOG without checking its FIELD symptom — A-4 looked internal (journal minter namespacing) but the user saw a spurious op-already-applied error.
- No EPERM-unlink (v0.24.0 pattern didn't recur), no FLAKE-LEDGER #13 (`probe_all_cap_batches_into_windows`) trip; single PR CI pass on 1dcfcfa (5 legs, twohost skipped-no-rig), no re-tag.

Ledger: counters 44=v0.24.0, 45=v0.25.0, 46=v0.26.0.

**doyle post-publish addendum (2026-07-06):** perri pinged GO (counter 46 + consumables + F-5 warning: decorative min_spt_core floors now bite on add AND update; floor ruling = no forced bump unless adapter consumes a 0.26.0-only verb). Wave milestone CLOSED, nothing queued behind — next work = operator triage. Candidates banked in [[spt-core-findings-backlog]]: flynn's cross-node digest seed (spt-mobile forcing customer, CROSS_NODE_M4 refusal at cli.rs:1387) + 3 public-docs gaps (digest --json row schema, full send-outcome vocabulary, EVENT escaping contract) + demoted crate-publish (repo-privacy gated, CONTEXT.md:687 path). Pre-existing post-release seeds: mutual-hold ack tighten, e2e-fixtures-reap-their-daemons rider, picker purge quiet-path polish.
