PR 33974 runtime verification, Linux, 2026-11-10/11 UTC Baseline: github/main 43915a4064b341cd040f24c1b906d87222e403de git worktree add ../main github/main vp i T3CODE_DEV_SEED=0 setsid nohup timeout 6600 vp run dev actual serverPort=16733 webPort=8693; isolated /home/user/main/.t3 project /home/user/pr33974-scenario and thread created through web UI Codex gpt-6.1-sol read README.md; response: baseline provider turn works. installed authentic Codex 0.164.0 into /home/user/pr33974-provider configured its binary in a new provider instance through Settings > Providers clicked Update now in web UI; actual npm updater descriptor capture follows: {"at":"2026-11-10T23:52:38.569Z","pid":"46582","command":"node /home/user/.nvm/versions/node/v24.22.1/bin/npm install -g --prefix /home/user/pr33974-provider --allow-scripts=@openai/codex @openai/codex@latest ","stdin":"socket:[184516]","fdinfo":"pos:\t0\nflags:\t02000002\nmnt_id:\t9\nino:\t184516\nscm_fds: 0\n"} update completed; UI detected 0.167.1 main stopped by captured startup PID 38951; its two ports no longer listened PR head: f66b17fadaa22af3619108744e7aadccd316c3a7 vp i retained a copy of the app-created main state after stopping main reset authentic isolated Codex install to 0.164.0 T3CODE_HOME=/home/user/t3code/.t3 T3CODE_DEV_SEED=0 setsid nohup timeout 6000 vp run dev actual serverPort=13773 webPort=5733 same Settings > Providers > Codex update verification > Update now path actual npm updater descriptor capture follows: {"at":"2026-11-11T00:03:57.565Z","pid":"58967","command":"node /home/user/.nvm/versions/node/v24.22.1/bin/npm install -g --prefix /home/user/pr33974-provider --allow-scripts=@openai/codex @openai/codex@latest ","stdin":"/dev/null","fdinfo":"pos:\t0\nflags:\t02100000\nmnt_id:\t26\nino:\t5\n"} UI returned to Available and detected 0.167.1 direct installed CLI check: codex-cli 0.167.1 Neighbor: real updater failure and retry reset isolated Codex to 0.164.0; removed write permission on its owning package directory clicked Update now; server recorded npm EACCES, syscall rename, exitCode 243, timedOut false UI displayed Update command exited with code 243 and npm log location restored write permission; clicked Update now again; UI detected 0.167.1 and Available Neighbor: provider app-server stdin preserved resumed the app-created Codex gpt-6.1-sol thread in the PR web client real tool call: cat README.md response: post-update provider stdin still works. scenario repository remained clean Check on Blacksmith, PR head, after remote vp i: vp test run apps/server/src/provider/providerMaintenanceRunner.test.ts Test Files 1 passed (1) Tests 31 passed (31) PR GitHub checks: no failing or pending checks (some platform jobs skipped) Scope limits: The descriptor defect was observed on main and /dev/null verified on PR through real updates. The original macOS Pi updater blocked-read symptom was NOT reproduced on Linux. npm does not normally read stdin, and its baseline update completed too. No mock, fake updater, fixture, or demo provider was used. Windows cmd.exe/NUL, macOS, native mobile, desktop shell, other installers, and relay/tunnel were not exercised. No source edits, commits, or pushes were made.