Skip to content

fix(web): align pull request state glyph to top of row - #11268

Merged
maria-rcks merged 1 commit into
pingdotgg:mainfrom
akash3444:feature/fix/pr-row-glyph-alignment
Sep 20, 2026
Merged

maria-rcks merged 1 commit into
pingdotgg:mainfrom
akash3444:feature/fix/pr-row-glyph-alignment

Conversation

@akash3444

@akash3444 akash3444 commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Align the pull request state icon with the title instead of centering it across the title and metadata rows.
  • Use left padding instead of left margin in the pull request detail header so the back button and its hover background are not clipped.

Why

The state icon appeared too low because it was centered against both lines of each pull request row. Aligning it with the title makes the list easier to scan.

The detail header uses overflow-hidden, so its left margin moved the clipping boundary inward. Using padding reserves the same space inside that boundary and keeps the back button fully visible on hover.

UI Changes

Before:
Screenshot 2026-09-11 at 11 25 22 PM

Screen.Recording.2026-09-11.at.11.26.43.PM.mov

After:
Screenshot 2026-09-11 at 11 24 56 PM

Screen.Recording.2026-09-11.at.11.26.19.PM.mov

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Summary by CodeRabbit

  • Bug Fixes

    • Merge-method selection now honors the project’s server-side setting, with legacy project preferences used as a fallback.
  • Style

    • Adjusted pull request state icon alignment within list rows.
    • Refined spacing in pull request detail headers for more consistent layout.

@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 Sep 11, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at af4500f

Macroscope's review found this PR approvable — The changes are limited to CSS/layout adjustments in two existing pull-request components: aligning the state glyph and preventing header content from being clipped. They introduce no new capability, data-contract change, or product-default or static-analysis configuration change.

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

@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

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. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 7168f088-8ddd-4728-bfd6-83d6bb339574

📥 Commits

Reviewing files that changed from the base of the PR and between a4e7bbd and 04f4a55.

📒 Files selected for processing (2)
  • apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx
  • apps/web/src/components/pullRequest/PullRequestRow.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx

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


📝 Walkthrough

Walkthrough

The pull request detail panel changes header spacing from left margin to left padding. The pull request row top-aligns the state glyph and adds a small top margin.

Changes

Pull request layout

Layer / File(s) Summary
Pull request layout alignment
apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx, apps/web/src/components/pullRequest/PullRequestRow.tsx
The detail panel uses pl-4 instead of ml-4. The row uses self-start and mt-0.75 for the state glyph wrapper.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Suggested reviewers: shivamhwp

Merge Risk: ⚪ Minimal · up to 04f4a

This PR only adjusts pull-request layout presentation, with no concrete current-head risk identified; it is mergeable.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the primary change: aligning the pull request state glyph with the top of the row. It is concise and related to the changeset.
Description check ✅ Passed The description includes complete What Changed, Why, UI Changes, and Checklist sections. It explains both code changes and provides before-and-after UI images.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

- Wrap PullRequestStateGlyph in a self-start span so the icon pins to the top when PR titles wrap
- Change ml-4 to pl-4 in PullRequestDetailPanel header to use padding instead of margin
@akash3444
akash3444 force-pushed the feature/fix/pr-row-glyph-alignment branch from a4e7bbd to 04f4a55 Compare September 17, 2026 16:49
@maria-rcks
maria-rcks merged commit 599c977 into pingdotgg:main Sep 20, 2026
19 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 20, 2026
## What's Changed
* fix(web): align pull request state glyph to top of row by @akash3444 in pingdotgg/t3code#11268
* fix(web): align menu item icons in pull request detail panel by @akash3444 in pingdotgg/t3code#11263

## New Contributors
* @akash3444 made their first contribution in pingdotgg/t3code#11268

**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260920.1990...v0.0.43-nightly.20260920.2005

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260920.2005
aorwall added a commit to aorwall/t3code that referenced this pull request Sep 21, 2026
Merges `pingdotgg/t3code` up to `7445aa733` (21 commits from base
`5378f87f9`).

**This merge had no conflicts at all.** `preflight.mjs` forecast zero,
and `git merge` stopped on nothing. All 154 files upstream changed
landed — `merge-stats.mjs` reports an exact 154/154 match, so nothing
was dropped and nothing landed that upstream did not change. Fork delta
is 776 files.

The 8 files both sides touched auto-merged; each was checked by hand
against both parents, and `resolution-check.mjs` confirms every one
still carries both upstream's change and its fork delta. The two
`decide` paths (`PreviewView.tsx` and its test) took pingdotgg#12636's
synchronous `capturePreviewAnnotationScreenshot`, which does not touch
the `FEATURES.browserHistory` gate.

`unsupported-methods.mjs` reports ADD 0 / DROP 0, so no error union in
`packages/contracts/src/rpc.ts` changed.

## Usable as-is

Client-side fixes the fork gets for free, no Moatless work needed:

- **Typed text survives clicking a question option** (pingdotgg#12577) — the
composer no longer discards what was typed when an option chip is
clicked.
- **Desktop annotation screenshots stay under CSP** (pingdotgg#12636) —
`capturePreviewAnnotationScreenshot` became synchronous;
`PreviewView.tsx` and its test follow.
- **Providers settings heading restored** (pingdotgg#12552) —
`ProviderSettingsPanel.tsx`.
- **Long titles wrap in confirmation dialogs** (pingdotgg#12571).
- **Collapsed thought previews show plain text** (pingdotgg#12377) — markdown is
no longer rendered into the one-line preview.
- **Mobile:** Android composer placeholder stays on one line (pingdotgg#12605),
workspace navigation and expand controls adapt (pingdotgg#12551), built-in theme
colors align with desktop (pingdotgg#12534, which also lifts the palettes into
`packages/shared/src/themePalettes.ts`), dev-client script with a
preview environment (pingdotgg#12558).
- **Contract members for provider permission requests** (pingdotgg#7861) —
`permission` on `ProviderRequestKind` and `permission_approval` on
`CanonicalRequestType`. The client and mobile halves are here; see the
third bucket for what is missing.

Two more land in surfaces this fork decides out, so they change nothing
today: pull-request detail panel icon alignment (pingdotgg#11263) and PR state
glyph alignment (pingdotgg#11268), both behind `FEATURES.pullRequestSurface:
false`.

Not applicable to the hosted fork: the desktop OTLP main-process
telemetry export (pingdotgg#12520, left off until a metric exists by pingdotgg#12540), the
Flatpak/GTK4 SnapShot text (pingdotgg#12635), and the release fix that dropped a
placeholder `allowBuilds` entry (pingdotgg#12544).

## Unsupported in Moatless / needs implementation

None new. This range added no RPC method, no auth or transport
assumption, and no capability the fork does not already gate. The two
upstream changes that touch decided-out surfaces
(`FEATURES.pullRequestSurface`, `FEATURES.openInEditor`) are covered by
gaps entries that already exist.

## Backend behavior to consider reproducing in Moatless

Four, recorded under _Runtime fixes upstream made to its own server_ in
`docs/fork/gaps.md`:

- **An agent that dies during session start should report its own
stderr** (pingdotgg#12625). Upstream buffers the ACP child's stderr and raises
the captured text when `cursor-agent` exits before the handshake,
instead of a generic session-start failure. Moatless launches its own
agent processes; a bad credential or a missing binary currently reaches
a person with the one line that explained it discarded.
`apps/server/src/provider/acp/AcpStderr.ts`.
- **An empty provider home should resolve to the default, not to a fresh
one** (pingdotgg#12624). A Claude account whose `homePath` is set but empty now
means `~/.claude`, so it shares session continuation rather than
starting its own transcript directory. The symptom is a resumed thread
that has forgotten everything, on an account that merely had a blank
field. `apps/server/src/provider/Drivers/ClaudeDriver.ts`.
- **A provider permission prompt should be approvable, not just
displayed** (pingdotgg#7861). Both contract members landed here, so the rendering
half is already in this fork — Moatless has to emit the `permission`
request for the surface to light up. Until it does, a Codex permission
prompt stalls the turn with nothing to answer it.
- **An editor installed outside `PATH` should still be launchable**
(pingdotgg#12439). Upstream falls back to macOS `Applications` bundles, JetBrains
Toolbox scripts and Windows program directories before declaring an
editor absent. Moot while `FEATURES.openInEditor` is off, and it is the
detection Moatless would need the day it dispatches
`shell.openInEditor`. `packages/shared/src/editor.ts`.

## Verification

`verify.mjs` — all 10 checks pass: duplicate-adds, tripwires,
resolution-check, unsupported-methods, lockfile, fmt:check, lint,
typecheck, build, test (335 test files, 5165 tests). The `t3` package
failed under load and passed when run on its own; not a merge
regression.

Upstream changed three manifests (`apps/mobile/package.json`,
`packages/shared/package.json`, `pnpm-workspace.yaml`) and did not touch
`pnpm-lock.yaml`. The lockfile was re-derived anyway per the merge
procedure; the install produced no change, so the committed lockfile is
already what those manifests resolve to.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/fe6739d3-9f52-4796-b2a8-46a7a7827ec9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 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.

2 participants