---
name: v0160-published
description: "spt-core v0.16.0 PUBLISHED — counter 35, hashes, tag (update-arc + CLI/UX release)"
metadata: 
  node_type: memory
  type: project
  originSessionId: 712ec375-e0f7-42d6-afab-1b6b84a87330
---

**spt-core v0.16.0 PUBLISHED** 2026-06-25 — counter **35**, LIVE + Latest + public (isDraft=false). Tag **v0.16.0 @9e5b33b** (merge PR #38 on main). Signed FRESH (key rel-primary-2026, seed len64), counter monotonic 34→35 (re-cross-checked vs published .release.json pre-tag). release run 28184286444 success both runners; docs-publish 28184286456 GREEN on tag.

Hashes (SHA256SUMS = .release.json):
- linux `e13d7c2d0515e6c2ca2b472e3293f6f9cea3f31b49ba5a3cd2d9a173c84e2220`
- windows `f6cd39ec01567c7cc7fdc40f7d7ecb6d208e0fa5344503113289c4d6879a9a69`
- update-set.json v35 "0.16.0" both platforms.

**Surfaces (6 waves, all doyle-gated):** {adapter_dir}/{adapter_name} subst + lazy [strings] at get-string (ADR-0029 resolve-not-execute) · [message-idle-translation-binary].command (path deprecated, adapter-static subst) · [update.post] composite update (stdin seam, sentinel `!!update-message!!`, self_verifies=attestation-only, fail-isolated) · `spt send --reply-to` REMOVED (target now required positional) · empty-scope→CreateAdapter · global `--json` read/status set · `spt endpoint digest` cursor (--last/--after/seq/partial/ts) · `spt rc` identity status row.

**Process notes:** todlando executed all waves on a SHARED working tree with doyle (commit SELECTIVELY, never -A). deployah caught a docs-token leak at the release gate (REQ tag in clap /// → moved to //, fix 9e34161; see [[clap-doc-comment-leaks-req-tag]]). perri GO sent for claude-spt v0.8.0 (min_spt_core→0.16.0). Detail of the build: [[v0160-w1-manifest-runtime]]. Released by deployah on doyle's CHANGELOG-vet + matrix-clear.

**DOWNSTREAM SHIPPED (2026-06-26): claude-spt v0.8.0** consumed v0.16.0 clean, no gaps — GitHub release SaberMage/claude-spt v0.8.0 (adapter.spt win+linux fat) + cplugs sptc 0.1.7; re-vendored manifest.schema.json v0.16.0. D2 [update.post] one-lever works (post-update reads additive stdin JSON, emits `!!update-message!!` → [update].message fires); D3 translate folded → ONE consolidated claude-spt binary (path retired). Dogfooded on 0.16.0: digest-proof 5/0 + translate-proof commit:yes. DEFERRED: **D1 (hook→binary resolve-not-execute consumption)** = own milestone (big Rust port; an optimization, NOT the one-lever — the spt-core PRIMITIVE shipped, adapter consumption later). NUANCE for the pending live [update.post] int: it fires only from **v0.8.0 onward** — the v0.7.0→0.8.0 transition update runs under the OLD v0.7.0 manifest which has no post-step (a new manifest field only takes effect once the new manifest is installed). Full arc (both repos) complete + validated.
