# PR #23610 proof audit pass 1 (claude-opus-5-5, read-only), head 7acf9a905a
| Row | Verdict before captures |
|---|---|
| R1 tool installed after start found on Rescan | COVERED (Linux dev server; desktop-hosted path not exercised by the unit test, which calls fixPath() without shellEnvironmentPrepared) |
| R2 page open alone re-reads PATH | UNCOVERED. Discovery (server.discoverSourceControl) is also called by Settings mount, command palette add-project, Publish dialog, and mobile on every selected thread (apps/mobile/src/state/use-selected-thread-git-state.ts:24); no staleTime set |
| R3 slow profile | PARTIAL (numbers only, no artifact; 7.4 s > 5 s + 1 s unexplained) |
| R4 failing profile (non-zero exit) | UNCOVERED |
| R5 profile reorders PATH -> different claude/codex/git | PARTIAL (add-only case shown) |
| R6 overlapping Rescans share one shell | UNCOVERED |
Code: RPC server.discoverSourceControl (packages/contracts/src/rpc.ts:487), scope AuthOrchestrationReadScope; refresh via Effect.cachedWithTTL(Duration.zero) (SourceControlDiscovery.ts:79-84); mergePathEntries puts login-shell entries first (os-jank.ts:34); terminals (terminal/Manager.ts:1522) and Claude/Codex providers (ClaudeProvider.ts:492, CodexProvider.ts:712) read process.env at spawn time.
