# PR #23615 proof audit (head 5cf5e838310c2a14156bea31a73602c89eb4cfb2, before = main 8d3b061121)

Seed: global default codex gpt-6-luna; project override codex gpt-6-astra; hiddenModels=[gpt-6-astra].

| Row | Covered by | Pass 1 | Pass 2 |
|---|---|---|---|
| R1 hidden project default -> new draft uses global default | r1 before/after (GPT-6.1-Sol -> GPT-6-Luna), unit test | uncovered on real main | ok |
| R2 visible project default still wins | projectSettings.test.ts "visible" case | covered | ok (22/22) |
| R3 project default on disabled provider (unchanged) | projectSettings.test.ts existing case | covered | ok |
| R4a project Settings Model row | r4a before/after (Overridden -> Inherited from fs-24) | display only | ok |
| R4b stored override still clearable | r4b env-scope popover Reset, settings.json after | uncovered | ok |
| R5 scheduled-task draft | r5 before/after (GPT-6.1-Sol -> GPT-6-Luna) | uncovered (legacy fixture) | ok |
| R6 MCP t3_thread_launch without model/caller | scratch handlers test: main fails (gpt-6-astra), head passes | uncovered | ok, rebuilt independently |
| R7 un-hide -> project default returns | r7 (draft shows GPT-6-Astra, hiddenModels []) | static only | ok |

Pass 1: 4 covered / 3 uncovered. Pass 2: VERDICT: SUFFICIENT.
Unverified: mobile (same shared resolver), startup thread (same fallback, serverRuntimeStartup.ts:296, not run).
