## Evidence

Additional observed before-side failure modes: a supplementary explicit-CPU run aborted with SIGABRT, and another hung until the 120-second watchdog killed it. These are archived separately and are not counted as natural SIGKILL exits. The final 5-trial matrix is below.

Captured **8/12 matrix rows**: F1–F8; 50 final native trials (5 per side for each of F2/F3/F4/F5/F8). F6/F7 use the shared focused test run, as specified by the matrix. F9–F12 remain unverified.

Ubuntu 24.04.5 LTS / Linux 6.1.102 x86_64; AMD CPU 19/01 (family 25/model 1), 4 vCPUs; Node v26.12.1; Electron 44.10.1 (embedded Node v24.22.1, ELECTRON_RUN_AS_NODE=1); transcribe-cpp and @transcribe-cpp/linux-x64-cpu-vulkan 0.4.1; model SHA-256 `4b50b6dd862bf6e346929aaf4f5eaacec003bfa3f56462d6c874b41ef2f38795`.

| Row | Runtime | Acceleration | Before ([53bcb9af7a](https://git.cafe/pingdotgg/t3code/commit/53bcb9af7a37dd0b4df11a7d6fa0106e9e5b7356)) | After ([17b58caf24](https://git.cafe/pingdotgg/t3code/commit/17b58caf24f000852f1da7893ae0a21b64f828a4)) |
|---|---|---|---|---|
| F1 | Node 26.12.1 | synthetic fixture | FAIL: exit teardown marker exists; test exit 1 — [F1-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a490c6a043e085f/F1-before.txt) | PASS: no exit teardown marker; test exit 0 — [F1-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12c7ec0c6c450cf7/F1-after.txt) |
| F2 | Node 26.12.1 | auto → CPU | SIGSEGV ×5 — [F2-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bf9e7eb627134c6f/F2-before.txt) | SIGKILL ×5 — [F2-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e499860273935888/F2-after.txt) |
| F3 | Node 26.12.1 | cpu → CPU | SIGSEGV ×5 — [F3-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6912510c28833638/F3-before.txt) | SIGKILL ×5 — [F3-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6162d8bf4259ba6d/F3-after.txt) |
| F4 | Node 26.12.1 | auto → CPU | exit 0 ×5 — [F4-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/017dcb8eec8531c1/F4-before.txt) | SIGKILL ×5 — [F4-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/81a9ec025dfc71a9/F4-after.txt) |
| F5 | Electron 44.10.1 / Node 24.22.1 | auto → CPU | SIGSEGV ×5 — [F5-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/427e2cd0a2823089/F5-before.txt) | SIGKILL ×5 — [F5-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/07870450e42d88b5/F5-after.txt) |
| F6 | Node 26.12.1 | synthetic fixture | PASS: streaming previews, finish, reset, reuse — [F6-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4613694696431954/F6-before.txt) | PASS: streaming previews, finish, reset, reuse — [F6-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9552f578e558538c/F6-after.txt) |
| F7 | Node 26.12.1 | synthetic fixture | PASS: dispose and hung inference/feed abort — [F7-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c9bb443e9328dff0/F7-before.txt) | PASS: dispose and hung inference/feed abort — [F7-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1fca66fefe49476c/F7-after.txt) |
| F8 | Node 26.12.1 | auto → CPU | SIGSEGV ×5 — [F8-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b0018a748dac612c/F8-before.txt) | SIGSEGV ×5 — [F8-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c4af4730f36f7b4/F8-after.txt) |
| F9 | Packaged Linux x64 SEA | — | Unverified | Unverified |
| F10 | macOS arm64/x64 | — | Unverified | Unverified |
| F11 | Windows x64 | — | Unverified | Unverified |
| F12 | GNU Linux arm64 | — | Unverified | Unverified |


The final runtime source is a byte-for-byte `git show` snapshot of each requested revision, imported through that revision's own `loadNativeSpeechModel`. The assigned shared after checkout advanced during capture; neither its source nor its checkout was changed by this test agent. Each transcript records its requested source revision, observed checkout head, and snapshot path; the source manifest records SHA-256 hashes. Focused tests used the owned before checkout, swapping exact source snapshots for each side and the head's exact test file, then restoring the originals. No production code was modified.

The synthetic fixture is a 440-Hz sine at amplitude 0.2, 16-kHz mono Float32, repeated 5120-sample / 320-ms chunks; timestamps none, no VAD. Chunk SHA-256 is `f00a250d127271b43ad79c23729ad2373d506b851f8f7028a9283cc3c43a3ab9`. A proxy observes the real native `streamFeed.async` dispatch and emits the active barrier only while its callback is still unresolved after 25 ms. F4 kills after the backend acknowledges one real feed reply, with no next feed. A Linux subreaper collects orphan `waitpid` statuses; a transparent libc observer records the backend's actual `waitpid` result for F8. All signals target exact spawn-reported PIDs greater than 1. No PID files are used.

Auto and explicit CPU selected CPU on this VM; only a CPU device was exposed. The loaded library hash is `78625ee207600f5cbf9a398cdbe03991d0720a41efd1019fd80e108279957cfe` on both sides. Model download size and SHA-256 matched the pinned app catalog. Core files were disabled consistently (`RLIMIT_CORE=0`); decoded statuses include the core bit and no core files were written. Electron ran headlessly as Node; this does not prove packaged ASAR execution.

What else changed beyond worker exit status:

- Per-trial process IDs, requested source revision, checkout head, snapshot/source locations, library paths under each checkout, absolute monotonic timestamps and native callback/pending durations differ. Node/Electron versions, native package/library bytes, audio bytes, model bytes, device registration and actual backend agree. Full per-trial event sequences and duration values are in the differences file and raw transcripts.
- F1 changes the exit-hook assertion from a failure to a pass; the before shared test command exits 1 with 1 failed/9 passed, and the after command exits 0 with 10 passed. The before assertion's diagnostic stack appears only before. Silero fallback warnings occur on both sides; test durations and temporary paths vary.
- F2/F3/F5 kill the backend during a pending native feed, so it cannot report a feed error afterward. F4 has already returned its first feed reply. F8 reports `Speech process exited (SIGSEGV).`, confirms the backend remains responsive, disposes, and exits 0 on both sides; no recovery/reload is claimed.
- F2: native callbacks 30/30, feed replies 30/30, kill feed indices [7, 7, 7, 7, 7]/[7, 7, 7, 7, 7] (before/after).
- F3: native callbacks 30/30, feed replies 30/30, kill feed indices [7, 7, 7, 7, 7]/[7, 7, 7, 7, 7] (before/after).
- F4: native callbacks 5/5, feed replies 5/5, kill feed indices [1, 1, 1, 1, 1]/[1, 1, 1, 1, 1] (before/after).
- F5: native callbacks 30/30, feed replies 30/30, kill feed indices [7, 7, 7, 7, 7]/[7, 7, 7, 7, 7] (before/after).
- F8: native callbacks 30/30, feed replies 30/30, kill feed indices [7, 7, 7, 7, 7]/[7, 7, 7, 7, 7] (before/after).
- Supplementary attempts include a missing `/usr/bin/node` pilot, a stricter barrier replacing an initial fast-buffering feed pilot, an Electron proxy missing `artifactDir`, runs during checkout movement, a Node 26.13.0 pilot, the SIGABRT/timeout above, and a batch explicitly stopped after the timeout. Their complete raw logs remain in the archive; none contributes a silently relabeled result to the final matrix. The attempted manual cleanup found that the driver had already reaped its worker and sent no signal.

Raw archive and provenance: [raw-capture-archive.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c12f4d01832ee30e/raw-capture-archive.tar.gz), [environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3b18b184f7f534a/environment.json), [source-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dac6a3c8be2918e9/source-manifest.json), [observed-differences.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba7a1a58b80b742d/observed-differences.json), [counts.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eba19be9e2d26633/counts.json), [summary.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ffb2f8815964c45e/summary.md).

Drivers and reproducibility scripts:

- [capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95fc7151d84be97b/capture.py)
- [backend.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d5fddc2e288fef1/backend.mjs)
- [native-proxy.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba3ccb0f6d530e79/native-proxy.mjs)
- [waitpid-observer.c](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abc02e0f0bf5d551/waitpid-observer.c)
- [build-observer.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a14628bed16f346b/build-observer.sh)
- [run-matrix.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4aa168e9a79dbb0/run-matrix.py)
- [run-focused-tests.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e78288a8fd2c6a5f/run-focused-tests.py)
- [snapshot-sources.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96874675dd5862cf/snapshot-sources.py)
- [download-model.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a94dc7add19d9ead/download-model.py)
- [collect-environment.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/954cc1cdb7b85773/collect-environment.py)
- [prepare-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e03c01c3f0e5791/prepare-evidence.py)
- [build-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e87bd56f65bfb483/build-evidence.py)
- [upload-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/18e427f4fee120a3/upload-evidence.py)

Reproduce: run `python3 snapshot-sources.py`, `python3 download-model.py`, `bash build-observer.sh`, then `python3 run-matrix.py` and `python3 run-focused-tests.py` after creating/installing the two checkouts as in the brief. Scripts use the assigned absolute scratch/checkouts. Every matrix invocation creates fresh timestamped trial directories. Earlier script versions and the exact source snapshots are preserved in the archive. The model is data only and is not included in uploads.

Unverified:

- F9: no matching packaged SEA artifact was available. The repository build requires bundling the full server/bootstrap and assembling external runtime dependencies; that is outside a cheap speech-worker smoke capture. A custom Node invocation or bespoke speech-only SEA would not verify the packaged launcher.
- F10: macOS native execution unavailable on this Linux VM; not attempted.
- F11: Windows native execution unavailable on this Linux VM; not attempted.
- F12: native Linux arm64 execution unavailable on this x86_64 VM; not attempted.

No browser, dev server, T3 database, real recording, PR comment, commit or push was used. The owned before worktree was removed; all spawned backend/worker processes were reaped. Downloaded weights remain in the assigned scratch directory. See cleanup transcript in the raw archive.

AI-assisted; verified with the tests and tools listed above.

FRICTION:
infra | shared after checkout advanced during capture | freeze a capture checkout or supply exact immutable source snapshots.
tool | a pilot assumed /usr/bin/node, absent here | use the explicit installed Node binary.
other | initial Electron instrumentation proxy omitted artifactDir | mirror the runtime loader's required module exports.
other | supplementary native exit teardown hung for 120 seconds | keep a bounded watchdog and distinguish cleanup signals from natural statuses.

Report: 8/12 rows captured; F9–F12 unverified for the reasons above.
