fix(web): align pull request state glyph to top of row - #11268
Conversation
ApprovabilityVerdict: Approved at 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. |
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe 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. ChangesPull request layout
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to 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)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
- 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
a4e7bbd to
04f4a55
Compare
## 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
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
What Changed
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:

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

Screen.Recording.2026-09-11.at.11.26.19.PM.mov
Checklist
Summary by CodeRabbit
Bug Fixes
Style