# ASM #241 gate record — emission single-write assembly (doyle, 2026-08-29)

## Composition

- Base: main = origin/main = `57a0d27c` (#229, W4) — rev-parse-verified at session start.
- Source lane: `feat/emit-single-write` parked at `d0fdd58d` (todlando; includes hertz's
  `0ebe0fbd` autostart fix). Chain vs merge-base `4d6007ac` (v0.65.0): 6 linear commits,
  no merges → **pick-shaped**. Composed by `git cherry-pick 4d6007ac..d0fdd58d` onto
  `57a0d27c` in fresh worktree `.worktrees/asm-241`, branch `asm/241-emission`.
- Assembled head: **`1f97b73d`** (pushed to origin).
- Pool: warm rig pool `.worktrees/gate-w1-786d2381/target` (44G), sequential takeover of
  finished lane gate-w4-229 via `pool-claim --foreign-pool` from inside asm-241 —
  loud takeover recorded, claim identity = asm/241-emission.

## Conflict resolutions (1 pick of 6 conflicted: `10f12e4c` → `cfb9d9f8`)

1. `crates/spt/src/api/delivery.rs` (busy arm): main's W2/W3 mid-turn work added `mid`
   param to `state_io_kind`/`publish_state_io`; lane converted `eprintln!` →
   `spt_proto::emit_line_err!`. Resolution composes BOTH: emission macro + `mid` arity.
   Confirmed semantically by full-workspace clippy (below), the #182-v2 E0425 class check.
2. `docs/INFRA-REGISTER.md` (IR-69 region): lane carried the interim IR-69 census
   correction (phantom row, 7-row macro column, no-final-newline); main's landed IR-69 is
   the CONSOLIDATED entry already carrying all three corrections plus the both-delimiter
   generator clause, followed by IR-70/71/72. Resolution: took main's region whole;
   lane's 30-line interim block deliberately dropped as superseded.

## pick-audit FIRST REAL USE (IR-57 instrument, exit file `PICKAUDIT_241.exit` = 1)

`xtask pick-audit --range 57a0d27c..HEAD --lane 4d6007ac..d0fdd58d`:

- 6 picks — **5 MATCH** (digest-identical pick vs lane patch), **1 LOSS**, 0 drift,
  0 unclassified. The LOSS is exactly the conflicted pick (`cfb9d9f8 <- 10f12e4c`,
  count 432/402).
- Delta reconciled to the resolution, not assumed: lane commit stat 15 files /
  235 insertions / 197 deletions; pick stat 14 files / 205 / 197. Difference =
  `docs/INFRA-REGISTER.md +30` — byte-for-byte the deliberately dropped interim IR-69
  block. No unexplained residue.
- Reading: the instrument did its job on first contact — digest-matched every clean pick,
  flagged only the human-resolved one, and its exit 1 forced the accounting above.
  No false positives, no silent pass over a changed pick.

## Head verification legs (exit FILES read in-transcript)

- `ASM241_clippy.exit` = **0** — `cargo clippy --workspace --all-targets -- -D warnings`
  at 1f97b73d, warm pool, 1m01s tail clean.
- Windows battery: driver `asm241_gate_win.sh` in asm-241 rig (leg-0 reap-by-path,
  env-scrubbed legs, per-leg exit files) — **11/11 legs exit 0** (fixtures, treqs,
  units 2131p/1s, store 570p, live 80p, net 208p/1s, proto 110p, runtime 108p,
  daemon 1140p, endpoint_autostart_e2e 4p serial, xtask check). Leaky counts
  (units 8, live 2, runtime 1, daemon 6) match hertz's filed daemon-leak pattern —
  known, in his fixup spool, not new signal.
- Linux battery: driver `asm241_gate_linux.sh` in kitsubito `~/gate-242-w1` at 1f97b73d
  (own pool, same-tree claim asm-241-linux, exit 0), same legs + clippy. FIRST launch
  vacuous — all legs 127 (nohup non-login shell, cargo off PATH; the 5th-face exit-file
  discipline caught it: exit FILES read, notification would have said 0). Driver fixed
  (`source ~/.cargo/env`), relaunched clean. RUNNING.

## Head reword (message-only, after Windows arm, before Linux verdict)

House pattern: wave HEAD subject carries `(#N)`. Gated head `1f97b73d` reworded to
**`ec6da9b0`** appending ` (#241)` — `git diff 1f97b73d ec6da9b0` = EMPTY (0 lines),
tree ids identical, so every battery result at 1f97b73d transfers bit-for-bit; the
tested TREE is the merged TREE. Both shas recorded here for the audit trail.

## Linux arm result (relaunch)

12/13 legs exit 0 — clippy 0, units 2125p/1s (1 leaky), store 572p, live 80p, net 208p/1s,
proto 110p, runtime 107p, daemon 1120p (1 slow), endpoint_autostart_e2e 4p, fixtures,
claim, xtask check. `ASM_treqs.exit` = 127 — raw reads `env: 'traceable-reqs': No such
file or directory`, binary NOT INSTALLED on kitsubito: vacuous leg (tool absent), not a
coverage red. Windows treqs = 0 at the identical tree covers it — treqs is a
platform-independent text scan. Rider: install traceable-reqs on kitsubito or drop the
leg from Linux drivers (register-sweep candidate).

## VERDICT: PASS — both arms

Landed ff-only 2026-08-29 ~18:35Z: `57a0d27c..ec6da9b0` → main; origin/main
rev-parse-verified `ec6da9b0`. Tested tree == merged tree (reword equivalence above).
#241 → ACCEPTANCE via alchemy. Golden head handed to deployah
(GOLDEN-HEAD-241-HANDOFF.md). asm-241 rig + pool claim HELD as warm insurance until
golden verdict; reap after (preservation check first, per standing intake rule).

## Golden run 33268589586 — first-attempt triage (doyle, 2026-08-29 ~19:20Z)

Windows `test` + `n1-gate` both RED at the free-space floor PREFLIGHT — per-job figures
(each job measures its own instant; deployah provenance pin 19:2xZ, initial log here
quoted the test figure for both): `test` 99143533095 `free_bytes=26521477120`, `n1-gate`
99143533079 `free_bytes=26535051264` (8s earlier, 13.6MB apart), floor 34359738368
(32GB) both; checkout SKIPPED in both — zero code signal, structurally proven (every
downstream step skipped), v0.64.0 precedent. Cause: transient load window (queued main-CI
33268518263 from the ff-land + battery aftermath on the shared box); recovered to 78G
unaided, 90G after trimming held pool's 18G regenerable incremental. FOURTH floor event
today → disk-floor family in REGISTER-SWEEP-242-DRAFT.md. Linux arm fully green;
twohost a/b in flight. RULED: same-sha rerun of the two Windows jobs at ec6da9b0 —
env red, cause measured + cleared. Sent deployah 19:20Z.

## Golden outcome + shape respin (2026-08-29 ~20:25Z)

Attempt 2 GREEN 9/9 at ec6da9b0, deployah-verified NON-VACUOUS per job (checkout SUCCESS
+ real workloads: Win test 28m43s full phases; twohost re-ran as dependents and passed
twice). Floor RCA closed BY EVIDENCE. Deployah then self-caught an intake miss: head
UNSHAPED (Cargo.toml 0.65.0, no CHANGELOG) — IR-54 construction clause, his intake
question, ref pushed without asking it. Shape authored on top: e4f52047 (3 files exactly
as 4d6007ac precedent: version bump, lock 14 lines no resolution change, CHANGELOG
CRLF-clean). SECOND GOLDEN 33273378238 at golden/semaphore-242-r2; original ref never
force-moved. doyle RULED: norm (shape-inside-candidate, 8th consecutive) over
provability-bar fallback — author-argues-own-miss-inert is the documented failure shape;
window authorized, box measured quiet (90G). Sweep entry: intake-construction miss,
self-caught, named. Release parity pre-agreed: tag == main == e4f52047 at cut;
ec6da9b0 green banked beneath it.
