# Current-head shell environment evidence

Captured for [#32646](https://git.cafe/pingdotgg/t3code/pull/32646). Main [d313b2aff3](https://github.com/pingdotgg/t3code/commit/d313b2aff31991ab94c8ac80cdc38a54dd575604), full SHA `d313b2aff31991ab94c8ac80cdc38a54dd575604`; branch [6f9adc64ff](https://github.com/pingdotgg/t3code/commit/6f9adc64ff9538222af5d7f8d9683be52c5e0551), full SHA `6f9adc64ff9538222af5d7f8d9683be52c5e0551`.

Coverage: all 19 runtime matrix rows covered; 18 distinct fixture groups captured, 23 before/after variant pairs (46 production-reader invocations plus 46 separate stderr diagnostic invocations). F22 is exactly covered by F03, as the brief permits. F14–F18 are the five pre-existing source-equivalence rows and were not rerun as runtime captures. No requested runtime row is unverified.

Environment: Ubuntu 24.04.4 LTS x86_64; kernel `6.8.0-117-generic`; capture-driver Node `v26.13.0` in both worktrees; Docker `29.7.0`. Native bash package `5.2.21-2ubuntu4`, native dash package `0.5.12-6ubuntu5`. Debian 12 bookworm local shell image `sha256:dc15f39a6e2f86a67a56e09cd9f94288241ea6a34f5607fcb71baa6f676c2f81`, base `debian:bookworm@sha256:268fb24c39bca92d326dd83ea3abebe4a3f7751c804ffef23bb6d857dd343ff8`. Alpine 3.20.10 local shell image `sha256:19b53024807c907c0c24f326bf263a40c0dd6cc17b05ce66cbfdb92a27999bce`, base `alpine:3.20@sha256:d9e853e87e55526f6b2917df91a2115c36dd7c696a35be12163d44e6e2a4b6bc`. The local image content IDs are immutable capture provenance; the Dockerfiles pin base registry digests and actual shell package versions for rebuilding. They were not rebuilt during this capture.

| Row | Shell and profile | main | this branch |
|---|---|---|---|
| [F01](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89ee94678dd14d06/F01-transcript.md) | bash 5.2.21, title-echo DEBUG; report pair / server triple / desktop 24 | contaminated, exit 0 | exact seeded exports; unset omitted, exit 0 |
| [F02](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2317411770e6c66e/F02-transcript.md) | bash 5.2.21, no trap, set -e; singleton and mixed values | clean, exit 0 | identical stdout and parse, exit 0 |
| [F03](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b36fc5240bbce78/F03-transcript.md) | bash 5.2.21 via scratch bin/sh, title DEBUG | contaminated, exit 0 | clean, exit 0 |
| [F04](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e2b67995122d04ea/F04-transcript.md) | zsh 5.9, trap DEBUG | contaminated, exit 0 | clean, exit 0 |
| [F05](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b213fd88db4c85f3/F05-transcript.md) | zsh 5.9, TRAPDEBUG() | contaminated, exit 0 | clean, exit 0 |
| [F06](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2198ca3da41f279f/F06-transcript.md) | ksh93u+m 1.0.4, printf title DEBUG | contaminated, exit 0 | clean, exit 0 |
| [F07](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc5dbf31154d6664/F07-transcript.md) | dash 0.5.12, errexit off | clean, exit 0 | identical, exit 0 |
| [F08](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d670e3d6c2c33336/F08-transcript.md) | dash 0.5.12, errexit on | clean, exit 0 | identical, exit 0 |
| [F09](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8160b38d7c2c9325/F09-transcript.md) | mksh R59c, errexit off | clean, exit 0 | identical, exit 0 |
| [F10](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7626d397f214c693/F10-transcript.md) | mksh R59c, errexit on | clean, exit 0 | identical, exit 0 |
| [F11](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7be2764e8451b15b/F11-transcript.md) | fish 3.6.0, native config.fish | clean, exit 0 | identical, exit 0 |
| [F12](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a4d627a9e2e3d44/F12-transcript.md) | BSD csh 20110502, native .cshrc/.login | clean, exit 0; empty stderr | identical, exit 0; empty stderr |
| [F13](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1994d122ec7284c/F13-transcript.md) | tcsh 6.24.07, production -ilc | exit 1, reader throws; Unknown option: -lc | identical rejection and empty stdout |
| [F19](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6444950aa3de7947/F19-transcript.md) | loksh 7.5 as ksh; ordinary PATH-prepending .profile | clean, exit 0 | identical stdout and parse, exit 0 |
| [F20](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2bb71f9e256eb45c/F20-transcript.md) | loksh 7.5 as ksh, set -e | clean, exit 0 | identical stdout and parse, exit 0 |
| [F21](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73920085ad909f4f/F21-transcript.md) | BusyBox ash 1.36.1 as sh; errexit off / on | both clean, exit 0 | both identical stdout and parse, exit 0 |
| [F22](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d7a62cedf0f38ee/F22-transcript.md) | bash 5.2.21 as sh, title DEBUG; exact F03 coverage | contaminated, exit 0 | clean, exit 0 |
| [F23](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54e4a043022662df/F23-transcript.md) | loksh 7.5 via symlink named sh; errexit off / on | both clean, exit 0 | both identical stdout and parse, exit 0 |
| [F24](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80202938ba1f7b00/F24-transcript.md) | ksh93u+m 1.0.4 as ksh93, exact print -n title DEBUG | contaminated, exit 0 | clean, exit 0 |

What else changed (complete observed runtime differences):

- F01 (all three name lists), F03/F22, F04, F05, F06 and F24: head adds `(trap - DEBUG) 2>/dev/null && trap - DEBUG;`. Marker-bearing title output disappears from parsed values, and unset variables are omitted. Raw stdout still contains title escapes before the first marker. Bash emits its hook-active sentinel plus a title for `trap - DEBUG`; zsh emits the sentinel plus titles for the formatted subshell/AND expression and `trap - DEBUG`; ksh93 emits the sentinel plus titles for `2> /dev/null` and `trap - DEBUG`. The full JSON-escaped bytes are recorded per row. These prefixes are outside the parsed values.
- F02 (both variants), F19, F20, F21 (both variants) and F23 (both variants): head adds the same guard; raw stdout and parsed results remain byte-for-byte identical to main. Empty/unset values remain omitted and F02 preserves the multiline value’s leading/trailing spaces.
- F07–F13: basename filtering leaves the generated command byte-for-byte identical to main. Raw stdout, raw stderr, parsed result/error and status are identical. F12 has no `trap: Command not found.` line on either side. F13 rejects `-ilc` before startup on both sides; its profiles do not load.
- No row changes exit status, stderr, or startup instrumentation between main and head. In every invocation the separate diagnostic’s stdout equals the production proof stdout. The non-TTY job-control warnings in bash, dash, mksh, loksh and ash remain unchanged and are ignored by production. Every successful head result equals the requested seeded exports exactly; no extra parsed names remain.

Compared with the previous published head evidence: the allowlisted shell commands use the new subshell guard; dash, mksh, fish, csh and tcsh no longer have a reset prefix. BSD csh’s previous extra trap stderr line is therefore absent. Docker versions differ from the previous host capture: ksh93u+m is 1.0.4 (previously 1.0.8), fish is 3.6.0 (previously 3.7.0), and mksh reports R59c. These results establish the versions recorded here; they do not newly verify other versions.

Method: imported the real shared module independently from each clean pinned worktree. Production `-ilc` and all reader exec options are preserved. Child environments contain only synthetic HOME/PATH/TERM and necessary profile selectors; no host environment was spread into shell probes. Docker containers run with networking off and the host UID/GID, bind-mounting only this task’s scratch. Profiles and startup evidence are included in each transcript. No T3 server/database or real provider was involved. No source was edited. The lead worktree and PR were not modified.

Unverified outside this runtime scope: F14–F18 were source-equivalence rows in the prior audit, with no new execution here; Nushell, Windows and macOS bash 3.2 were not run; no live provider update or broader regression suite was run. The runtime capture does not establish ksh93 1.0.8 or fish 3.7.0 behavior anew.

Artifacts and scripts (ghdrop output pasted verbatim):

[F01-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89ee94678dd14d06/F01-transcript.md)
[F02-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2317411770e6c66e/F02-transcript.md)
[F03-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b36fc5240bbce78/F03-transcript.md)
[F04-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e2b67995122d04ea/F04-transcript.md)
[F05-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b213fd88db4c85f3/F05-transcript.md)
[F06-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2198ca3da41f279f/F06-transcript.md)
[F07-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc5dbf31154d6664/F07-transcript.md)
[F08-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d670e3d6c2c33336/F08-transcript.md)
[F09-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8160b38d7c2c9325/F09-transcript.md)
[F10-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7626d397f214c693/F10-transcript.md)
[F11-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7be2764e8451b15b/F11-transcript.md)
[F12-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a4d627a9e2e3d44/F12-transcript.md)
[F13-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1994d122ec7284c/F13-transcript.md)
[F19-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6444950aa3de7947/F19-transcript.md)
[F20-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2bb71f9e256eb45c/F20-transcript.md)
[F21-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73920085ad909f4f/F21-transcript.md)
[F23-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54e4a043022662df/F23-transcript.md)
[F24-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80202938ba1f7b00/F24-transcript.md)
[matrix-additions.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5df69e47707aafd0/matrix-additions.md)
[seed-fixtures.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b20597027b80fd35/seed-fixtures.mjs)
[extend-fixtures.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/910e5d896946ef36/extend-fixtures.mjs)
[capture-driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/391408c4634660bd/capture-driver.mjs)
[backend.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8dcf67c634aa9ff3/backend.mjs)
[reproduce.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc236ec625ee6d44/reproduce.sh)
[verify-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fade5fb0874e4d84/verify-evidence.py)
[package-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb60968a1040ade9/package-evidence.py)
[Dockerfile.debian](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8b2930210a67c69/Dockerfile.debian)
[Dockerfile.alpine](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84b1fa3839993673/Dockerfile.alpine)
[verification.log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c4555feffc650c4/verification.log)
[provenance.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/92237988e2603b16/provenance.json)
[friction.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a80b5e4bf657b359/friction.md)
[F22-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d7a62cedf0f38ee/F22-transcript.md)
[raw-evidence.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60cb3103573e30f8/raw-evidence.tar.gz)

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

FRICTION:
tool | The first capture attempt stopped during Alpine version discovery: the synthetic PATH excludes /sbin, and BusyBox head is not linked at /bin/head in this image. The helper was corrected to /sbin/apk and /bin/busybox head; captures were rerun in fresh timestamped directories. | Use absolute package-tool paths and inspect BusyBox applet links before probing versions.
brief | The environment has cached Debian shell versions older than the prior host capture (notably ksh93 1.0.4 and fish 3.6.0). The brief permits Docker versions and asks that they be stated; all actual versions are explicit. | Pin required shell image/package versions in the evidence brief if exact version parity is required.
