Repository navigation
fix(server): PR watch no longer reports passed while a second run of a check is still going - #17344
Merged
Yash-Singh1 merged 1 commit intoOct 10, 2026
Conversation
Contributor
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused GitHub check-rollup bug fix that changes only how duplicate completed and active runs are selected, with targeted coverage for ordering and queued-run cases. No product defaults, schemas, infrastructure, or static-analysis settings are changed. You can add or adjust custom eligibility rules. Learn more. |
…a check is still going A workflow on both push and pull_request runs the same check twice on one commit. The GitHub check deduper kept the run with the newest timestamp, so a run that finished hid one still going, and PR watch reported all checks passed. A run that has not finished now outranks finished runs of the same check in GitHub's rollup reader. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ScottN-PV
force-pushed
the
fix/17207-watch-live-duplicate-run
branch
from
October 10, 2026 01:57
cea121e to
dbcc96d
Compare
Yash-Singh1
approved these changes
Oct 10, 2026
github-actions Bot
added a commit
to omarcresp/t3code-flake
that referenced
this pull request
Oct 10, 2026
## What's Changed * fix(web): align compact button touch targets by @Yash-Singh1 in pingdotgg/t3code#17748 * fix(server): t3_thread_launch refuses a new worktree whose base ref has no commit by @tris203 in pingdotgg/t3code#17791 * fix(web): omit underlines on markdown image links by @Saikrishna1876 in pingdotgg/t3code#17728 * fix(server): restore auto resume for wrapped Claude gateway rate limits by @tzachbon in pingdotgg/t3code#17778 * fix(opencode): name OpenCode 2 sessions after their thread by @nkoynov in pingdotgg/t3code#17414 * fix(web): find update settings from the command palette by @sergical in pingdotgg/t3code#17396 * fix(provider-opencode): tell OpenCode Zen and Go models apart by @mr-karan in pingdotgg/t3code#17424 * fix(server): a pull that fast-forwards no longer fails on large Git output by @ScottN-PV in pingdotgg/t3code#17376 * fix(web): cancel question auto-advance after navigation by @maxwellyoung in pingdotgg/t3code#17364 * fix(server): a bare repository name resolves to the signed-in account again by @ScottN-PV in pingdotgg/t3code#17379 * fix(web): a maximized right panel stays maximized when you return to its thread by @jamesvillarrubia in pingdotgg/t3code#17327 * fix(mobile): allow starting a task with only an image by @Claudesaul in pingdotgg/t3code#17409 * fix(server): PR watch no longer reports passed while a second run of a check is still going by @ScottN-PV in pingdotgg/t3code#17344 * fix(server): say why a thread can't be settled by @DylanTX in pingdotgg/t3code#17258 * fix(server): prevent busy terminals from starving history persistence by @StiensWout in pingdotgg/t3code#17181 * feat(server): use macOS .icns app icons as project icons by @psv2522 in pingdotgg/t3code#17149 * fix(mobile): usage reset icon lines up with its row by @Aforno in pingdotgg/t3code#17175 * fix(web): paths pasted after @ keep their underscores by @derektrimm in pingdotgg/t3code#16619 * fix(server): settle every OpenCode subagent call one report answers by @nkoynov in pingdotgg/t3code#17134 * perf(web): switching project keeps Diagnostics and Providers mounted by @flamboh in pingdotgg/t3code#17122 * perf(web): Open Source Licenses downloads its manifest once per session by @flamboh in pingdotgg/t3code#17119 * fix(server): restore OpenCode adapter test typecheck by @Yash-Singh1 in pingdotgg/t3code#17810 * fix(server): Claude subagents show the reasoning effort they run at by @RakshithBhat03 in pingdotgg/t3code#17496 ## New Contributors * @tzachbon made their first contribution in pingdotgg/t3code#17778 * @sergical made their first contribution in pingdotgg/t3code#17396 * @mr-karan made their first contribution in pingdotgg/t3code#17424 * @Claudesaul made their first contribution in pingdotgg/t3code#17409 * @DylanTX made their first contribution in pingdotgg/t3code#17258 * @psv2522 made their first contribution in pingdotgg/t3code#17149 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261010.2922...v0.0.46-nightly.20261010.2935 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261010.2935
github-actions Bot
added a commit
to davidvanderklay/t3code-flake
that referenced
this pull request
Oct 10, 2026
## What's Changed * fix(web): align compact button touch targets by @Yash-Singh1 in pingdotgg/t3code#17748 * fix(server): t3_thread_launch refuses a new worktree whose base ref has no commit by @tris203 in pingdotgg/t3code#17791 * fix(web): omit underlines on markdown image links by @Saikrishna1876 in pingdotgg/t3code#17728 * fix(server): restore auto resume for wrapped Claude gateway rate limits by @tzachbon in pingdotgg/t3code#17778 * fix(opencode): name OpenCode 2 sessions after their thread by @nkoynov in pingdotgg/t3code#17414 * fix(web): find update settings from the command palette by @sergical in pingdotgg/t3code#17396 * fix(provider-opencode): tell OpenCode Zen and Go models apart by @mr-karan in pingdotgg/t3code#17424 * fix(server): a pull that fast-forwards no longer fails on large Git output by @ScottN-PV in pingdotgg/t3code#17376 * fix(web): cancel question auto-advance after navigation by @maxwellyoung in pingdotgg/t3code#17364 * fix(server): a bare repository name resolves to the signed-in account again by @ScottN-PV in pingdotgg/t3code#17379 * fix(web): a maximized right panel stays maximized when you return to its thread by @jamesvillarrubia in pingdotgg/t3code#17327 * fix(mobile): allow starting a task with only an image by @Claudesaul in pingdotgg/t3code#17409 * fix(server): PR watch no longer reports passed while a second run of a check is still going by @ScottN-PV in pingdotgg/t3code#17344 * fix(server): say why a thread can't be settled by @DylanTX in pingdotgg/t3code#17258 * fix(server): prevent busy terminals from starving history persistence by @StiensWout in pingdotgg/t3code#17181 * feat(server): use macOS .icns app icons as project icons by @psv2522 in pingdotgg/t3code#17149 * fix(mobile): usage reset icon lines up with its row by @Aforno in pingdotgg/t3code#17175 * fix(web): paths pasted after @ keep their underscores by @derektrimm in pingdotgg/t3code#16619 * fix(server): settle every OpenCode subagent call one report answers by @nkoynov in pingdotgg/t3code#17134 * perf(web): switching project keeps Diagnostics and Providers mounted by @flamboh in pingdotgg/t3code#17122 * perf(web): Open Source Licenses downloads its manifest once per session by @flamboh in pingdotgg/t3code#17119 * fix(server): restore OpenCode adapter test typecheck by @Yash-Singh1 in pingdotgg/t3code#17810 * fix(server): Claude subagents show the reasoning effort they run at by @RakshithBhat03 in pingdotgg/t3code#17496 ## New Contributors * @tzachbon made their first contribution in pingdotgg/t3code#17778 * @sergical made their first contribution in pingdotgg/t3code#17396 * @mr-karan made their first contribution in pingdotgg/t3code#17424 * @Claudesaul made their first contribution in pingdotgg/t3code#17409 * @DylanTX made their first contribution in pingdotgg/t3code#17258 * @psv2522 made their first contribution in pingdotgg/t3code#17149 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261010.2922...v0.0.46-nightly.20261010.2935 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261010.2935
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A workflow that runs on both
pushandpull_requestruns the same check twice on one commit. The GitHub check deduper keeps the run with the newest timestamp: a finished run is dated by its completion, a live run by its start. When thepull_requestrun finishes first, it hides thepushrun that is still going. PR watch then wakes the agent with "All checks passed" while a check is still running, and the listing row and detail list show the check as passing.Change
In the GitHub rollup reader, a run that has not finished now ranks newest, so it outranks any finished run of the same check. A re-run still shows as the run happening now. Once every run has finished, the newest completion wins as before. A queued run with no start time, which used to drop out the same way, now holds too.
The change is in GitHub's reader only. Forgejo and Bitbucket share the deduper and are unchanged. No new GraphQL fields are requested.
Scope and approval
Closes #17207. The triage comment confirms the cause on
main. This is its option 1, applied where the rollup is deduped, so the watch gate, the reactor's in-flight flag, the listing row, and the detail list all read the same answer.Not fixed: the triage comment's mirror case, where one event's run fails and the other's is still going. The live run now hides the failed run until it finishes, and once it passes the newest completion wins and the failure stays hidden. Telling independent runs apart needs more run identity from GitHub (event, run id, attempt) and handling for cancelled runs.
Verification
New test in
gitHubPullRequestJson.test.tswith the issue's two runs (a finishedpull_requestrun and an in-progresspushrun ofChecks / check), in both listing orders, plus a queued run with no start time in both orders: the detail shows onependingcheck and the rollup readspending. With the fix reverted it fails, showing the check assuccess.In
apps/server:25 files, 871 tests pass. Server typecheck,
vp lint, andvp fmt --checkon the two changed files pass.After rebasing onto refactor(source-control): GitHub lives in @t3tools/source-control-github #17607, which moved the reader to
packages/source-control-github:vp test runthere passes 350 tests in 11 files, and the new test still fails without the fix. Package typecheck,vp lint, andvp fmt --checkon the two changed files pass.Not run against a live GitHub repository, and not run in a client by a person.
Model: Claude Opus 5.5, Claude Fable 5.1 (review), GPT-6-Astra (review). Harness: Claude Code, Codex.