pr #30071 real dev verification, 2026-11-03 UTC main: cefb544af3c98224874419198c0359b652ca3c94 original head: 2cb1c45fae44896115db07c1996270cc5dfeaaa6 fixed head: cbb81afc7953c57baa618362c55cfd77dfa68d97 setup $ git worktree add ../main github/main $ (cd ../main && timeout 600 vp i) $ T3CODE_DEV_SEED=0 setsid nohup vp run dev > /tmp/main-dev.log 2>&1 & [dev-runner] serverPort=16733 webPort=8693 baseDir=/home/user/main/.t3 used repo Playwright with /usr/bin/google-chrome to add real project /home/user/t3code, create a thread, choose Codex gpt-6.1-sol, and send real provider turns calling link_pull_request for four existing public prs. no mocks, fixtures or demo data. all remote pr state remained unchanged. stopped main by its captured process group before copying isolated state to the pr checkout and starting the only dev server. $ git switch -c fix/pr-sync-scope 2cb1c45fae44896115db07c1996270cc5dfeaaa6 $ timeout 600 vp i $ T3CODE_HOME=/home/user/t3code/.t3 setsid nohup vp run dev > /tmp/dev.log 2>&1 & [dev-runner] serverPort=13773 webPort=5733 baseDir=/home/user/t3code/.t3 read-only persisted app state { "settledAt": null, "settledOverride": null, "links": [ { "number": 28312, "state": "closed", "closedAt": "2026-10-31T20:19:17Z", "mergedAt": null }, { "number": 30071, "state": "open", "closedAt": null, "mergedAt": null }, { "number": 30077, "state": "closed", "closedAt": "2026-11-03T10:06:46Z", "mergedAt": null }, { "number": 29987, "state": "merged", "closedAt": "2026-11-03T07:26:12Z", "mergedAt": "2026-11-03T07:26:12Z" } ] } real server trace excerpts, parsed through span-parent relationships startup sweep on main, old closed + recent closed + open are read; merged is excluded: [ { "at": "2026-11-03T11:53:31.252Z", "syncGroups": 3, "gitHubSummaryCalls": 3 } ] startup sweep on original pr, old closed is also excluded: [ { "at": "2026-11-03T11:54:49.954Z", "syncGroups": 2, "gitHubSummaryCalls": 1 } ] startup sweep after fix, scheduled gate unchanged: [ { "at": "2026-11-03T12:01:40.827Z", "syncGroups": 2, "gitHubSummaryCalls": 0 } ] summary calls can be served by the persisted read cache; syncGroups show reactor reads. these are behavior observations, not a latency benchmark. real codex command trigger before/after (help only, does not close anything) 2026-11-03T11:57:11.432Z /bin/bash -lc 'timeout 30 gh pr close --help' status: completed completed: 2026-11-03T11:57:11.453Z output: Close a pull request USAGE gh pr close { | | } [flags] 2026-11-03T12:04:15.658Z /bin/bash -lc 'timeout 30 gh pr close --help' status: completed completed: 2026-11-03T12:04:15.661Z output: Close a pull request USAGE gh pr close { | | } [flags] original command-end and run-end refreshes: only the open link read [ { "at": "2026-11-03T11:57:11.499Z", "syncGroups": 1, "gitHubSummaryCalls": 1 }, { "at": "2026-11-03T11:57:14.416Z", "syncGroups": 1, "gitHubSummaryCalls": 1 } ] fixed command-end and run-end refreshes: all three unmerged links read; merged excluded [ { "at": "2026-11-03T12:04:15.669Z", "syncGroups": 3, "gitHubSummaryCalls": 3 }, { "at": "2026-11-03T12:04:18.721Z", "syncGroups": 3, "gitHubSummaryCalls": 3 } ] client: opened native old-closed pr panel through its deep link, More pull request actions > Refresh observed refreshing notification, loaded Closed state, and one requested syncGroup/summary: [ { "at": "2026-11-03T12:03:53.221Z", "syncGroups": 1, "gitHubSummaryCalls": 1 } ] checks, run through blacksmith-check $ vp test run apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts original: 53 passed extended old-closed command-refresh case against original implementation: failed (the refresh never enqueued; existing project test timeout reached); open case passed. fixed: 54 passed $ git fetch --depth=2 https://github.com/pingdotgg/t3code.git 2cb1c45fae44896115db07c1996270cc5dfeaaa6 $ vp run check:changed cefb544af3c98224874419198c0359b652ca3c94 pass format, lint, knip 1/2, knip 2/2, graphql, affected typechecks (3 packages), tests (55 in 2 files) explicit base was required because the blacksmith source snapshot omits history. limits no actual remote close/reopen/merge was performed, per task's no-other-pr-mutation rule. old/recent/merged states came from real public host responses. command integration used help only. no native iOS/Android, Electron shell, macOS/Windows, tunnel/multi-device, or non-Codex provider pass. no production latency or event-loop performance claim. no full 24-hour wall-clock wait.