# PR #23615 evidence: browser driver steps (T3 Browser panel automation, 1440x900 viewport)

Before = main 8d3b061121 (~/wt/main-23615), dev server `vp run dev --home-dir /tmp/ev-23615/home-main --no-seed` (web :6391).
After  = head 5cf5e838310c2a14156bea31a73602c89eb4cfb2 (~/wt/pr-23615), `vp run dev --home-dir /tmp/ev-23615/home-head --no-seed` (web :7686).
Both homes: statev2.sqlite from `node apps/server/scripts/migrate-dev-db.ts --base-dir <home> --source ~/.t3/userdata/statev2.sqlite --projects 2 --threads-per-project 2`
(read-only source; project t3code = 8d0f56d2-deef-4095-9f40-9d41f3e6d834, workspace /home/ubuntu/t3code), plus userdata/settings.json:

```json
{
  "defaultModelSelection": { "instanceId": "codex", "model": "gpt-6-luna" },
  "providerModelPreferences": { "codex": { "hiddenModels": ["gpt-6-astra"], "modelOrder": [] } },
  "projectSettingsOverrides": {
    "8d0f56d2-deef-4095-9f40-9d41f3e6d834": {
      "defaultModelSelection": { "instanceId": "codex", "model": "gpt-6-astra" }
    }
  }
}
```

Note: global default was first seeded as gpt-6.1-sol, but the codex catalog's first visible model is
GPT-6.1-Sol, which is exactly what main's client falls back to for a hidden model, so before/after
looked identical. Switched both homes to gpt-6-luna before any recorded capture.
The dev server also auto-bootstraps a "server" project from apps/server (same repo), so the
"Project grouping" device toggle was turned off on both sides to address the root t3code project alone.

Common: open pairing URL from dev-runner output, resize tab freeform 1440x900, dismiss "Update Available" toast.

R1 (both): record; navigate `/`; click sidebar thread "Issue 16822 triage"; click breadcrumb button
"New thread in t3code" (or "pingdotgg/t3code" when grouped); read composer model button text; screenshot; stop.

R4a (both): record; `/settings/general`; turn Project grouping off; Project scope -> t3code, Environment scope -> fs-24
(URL `/settings/general?project=<envId>%3A%2Fhome%2Fubuntu%2Ft3code&machine=<envId>`); hover the Model row's
source icon; read its aria-label ("Overridden for this project" vs "Inherited from fs-24") and model button; screenshot; stop.

R5 (both): record; `/settings/scheduled-tasks`; click "New task"; Project combobox -> "t3code"; read dialog Model
button; screenshot; stop.

R4b (head): record; `/settings/general?machine=<envId>` (All projects on fs-24); click Model row source button
"Set on the environment · 1 project override"; screenshot popover (Overridden by t3code gpt-6-astra);
click "Reset it"; re-read (now "Set on the environment", no override list); screenshot; stop;
`cat home-head/userdata/settings.json` -> r4b-settings-after-reset.txt.

R7 (head): rewrite the projectSettingsOverrides entry back into home-head settings.json (hidden still set);
record; `/settings/providers`; screenshot; click switch "Show GPT-6-Astra in the model picker" (false -> true);
navigate `/`, thread "Issue 16822 triage, t3code" -> "New thread in t3code"; read composer model; screenshot; stop.

R6: handlers.hidden-ev.test.ts copied into apps/server/src/mcp/toolkits/project/ of both checkouts,
`cd apps/server && vp test run src/mcp/toolkits/project/handlers.hidden-ev.test.ts` -> r6-before.txt / r6-after.txt,
then the copies were removed after `git status --porcelain` showed them as the only untracked files.
