# Issue 25636 — completed server evidence

Issue: [#25636](https://git.cafe/pingdotgg/t3code/issues/25636); supplied GitHub counterpart: [#25638](https://github.com/pingdotgg/t3code/issues/25638).
Final head: [8cee7bba3b](https://git.cafe/pingdotgg/t3code/commit/8cee7bba3b7cf899a7cfe00bf30547cddcbeb5ce), base [0790e3891b](https://git.cafe/pingdotgg/t3code/commit/0790e3891b), branch `fix/issue-25636`.
Worktree: `/home/ubuntu/wt/issue-25636`. Evidence: `/tmp/issue-25636`. Captured 2026-10-26 UTC by GPT-6.1-sol / Codex, without subagents.

## Observations

| Case | Durable stop outcome | Later real provider work |
| --- | --- | --- |
| Baseline fresh | Running attempt 1 past expired lease at 21:51:20Z | Start pending attempt 0 |
| Baseline restart | Running attempt 2 past expired lease at 21:52:19Z | New start pending attempt 0; prior unstarted start cancelled |
| Fixed fresh | Claimed attempt 1 at 22:09:37.269Z; five 30s timeout warnings; failed attempt 5 at 22:12:08.921Z | New start succeeded attempt 1 at 22:12:09.901Z; provider assistant message `FIXED_FRESH` at 22:12:26.865Z; checkpoint succeeded |
| Fixed restart, matching attempt 2 | Captured running attempt 1, stopped process; restarted without DB writes; recovery claimed attempt 2 at 22:13:26.737Z; four remaining 30s timeouts; failed attempt 5 at 22:15:28.206Z | Post-recovery web prompt created pending start attempt 0; start succeeded at 22:15:29.193Z; provider assistant message `FIXED_REPLAY_TWO` at 22:15:31.641Z; checkpoint succeeded |

Fresh stop settlement took 151.652s from first claim. Restart stop settlement took 121.469s from replay claim 2. These are observations, not performance guarantees. The real worker timeout, retry limit and backoff were unchanged. A preliminary replay reused the existing baseline attempt-2 row, recovered at attempt 3, and also completed; retained as supplemental `after-replay-*` files.

Web composer messages used the real command path. Persisted outbox rows and event-log provider/assistant records establish execution; no projection rows were written. The only seed mutation was deleting/reinserting `effect:repro:stop` while the isolated server was stopped. Only the delegated-stop executor was temporarily changed to `return Effect.never`; `boundExecution` remained final HEAD. No generic expired live-lease reclaim was introduced or simulated.

## Tests

- Independently repeated red: base worker with final HEAD regression tests; both fresh/replayed cases fail with `provider-turn.start never ran behind the hung delegated-tasks.stop` (2 failed, 44 filtered/skipped).
- Green on fully restored final HEAD: `vp test run apps/server/src/orchestration-v2/FoundationPersistence.test.ts` — 46 passed. Includes existing persistence/serialization and no live reclaim coverage.
- No repo-wide check, push, source commit or PR performed.

## Scope and limits

Controlled **interruptible** downstream stop hang only. The original production Codex completion/stop cause remains unknown. This does not prove behavior for uninterruptible regions, synchronous blocking code, or hanging interruption finalizers. Timeout evidence is specific to this executor fixture; normal provider execution after release was real Codex execution.

The visible-render matrix remains empty: [pass-1 matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c84cfa22b62e165/proof-matrix-pass1.md). Its pending evidence status is superseded by this index. This server-only worker applies across entry points, clients, providers and connection modes using that server; this pass exercised web/local with Codex, not separate desktop, mobile, relay, tunnel or provider-adapter runs. No UI, wire contract, navigation, reverse-state or documentation change was made. No screenshot or recording is applicable.

## Artifacts

[runtime-transcript.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a13fa192c23b1e02/runtime-transcript.txt)
[repro-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36e922a39fad8fa4/repro-driver.md)
[seed-stop.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8a37c7e2562602e/seed-stop.py)
[inject-only.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e1d25c774d6b18e/inject-only.py)
[red-test-independent.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b5705e188eef9ac/red-test-independent.txt)
[green-test.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd1ee06524fda4f0/green-test.txt)
[evidence-support.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa6fad411be8d602/evidence-support.tar.gz)


The support archive includes full sanitized runtime logs, read-only transition/final-state snapshots, observer/capture/summarizer/test drivers, and the before-restart/pending snapshots. The standalone transcript condenses transitions and persisted provider events. Sampling every second can miss short pending states; warning logs corroborate each timeout. Raw startup logs and pairing URLs are excluded. Uploads used the [ghdrop skill](/home/ubuntu/.codex/skills/ghdrop/SKILL.md), with `ghdrop upload -m`; publishable text was inspected for startup token values and credential markers.

## Friction

| FRICTION category | happened | avoidance |
| --- | --- | --- |
| browser startup | First navigation returned connection refused while dev was stopped | Wait for isolated server readiness before navigation |
| browser auth/reload | New owned tab needed pairing; restart briefly left an empty page | Pair privately and reload the owned tab after server startup |
| replay alignment | Existing baseline stop was already attempt 2, so first AFTER recovery began at 3 | Added a separate real restart from captured running attempt 1 to match attempt 2 |
| evidence sampling | 1s recorder missed some brief pending retries | Retain timeout warning logs alongside durable final rows |
| fixture limit | Interruptible fixture bypasses unknown original stop cause | State controlled downstream scope explicitly |

Final cleanup: all owned dev and observer sessions stopped; ports 14498 and 6458 have no listeners; owned browser tabs closed. Worker byte-equals final HEAD; `git status --porcelain` empty; HEAD unchanged. All scratch/evidence remains outside the checkout, and the live T3 home was untouched. No PR yet.
