Skip to content

fix(web): the Fix action on a thread details PR row stays inside the card - #31115

Merged
Yash-Singh1 merged 6 commits into
pingdotgg:mainfrom
pouyarezvani:fix/thread-details-pr-row-overflow
Nov 12, 2026
Merged

Yash-Singh1 merged 6 commits into
pingdotgg:mainfrom
pouyarezvani:fix/thread-details-pr-row-overflow

Conversation

@pouyarezvani

@pouyarezvani pouyarezvani commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

A watched pull request with a checks count can push the Fix button past the thread details card's right edge. Closes #31113.

The checks control can shrink. When the completed/total count and the word "checks" do not fit, the whole word drops out while the count remains visible. Fix keeps its label during preparation, replaces its arrow with the existing spinner, and remains disabled until preparation finishes. Existing actions and the option to send the fix to the current thread are preserved.

Validation:

  • vp run check:changed passes after merging current main.
  • Checked the real web client with visual fixtures at the card's narrow width and with more room. The count stays visible, "checks" disappears only when needed, and Fix stays inside the card.
  • A pending-state fixture confirms that Fix is disabled, keeps its label, shows the loader, and removes the arrow. No real provider turn was started.

Original shipped-app reproduction.

Original fix by Claude Opus 5.5 in Claude Code. Follow-up by GPT 6.1 Sol in the Codex harness through T3 Code.

…card

On a watched pull request whose checks show a count, the row's metadata
line (number, checks count, watch icon, trailing action) is wider than
the 280px thread details card. Every control on it is shrink-0 and
nowrap, so the card clipped the Fix action at its right edge.

The checks count control now shrinks and its label truncates, so the
trailing action always stays fully visible.

Closes pingdotgg#31113

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Nov 4, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 4e8f78a

Macroscope's review found this PR approvable — The checks label can shrink and truncate so the Fix action stays inside the thread PR card. This is a localized presentation change with existing actions and check details unchanged.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • Resume reviews
  • Trigger review

No actionable comments were generated in the recent review.

Walkthrough

The thread details PR row and checks popover now accommodate constrained widths. The Fix action keeps its label and shows a spinner during handoff preparation. Checks counts remain together, while the checks label can wrap and the failed-count label can truncate.

Changes: PR row width handling

Layer / File(s) Summary
Checks row layout
apps/web/src/components/chat/ThreadDetailsPrRow.tsx, apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx
The checks control gains min-w-0 shrink. During handoff preparation, the Fix action keeps its label and displays an accessible spinner. The checks count stays together, its label can wrap, and the failed-count label can truncate.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested reviewers: t3dotgg

Merge Risk: Minimal · up to 36380

This is a small UI layout fix that keeps the Fix action inside the thread details card at narrow widths. No actionable merge-blocking risk is identified.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the Fix action on the thread details PR row and says it stays inside the card. The raw summary shows the change: the checks popover control gets min-w-0 shrink, and the failed-count la…
Linked Issues check Passed [#31113] requires the Fix action to stay inside the thread details card when checks show a count. At the reviewed head, ThreadDetailsPrRow.tsx gives the checks count control min-w-0 shrink through…
Out of Scope Changes check Passed The whole-PR diff (merge base e0d0fb3 to head 363807b) changes ThreadDetailsPrRow.tsx and PullRequestChecksPopover.tsx. The count-variant class changes and the Fix pending-state spinner both targe…
Description check Passed The description explains the problem (the Fix button overflowing the thread details card when a watched PR shows a checks count), the change (the checks control can shrink, the word "checks" drops out…
Full details: Title check

Explanation

The title names the Fix action on the thread details PR row and says it stays inside the card. The raw summary shows the change: the checks popover control gets min-w-0 shrink, and the failed-count label truncates. That keeps the trailing action visible. The title is specific and matches the main change. It also follows the conventional commit form the template recommends.

Full details: Linked Issues check

Explanation

[#31113] requires the Fix action to stay inside the thread details card when checks show a count. At the reviewed head, ThreadDetailsPrRow.tsx gives the checks count control min-w-0 shrink through ThreadDetailsControl, so it can shrink. PullRequestChecksPopover.tsx (variant count) clips the second line of the count text, truncates the failed label, and keeps N/M on one line. The Fix pending label is replaced by Fix with an aria-label spinner, which removes the longer 'Preparing...' text that the issue says clipped the row further. These changes address the overflow in the issue. The issue has no automated-test requirement. The PR description still says the change is two class lists with no behavior change, but the reviewed head is broader. That description is stale and does not affect the requirement assessment. Visual layout at 280px was not confirmed by a run in this review; the assessment relies on the diff and the prior PR evidence.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff (merge base e0d0fb3 to head 363807b) changes ThreadDetailsPrRow.tsx and PullRequestChecksPopover.tsx. The count-variant class changes and the Fix pending-state spinner both target the width overflow on the same row, so each has a direct connection to [#31113]. The Spinner import supports the spinner. The Fix pending label change is a visible behavior change, but it is tied to the 'Preparing...' clipping named in the issue. Other checks badge variants are not changed by these edits. The PR description understates the scope by saying it changes two class lists with no behavior. That mismatch is a documentation issue, not unrelated code.

Full details: Description check

Explanation

The description explains the problem (the Fix button overflowing the thread details card when a watched PR shows a checks count), the change (the checks control can shrink, the word "checks" drops out first, and Fix keeps its label and shows a spinner while preparing), and the validation steps. It links issue #31113 and states that the fix preserves existing actions. It follows the template's Problem, Change, Scope, and Verification sections. Gaps: the Verification section does not give explicit before/after screenshots for the UI change. It links an external reproduction image from a fork rather than uploading evidence to GitHub. It also has no agent/model attribution in the required form, though it does name the models used. The core required information is present, so the check passes.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 3ba7811 and 363807b.

Files selected for processing: 2

  • apps/web/src/components/chat/ThreadDetailsPrRow.tsx
  • apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx
Files skipped from review as they are similar to previous changes: 2

  • apps/web/src/components/chat/ThreadDetailsPrRow.tsx
  • apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

@maria-rcks

Copy link
Copy Markdown
Collaborator

Note

Written by claude-opus-5-5 on behalf of Maria

Takeover update. The fix itself is unchanged.

  • Merged current main (298cb24) into the branch with a merge commit. No conflicts.
  • The earlier Test Web failure was AddEnvironmentDialog.browser.test.tsx > clears the form after dismissing it on SSH, a click timeout in a file this PR does not touch. It passed 3/3 on a fresh run, and main is green.
  • vp run check:changed passes: format, lint, knip, typecheck, tests, react compiler.

Real ThreadDetailsPrRow with the app stylesheet, rendered at the card's 280px width with 16/17 checks, one failure and the watch icon:

Before (main): Fix is clipped at the card edge.

Before: thread details PR row on main, Fix action clipped at the right edge of the 280px card

After (this PR): the count truncates and Fix stays inside the card.

After: thread details PR row with this PR, checks count truncated and Fix fully visible

@juliusmarminge juliusmarminge added bugfix Fix PR opened by an issue lead; enters the PR loop pr:gate-failed A land gate failed labels Nov 5, 2026
@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XS 0-9 changed lines (additions + deletions). labels Nov 11, 2026

Copy link
Copy Markdown
Member

The automated pipeline stopped on this pull request and will not merge it:

in the real app the problem is still there, and the rework changed nothing:

No code change this round; the branch stays at 3ba7811. This round's item lists the proof steps (16/17 checks, capture Fix, click Fix, capture Preparing...) but does not say what went wrong at this head, and the PR comments hold no failure detail for 3ba7811. I checked it against the code by rendering the real ThreadDetailsPrRow with the app stylesheet (index.css) in the browser test runner, at the card's real geometry: a 280px card with the section's px-2, so a 264px row whose contents must end at 262px. Setup: PR https://git.cafe/pingdotgg/t3code/pulls/31115 with 15 passing, 1 failed and 1 pending check, the watch icon shown, and the handoff mocked to pending for the Preparing state. On main's classes the bug reproduces: Fix ends at 286.5px and Preparing... at 339px, past the card edge at 272px. At head both states end at 262px: Fix with the count shown as '16/17 …', and Preparing... with the count text hidden and the checks icon kept, as last round intended. A 3x screenshot of both head states shows every control inside the card. The rule for this round was to fix what the code confirms and explain anything it doesn't. The measured head is correct, so I made no change rather than add code to satisfy an item with no observed failure. If the proof run still sees a failure at this head, it needs to report what it saw (for example an element's right edge, or which control overflows) so it can be reproduced. AI-assisted; verified with the tests and tools listed above.

It stays open for a person to finish or close.

@pouyarezvani

Copy link
Copy Markdown
Contributor Author

@juliusmarminge @maria-rcks Thanks both for picking this up and for the extra commit that hides the count while the action is pending.

From the pipeline's last note, the current head (3ba7811) measures correctly at the card's real 280px width: Fix and "Preparing..." both end at 262px, inside the card, while main still overflows to 286.5px and 339px. All checks are green and the branch merges cleanly.

If the proof run saw something different, I'm happy to dig in. Just let me know which control it reported overflowing and I'll reproduce it in the desktop app. Otherwise, is this ready to merge?

@pouyarezvani

Copy link
Copy Markdown
Contributor Author

One more data point on the pipeline's "still there in the real app" note: this is the bug as it looks today in the shipped desktop app, without this PR. On each row with a failing check, the red Fix button is cut off at the card's right edge (#10752 and #10759 here). I blurred the PR titles because they're from a private repo.

Fix button clipped at the card edge in the shipped app

On this PR's head (3ba7811), the same rows keep Fix inside the card, as the pipeline's own measurements show (262px against a 264px row).

@Yash-Singh1
Yash-Singh1 merged commit 932cbd4 into pingdotgg:main Nov 12, 2026
33 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Nov 12, 2026
**v0.1.10-nightly.20261112.4606** · 4 changes from 3 contributors

**3 bug fixes.**

<details>
<summary>Full changelog</summary>

## What's Changed
* fix(web): the Fix action on a thread details PR row stays inside the card by @pouyarezvani in pingdotgg/t3code#31115
* fix(mobile): queue sheet's Resume queue continues a usage-limited thread by @juliusmarminge in pingdotgg/t3code#35576
* fix(server): background status fetch no longer breaks a concurrent git pull by @juliusmarminge in pingdotgg/t3code#26568
* test(web): Mermaid rejection test waits for the viewer chunk to load by @t3dotgg in pingdotgg/t3code#35586


**Full Changelog**: pingdotgg/t3code@v0.1.10-nightly.20261112.4603...v0.1.10-nightly.20261112.4606

</details>


Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.10-nightly.20261112.4606
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Fix PR opened by an issue lead; enters the PR loop pr:gate-failed A land gate failed size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Fix action on a thread details PR row overflows the card

4 participants