PR #29154 runtime verification, 2026-11-02, Linux Boat VM main: 30084f0018c5751a07291222e8d04e16d513700a (github/main) PR: 1daffe80b1fd570b91f585689d779e2b3556df1d (exact contributor head) Claude Code: 2.1.316; Chrome: /usr/bin/google-chrome; Playwright: 1.60.0 Setup $ git worktree add ../main github/main $ cd ../main && vp i $ T3CODE_DEV_SEED=0 setsid nohup timeout 7000 vp run dev ... & [dev-runner] serverPort=16733 webPort=8693 baseDir=/home/user/main/.t3 Stopped main by the captured process group before starting PR. $ git switch -c perf/claude-commands-skip-unchanged-spawn 1daffe80b1fd570b91f585689d779e2b3556df1d $ vp i $ T3CODE_DEV_SEED=0 setsid nohup timeout 6000 vp run dev --home-dir /home/user/t3code/.t3 ... & [dev-runner] serverPort=13773 webPort=5733 baseDir=/home/user/t3code/.t3 The initial PR startup defaulted to ~/.t3; stopped immediately and restarted with explicit isolated home. Real app data Created /home/user/command-verification as a real git repository. Added it as a project using the web UI's Add project > Local folder flow. Selected Codex gpt-6.1-sol in the composer and submitted a real turn on main. The provider wrote README.md and .claude/commands/verify-command.md and committed them: 0694a3b chore: add command discovery verification Client received READY and the two-file diff. On PR, added the same project through the UI and sent a real gpt-6.1-sol turn editing the command: 5c7372a chore: update command discovery verification Client received UPDATED_READY and the one-file diff. Runtime protocol Browser-session authenticated WebSocket /ws?orchestrationProtocol=2. Same server.refreshProviders RPC used by the composer: {"instanceId":"claudeAgent","cwd":"/home/user/command-verification","workspaceSnapshotsOnDemand":true} Used the actual ClaudeDriver and real CLI initialization; no mocks, replaced executables, synthetic provider responses, clock changes, or direct cache access. Observed actual process starts with sudo strace -f -tt -e trace=execve attached to the dev server. Eviction reproduction, identical order on main and PR 1. Scan command-verification once. 2. Scan these 16 existing git workspace folders under /home/user/t3code, exceeding the registry's 16-snapshot cap: apps/server, apps/web, apps/desktop, apps/mobile, apps/marketing, packages/contracts, packages/shared, packages/client-runtime, packages/provider-core, packages/provider-acp, packages/provider-cursor, packages/provider-grok, packages/provider-opencode, packages/provider-testing, packages/source-control-core, packages/ssh. 3. Rescan command-verification, whose source files have not changed. main 22:10:27.354Z initial snapshot: 51 commands, verify-command = Verify command discovery (project) 22:10:27.362092 PID 19975 execve /usr/local/bin/claude --output-format stream-json ... 16 intervening folders: success, 53 commands each, one CLI initialization per folder. 22:10:59.616Z returning snapshot: same 51 commands and command description. 22:10:59.630170 PID 21125 execve /usr/local/bin/claude --output-format stream-json ... Total: 18 CLI initialization starts (1 initial + 16 folders + 1 unchanged return). PR 22:12:48.799Z initial snapshot: 51 commands, verify-command = Verify command discovery (project) 22:12:48.835755 PID 24147 execve /usr/local/bin/claude --output-format stream-json ... 16 intervening folders: success, 53 commands each, one CLI initialization per folder. 22:13:03.710Z returning snapshot: same 51 commands and command description; NO CLI start. Total: 17 CLI initialization starts (1 initial + 16 folders + 0 unchanged return). No speedup percentage claimed; these single runs were instrumented with strace. Nearby behavior: command file edit After the real Codex turn changed the description and command body, repeated the eviction sequence. The intervening 16 folders reused their command caches. 22:13:44.315Z returned: verify-command = Verify updated command discovery (project) 22:13:44.333534 PID 26648 execve /usr/local/bin/claude --output-format stream-json ... Exactly one new CLI initialization for the edited source. Nearby behavior: explicit refresh server.refreshProviders with the same input plus fresh:true: 22:13:56.189Z snapshot checkedAt, RPC success, 51 commands and updated description retained. 22:13:56.204483 PID 26810 claude --version 22:13:56.236060 PID 26811 claude initialization (machine health) 22:13:56.750825 PID 26865 claude initialization (workspace) Explicit refresh bypassed cached commands and retained the result. Focused checks through blacksmith-check $ vp i && vp test run apps/server/src/provider/ClaudeCapabilitiesProbe.test.ts apps/server/src/provider/Drivers/ClaudeSkills.test.ts ClaudeCapabilitiesProbe.test.ts: 6 passed ClaudeSkills.test.ts: 20 passed Total: 2 files, 26 tests passed. No source modifications to the PR; no push needed. Limits Claude has no login on this VM. Its real initialization-based command discovery works and was exercised, but the composer disables Claude model selection. Authenticated Claude turns and the Claude composer menu were not exercised. Codex turns were real, through the web client and local proxy. No desktop shell, native iOS/Android, macOS/Windows, remote/tunnel, managed policy/account sync, hour-long expiry, or large marketplace setup was exercised.