# Provider initial status proof

AI-assisted; verified with the tests and tools listed above.

Manual real web client proof; no tests or mocked status snapshots.

Environment: Linux, Chromium, 1280 × 800 CSS pixels, device scale 2, light theme. Separate git worktrees and isolated T3 homes, freshly created by each commit; no copied database. Codex enabled with existing installation, authenticated using an API key. Other real providers disabled. No agent turns were sent.

Base: b3fdf2b10fb92e5dbc71a83381c602a8a464bbca
Head: 6933eb06a6cfe6c5f78ccc8911685b930b858be0

1. Install each worktree with `vp i`.
2. Create each isolated home's `userdata/settings.json` with Codex enabled, setupMode existing, and binaryPath pointing to the included `codex-probe` wrapper. Disable other real providers. The wrapper invokes the installed real Codex executable and delays only its app-server startup; it neither generates nor changes any protocol response. Initial exploratory captures used 12 seconds; the final matching captures used 18 seconds on both sides.
3. Start each web client using `T3CODE_DEV_SEED=0 T3CODE_PORT_OFFSET=<offset> vp run dev:web --home-dir <isolated-home> --port <server-port>`. Pair the browser using the startup pairing link. The app automatically creates an empty new thread for its local project. A synthetic empty Demo project was also added on each side through `node apps/server/src/bin.ts project add <demo-directory> --title Demo --base-dir <isolated-home>`; no messages or real data were seeded.
4. Stop and restart only that isolated server with the included `run-server.sh`; keep Vite running. Navigate to `/` approximately 5 seconds after restart. Capture the initial new-thread conversation during the pending probe. The same script and timing were used on both commits.
5. Base: an amber Codex provider status alert says it has not been checked in this session yet. Head: no problem alert; the conversation says Send a message to start the conversation.
6. Repeat the restart while opening `/settings/providers` at the same point. Base: amber Not found, followed by has not been checked. Head: Checking provider status, followed by Waiting for the server to report installation and authentication details.
7. An earlier 12-second delayed probe completed as Authenticated · OpenAI API Key on both commits without user intervention.
8. Additional head check: create the wrapper's sibling `timeout` file, restart, and wait for the real server's probe timeout. Settings changes from Checking provider status to red Unavailable · Timed out while checking Codex app-server provider status.

Final stills are identical crops from pairs of screenshots taken at least 500 ms apart; the corresponding cropped PNG hashes matched. Videos show the same startup interaction. Crops exclude machine labels, configuration paths, and model identifiers; status content is unchanged. Every uploaded image and video was visually inspected (videos through sampled-frame contact sheets).

Not covered: native desktop shell, Windows/WSL multi-environment startup, macOS, mobile, Claude initial checks, first-party OAuth, and other installation/authentication failure types.
