# Final-source real server evidence for issue 23712

PR [#23904](https://github.com/pingdotgg/t3code/pull/23904). Runtime source: [75aef714186dc24e893a63545caf054dbb549eb7](https://github.com/pingdotgg/t3code/commit/75aef714186dc24e893a63545caf054dbb549eb7). Observed live PR head (unchanged throughout both scenarios): [c762335dc05f81604242cb063d96b13c06884d58](https://github.com/pingdotgg/t3code/commit/c762335dc05f81604242cb063d96b13c06884d58). These are distinct SHAs: the requested local runtime source was not updated to the newer remote PR head.

2026-10-23 UTC. Real server, reactor, orchestrator, effect worker, SQLite event log and message projections. Browser authenticated through the dev pairing flow and sent JSON RPC WebSocket requests with orchestrationProtocol=2. No evaluator-only runtime script. Server-only matrix empty; no visual capture. No forge writes, push, commits, or app PR watcher subscription for this evidence thread. Local isolated fixture watches were explicitly stopped.

## Commands and instrumentation

Working directory `/home/ubuntu/wt/issue-23712`. Read `AGENTS.md`, `.agents/skills/test-t3-app/SKILL.md`, its SQLite reference, and ghdrop skill. Checked `git status --short`, `git rev-parse HEAD`, and `git remote get-url origin` (GitCafe). No forge CLI was used.

Ran `T3CODE_DEV_SEED=0 vp run dev > /tmp/issue-23712-dev-private.log 2>&1`, then twice `T3CODE_DEV_SEED=0 vp run dev >> /tmp/issue-23712-dev-private.log 2>&1`. Ports 14667 server / 6627 web; baseDir `/home/ubuntu/wt/issue-23712/.t3`. Retained terminal sessions 80815, 61443, 63675; each stopped using Ctrl-C through write_stdin, exit 130. Reactor PIDs in rows independently prove restarts. No live-state writes or database fixture writes. SQLite collected with `sqlite3.connect("file:.../.t3/userdata/statev2.sqlite?mode=ro", uri=True)`.

Temporary patch is included verbatim separately. PullRequestService imported readFileSync, forced summary/detail state open, and replaced only detail checks with `/tmp/issue-23712-checks.json`. Other detail metadata and head came from real read-only host reads. Reactor imported appendFileSync, accelerated SWEEP_MINUTES 2 -> 0.05, passed [] for remarks to exclude unrelated comment events, and logged actual evaluations immediately after evaluatePullRequestWatch. No evaluator modifications. No changes to caching/read planning.

Browser used `new WebSocket(location.origin.replace("http","ws")+"/ws?orchestrationProtocol=2")`; requests were `{_tag:"Request",id:crypto.randomUUID(),tag,payload,headers:[]}`. Created project using `projects.mutate` with `{type:"project.create", commandId:<uuid>, projectId:"issue23712-proof-project", title:"issue23712 runtime proof", workspaceRoot:"/home/ubuntu/wt/issue-23712"}`. For each scenario, sent `orchestration.dispatchCommand` `thread.create` with its threadId, same projectId, modelSelection `{instanceId:"codex",model:"triage-no-provider"}`, runtimeMode `full-access`, interactionMode `default`, branch/worktreePath null, createdBy user, creationSource web. Then `thread.pull-request.watch` with commandId uuid, same threadId, host github.com, repository pingdotgg/t3code, number 23904, watching true, link `{url:"https://github.com/pingdotgg/t3code/pull/23904",source:"agent"}`. Teardown sent same watch command with watching false, no link. This is local fixture orchestration, not a monitor registered on the current evidence thread.

Initial checks JSON: `[{"name":"required","status":"success","required":true,"description":null,"url":null},{"name":"remaining","status":"pending","required":false,"description":null,"url":null}]`. Waited for persisted early message before mutating the file. Original final changed only remaining.status to success. Policy final changed remaining.status to success and remaining.required to true. Same check names/head/watch start retained within each scenario. Restarted with unchanged final JSON and isolated state for each repeat.

Focused test command from apps/server: `vp test run src/orchestration-v2/pullRequestWatch.test.ts > /tmp/issue-23712-finalhead-green.log 2>&1` -> 17 passed. Existing `/tmp/issue-23712-bot-red.log` retained as supplied historical red evidence, not rerun or attributed to a newly verified baseline SHA.


## triage-23712-final-original-v2

Raw JSONL line 7:
```json
{"at": 1792716343779, "pid": 1831618, "threadId": "triage-23712-final-original-v2", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "pending", "required": false, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": null, "failedChecks": [], "passed": false, "passedChecks": [], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0}, "changes": [{"kind": "checks-passed", "count": 1, "required": true}], "next": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": ["remaining"], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Raw JSONL line 9:
```json
{"at": 1792716353363, "pid": 1831618, "threadId": "triage-23712-final-original-v2", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "success", "required": false, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": ["remaining"], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}, "changes": [{"kind": "checks-passed", "count": 2, "required": false}], "next": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": [], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Raw JSONL line 10:
```json
{"at": 1792716381377, "pid": 1839237, "threadId": "triage-23712-final-original-v2", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "success", "required": false, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": [], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}, "changes": [], "next": {"startedAt": "2026-10-23T00:45:40.234Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": [], "remarksThrough": "2026-10-23T00:45:40.234Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Persisted check notifications: exactly 2; early snapshot 1, final snapshot 2, repeated snapshot 2.

```json
{"notification": {"source": {"kind": "monitor"}, "outcome": "completed", "summary": "#23904: checks passed"}, "createdBy": "agent", "creationSource": "server", "id": "message:pr-watch:049032aa-5f6a-4131-90ec-40ee4c57f5d8", "threadId": "triage-23712-final-original-v2", "runId": "run:thread:triage-23712-final-original-v2:ordinal:1", "nodeId": "node:run:run%3Athread%3Atriage-23712-final-original-v2%3Aordinal%3A1:root", "role": "user", "text": "Update on pull request #23904 (https://github.com/pingdotgg/t3code/pull/23904), which T3 Code is watching for you:\n- All 1 required check passed on c762335.\n\nLook into each item and act on it as your task requires. T3 Code keeps watching and wakes you on the next change, so end your turn when you are done. When you hand the work back to the user, call unwatch_pull_request first so the thread returns to their inbox.", "attachments": [], "streaming": false, "createdAt": "2026-10-23T00:45:44.944Z", "updatedAt": "2026-10-23T00:45:44.944Z"}
```

```json
{"notification": {"source": {"kind": "monitor"}, "outcome": "completed", "summary": "#23904: checks passed"}, "createdBy": "agent", "creationSource": "server", "id": "message:pr-watch:54eb1e0b-49a9-46eb-aad0-1018b67684f2", "threadId": "triage-23712-final-original-v2", "runId": "run:thread:triage-23712-final-original-v2:ordinal:2", "nodeId": "node:run:run%3Athread%3Atriage-23712-final-original-v2%3Aordinal%3A2:root", "role": "user", "text": "Update on pull request #23904 (https://github.com/pingdotgg/t3code/pull/23904), which T3 Code is watching for you:\n- All 2 checks passed on c762335.\n\nLook into each item and act on it as your task requires. T3 Code keeps watching and wakes you on the next change, so end your turn when you are done. When you hand the work back to the user, call unwatch_pull_request first so the thread returns to their inbox.", "attachments": [], "streaming": false, "createdAt": "2026-10-23T00:45:54.353Z", "updatedAt": "2026-10-23T00:45:54.353Z"}
```


## triage-23712-final-policy

Raw JSONL line 11:
```json
{"at": 1792716404965, "pid": 1839237, "threadId": "triage-23712-final-policy", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "pending", "required": false, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": null, "failedChecks": [], "passed": false, "passedChecks": [], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0}, "changes": [{"kind": "checks-passed", "count": 1, "required": true}], "next": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": ["remaining"], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Raw JSONL line 14:
```json
{"at": 1792716419482, "pid": 1839237, "threadId": "triage-23712-final-policy", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "success", "required": true, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required"], "owedChecks": ["remaining"], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}, "changes": [{"kind": "checks-passed", "count": 2, "required": true}], "next": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required", "remaining"], "owedChecks": [], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Raw JSONL line 15:
```json
{"at": 1792716441429, "pid": 1843250, "threadId": "triage-23712-final-policy", "head": "c762335dc05f81604242cb063d96b13c06884d58", "checks": [{"name": "required", "status": "success", "required": true, "description": null, "url": null}, {"name": "remaining", "status": "success", "required": true, "description": null, "url": null}], "before": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required", "remaining"], "owedChecks": [], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}, "changes": [], "next": {"startedAt": "2026-10-23T00:46:42.351Z", "headSha": "c762335dc05f81604242cb063d96b13c06884d58", "failedChecks": [], "passed": true, "passedChecks": ["required", "remaining"], "owedChecks": [], "remarksThrough": "2026-10-23T00:46:42.351Z", "remarkIds": [], "conflicting": false, "wakes": 0, "checksAwaitedSince": null}}
```

Persisted check notifications: exactly 2; early snapshot 1, final snapshot 2, repeated snapshot 2.

```json
{"notification": {"source": {"kind": "monitor"}, "outcome": "completed", "summary": "#23904: checks passed"}, "createdBy": "agent", "creationSource": "server", "id": "message:pr-watch:2e89491a-2bfd-4cae-a68a-37c42f98ba0e", "threadId": "triage-23712-final-policy", "runId": "run:thread:triage-23712-final-policy:ordinal:1", "nodeId": "node:run:run%3Athread%3Atriage-23712-final-policy%3Aordinal%3A1:root", "role": "user", "text": "Update on pull request #23904 (https://github.com/pingdotgg/t3code/pull/23904), which T3 Code is watching for you:\n- All 1 required check passed on c762335.\n\nLook into each item and act on it as your task requires. T3 Code keeps watching and wakes you on the next change, so end your turn when you are done. When you hand the work back to the user, call unwatch_pull_request first so the thread returns to their inbox.", "attachments": [], "streaming": false, "createdAt": "2026-10-23T00:46:46.438Z", "updatedAt": "2026-10-23T00:46:46.438Z"}
```

```json
{"notification": {"source": {"kind": "monitor"}, "outcome": "completed", "summary": "#23904: checks passed"}, "createdBy": "agent", "creationSource": "server", "id": "message:pr-watch:35b47b89-fa06-4380-98ab-d7d23bb50fb1", "threadId": "triage-23712-final-policy", "runId": "run:thread:triage-23712-final-policy:ordinal:2", "nodeId": "node:run:run%3Athread%3Atriage-23712-final-policy%3Aordinal%3A2:root", "role": "user", "text": "Update on pull request #23904 (https://github.com/pingdotgg/t3code/pull/23904), which T3 Code is watching for you:\n- All 2 required checks passed on c762335.\n\nLook into each item and act on it as your task requires. T3 Code keeps watching and wakes you on the next change, so end your turn when you are done. When you hand the work back to the user, call unwatch_pull_request first so the thread returns to their inbox.", "attachments": [], "streaming": false, "createdAt": "2026-10-23T00:47:00.551Z", "updatedAt": "2026-10-23T00:47:00.551Z"}
```


## Gaps and FRICTION
- Remote PR metadata already reported c762335dc05f81604242cb063d96b13c06884d58, not the specified local source SHA. This proves source 75aef714186dc24e893a63545caf054dbb549eb7 against a constant live metadata head; it does not claim the remote PR still points at 75aef714.
- First attempt incorrectly used instanceId triage-no-provider as well as that model. Missing-adapter dispatch prevented persistence. Stopped that fixture watch; raw JSONL retains its failed evaluations under triage-23712-final-original. Successful assertions use only original-v2 and policy. No failed-attempt rows are represented as delivered proof.
- Initial Browser raw WebSocket omitted orchestrationProtocol=2 and failed; adding it connected. An initial projects.list request was unknown; projects.mutate succeeded. Restart invalidated browser session credentials, so each subsequent Browser connection used a fresh startup pairing link. Startup tokens are redacted from published server logs.
- Invalid model prevents successful model work, but the real provider app-server does start and receives thread/start and turn/start. All four persisted runs failed; there were no successful agent turns or assistant messages. This is not a claim that no provider subprocess was launched. Fixture Codex session files may be created outside .t3 by the provider itself; T3 server state remained isolated in .t3.
- Controlled check fixture, forced-open state, excluded remarks, accelerated sweep. Does not test live CI timing/check discovery, comment behavior, production sweep latency, web/desktop/mobile presentation, or source at the newer remote SHA. No fresh baseline runtime required: supplied baseline remains comparison proof. Red log provenance beyond the existing file is not re-established.
- After all captures, both local watches disabled; final policy disable RPC returned sequence 112. All three dev sessions stopped. Both source files restored byte-for-byte from pre-run copies; git status --short empty, HEAD unchanged. ss on ports 14667 and 6627 empty. No commits or pushes.


## SHA-256

- issue-23712-finalhead.jsonl: 1bdcbaabd8e47243c65f6da84c87430896f7f75a575e02f9ff73cbffd82e8c05

- issue-23712-finalhead-evidence.json: f016a5d34aeb56c1e28bda01d0089dd4a2518762ddff912c8dbafce46b6e6aa5

- issue-23712-finalhead-server.log: 610ec5d3bf78e5e45129f1e8859fec72619dfc46a8df90c09db2c072c9e99043

- issue-23712-temporary-fixture.patch: dd8ce74813c6c114a1a16d6dfca698ecf6872eaaef890a3ec32b40f1de8b9c10

- issue-23712-finalhead-green.log: 6835a6ff10ffb8a926cca82d23b05b420830461517ac444645b4438ca8ac101f

- issue-23712-bot-red.log: 85d06bf8e86037b13a0fd08304724cb3d5c3af876941cfbeb9956deeb61a84e7
