Proof audit, pass 2: [#32899](https://git.cafe/pingdotgg/t3code/pull/32899), head [a9674b0379](https://github.com/pingdotgg/t3code/commit/a9674b037914583bdf2e5912b12ffd59fdf3e6a8).

Finding (P2, evidence gap; blocks this requested all-claims proof audit, not a demonstrated production regression): U7 is explicitly claimed in Change: "An explicit steer into a stopping run is still refused, unless its turn already completed". No test or runtime transcript directly demonstrates message.dispatch/steer_active after Stop. The matrix itself identifies U7 as directly uncovered. The passing test "keeps a queued message queued when promoted into a run that Stop reached" dispatches queued-message.promote-to-steer, which bypasses the message.dispatch normalization being changed. The new Stop fixture dispatches restart_active, not steer_active. The unchanged rejection guard supports the claim by inspection, but that does not satisfy pass 2's explicit test-or-transcript requirement for every behavioral claim. Extend the existing Stop fixture to assert a direct explicit steer is refused before dispatching the restart, or remove/qualify the unproved behavioral claim. No before-failure is required for unchanged U7.

Source: [Stop fixture](https://github.com/pingdotgg/t3code/blob/a9674b037914583bdf2e5912b12ffd59fdf3e6a8/apps/server/src/orchestration-v2/SteeringCompletion.integration.test.ts#L1777), [different queued-promotion fixture](https://github.com/pingdotgg/t3code/blob/a9674b037914583bdf2e5912b12ffd59fdf3e6a8/apps/server/src/orchestration-v2/SteeringCompletion.integration.test.ts#L1720), [unchanged steer rejection](https://github.com/pingdotgg/t3code/blob/a9674b037914583bdf2e5912b12ffd59fdf3e6a8/apps/server/src/orchestration-v2/Orchestrator.ts#L5186).

All seven affected fixtures have the requested before-failure and after-success. No mismatch with the PR body's transcript was found.

T(s, settled) = "starts a restart that missed the turn ($status, run settled: $settled) as a new turn". F = "queues a restart sent into a provider turn that failed before its run settled". Stop = "starts a restart sent into a run that Stop reached once the stop settles".

| Row | Test / reproduced evidence | Status |
| --- | --- | --- |
| R1 completed-run restart | T(completed,true): main refuses completed target; head starts restart. | PROVEN |
| R2 inactive-noncompleted restart | T(interrupted,true): main refuses interrupted target; head starts restart. Other inactive values are not individually tested. | PROVEN representative |
| R3 ended-completed, unsettled run | T(completed,false): main refuses missing running provider turn; head queues then starts on settlement. Waiting-run variant not separately tested. | PROVEN representative |
| R4 ended-interrupted, unsettled run | T(interrupted,false): same before refusal; after starts. | PROVEN |
| R5 ended-failed, unsettled run | F: main refuses missing running provider turn; head accepts separate queued restart and does not steer. Isolated before rerun confirms correct refusal cause. | PROVEN admission/queueing |
| R6 ended-cancelled, unsettled run | T(cancelled,false): main refuses missing running provider turn; head starts. | PROVEN |
| R7 Stop-reached restart | Stop: main refuses stopping target; head starts after Stop settles. Fixture is client/user source and run.interrupt. | PROVEN representative |
| U1 still-running restart | SelectionRestart.integration.test.ts, 1 passing test. | UNCHANGED / covered |
| U2 auto, active running turn | CommandPolicy.test.ts authority/capability assertions pass. | UNCHANGED / covered |
| U3 auto, no active run/provider-turn gap | Same policy tests cover absent, pending, ended, previous-attempt turns and preparing/starting states. | UNCHANGED / covered |
| U4 auto, Stop reached | Full file includes "queues a plain send behind the stopped queue and releases its hold". | UNCHANGED / covered |
| U5 steer, running turn | Full file includes changed-selection steering into running turn. | UNCHANGED / covered |
| U6 steer, completion won | Full file includes completion race table. Completed-run-specific steer remains a value-level coverage limit. | UNCHANGED / covered |
| U7 explicit steer, Stop/noncompleted terminal state | No direct stopping-run steer dispatch fixture or transcript; claimed in Change. | UNCHANGED / MISSING claim evidence |
| U8 absent target/preparing/starting/missing or pending turn guards | No added direct integration fixtures; existing policy tests cover intent resolution only. Not newly claimed as changed. | UNCHANGED / coverage limit |

Independent reproduction:

- Created /home/user/wt/pr-32899-audit at the exact requested head, then vp install.
- Read origin via git remote get-url origin; all PR metadata read with cafe. GitCafe and GitHub numbers both resolve to 32899.
- Refreshed origin/main to [d1aeed2492](https://github.com/pingdotgg/t3code/commit/d1aeed249288585390dbac4fde5b54c35bd5fc06). Its Orchestrator.ts blob is identical to the body's main baseline [61cb845d96](https://github.com/pingdotgg/t3code/commit/61cb845d9699d0ecce5a9b660d3b32907914df8b).
- Replaced only audit worktree Orchestrator.ts with git show origin/main:apps/server/src/orchestration-v2/Orchestrator.ts.
- From apps/server, vp test run src/orchestration-v2/SteeringCompletion.integration.test.ts -t restart: 7 failed, 5 passed, 30 skipped (42), exactly as the body says. All seven named failures match, with dispatch refusal causes rather than fixture/schema errors.
- Isolated F on main: 1 failed, 41 skipped. Exact cause: "No running provider turn found for active run run:thread:thread%3Arestart-after-failed-unsettled:ordinal:1."
- Restored head's Orchestrator.ts, then ran the entire file: 42 passed (42), exactly matching the body.
- SelectionRestart.integration.test.ts and CommandPolicy.test.ts: 20 passed (20).
- Existing "a message the user sends after Stop releases the held queue; an agent's does not": 1 passed (43 skipped). Supports unchanged source-dependent queue release rules.
- Existing "releases held agent messages once a later run completes, not the user's": 1 passed (121 skipped). It queues both an agent/server send and a client/user send, fails the active run with provider_error, and observes held queued runs; supports the generic post-failure hold statement. F itself ends before run settlement and asserts only admission/queueing; it does not independently prove later failure settlement or resume.
- vp run check:changed: format, lint, knip, graphql, typecheck (3 packages), tests (62 in 5 files) all pass, matching the body's check summary.

No changed render path, contract, provider adapter, or client implementation. Server orchestrator/effect-worker transcript is appropriate; no browser captures or live paid-provider/MCP race needed. The claimed independent historical review outcomes were not rerun or treated as behavioral proof.

No original worktree edits, pushes, comments, agents, or dev servers. The audit worktree and scratch directory are removed before handback. Disk remained 234 GB available. Completed within the 45-minute budget.

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

FRICTION:
- tool | web open could not fetch the supplied matrix URL; curl fetched it successfully | use direct download for this artifact endpoint

VERDICT: INSUFFICIENT U7: explicit steer after Stop is claimed but has no direct test or transcript
