Show compact PR number badges in mobile thread rows#3827
Conversation
- Add shared PR presentation for compact #number labels - Render PR state icons with theme-aware colors Co-authored-by: codex <codex@users.noreply.github.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
ApprovabilityVerdict: Approved This PR makes a minor UI presentation change to how PR badges are displayed in mobile thread rows - changing from text like 'PR open' to compact '#1234' format with an icon. The changes are self-contained, include tests, and don't affect runtime behavior beyond visual display. The open accessibility comment is a valid improvement suggestion but not a blocking issue. You can customize Macroscope's approvability policy. Learn more. |
- Add accessible change request labels that say merge request for GitLab - Keep compact thread list labels as PR numbers
| className={`${compact ? "text-sm" : "text-xs"} font-t3-medium ${ | ||
| selected ? "text-white" : pr.textClassName | ||
| }`} | ||
| <View |
There was a problem hiding this comment.
🟡 Medium threads/thread-list-items.tsx:519
The PR badge View at line 520 sets accessibilityLabel but is not an accessibility element — in React Native a View without accessible={true} is not exposed to VoiceOver/TalkBack, and its accessibilityLabel is ignored. Since the parent Pressable already announces the thread title, the PR status is never read to screen-reader users. Consider adding accessible and accessibilityRole="text" to the View so the PR information is exposed as a separate element, or fold the PR label into the parent's accessibilityLabel.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/mobile/src/features/threads/thread-list-items.tsx around line 519:
The PR badge `View` at line 520 sets `accessibilityLabel` but is not an accessibility element — in React Native a `View` without `accessible={true}` is not exposed to VoiceOver/TalkBack, and its `accessibilityLabel` is ignored. Since the parent `Pressable` already announces the thread title, the PR status is never read to screen-reader users. Consider adding `accessible` and `accessibilityRole="text"` to the `View` so the PR information is exposed as a separate element, or fold the PR label into the parent's `accessibilityLabel`.
… + desktop packaging) Merge upstream/main into the fork. Notable upstream changes: Clerk stack upgrade (pingdotgg#3821), mobile offline persistence + preferences refactor (pingdotgg#3795), mobile PR number badges + a11y (pingdotgg#3827, pingdotgg#3828), font embedding (pingdotgg#3823), worktree metadata preservation during branch sync (pingdotgg#3822), codex reasoning labels (pingdotgg#3824), desktop native optional dependency packaging (pingdotgg#3816). Preserved fork features across conflicts: iOS personal-team build support, Material3 dynamic accent theming, verbose work-log, mobile visible queue, MarkdownCodeBlock, native Android composer/header layout, and the fork's asar:false + afterPack/afterSign node_modules copy hooks for desktop packaging. Lockfile regenerated on pnpm 11 (upstream lock as base).
* Fix desktop native optional dependency packaging (pingdotgg#3816) * [codex] Upgrade Clerk stack (pingdotgg#3821) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Preserve worktree metadata during branch sync (pingdotgg#3822) Co-authored-by: codex <codex@users.noreply.github.com> * feat(client): persist offline environment data and mobile preferences (pingdotgg#3795) Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Label max and ultra reasoning (pingdotgg#3824) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): embed fonts and render project favicons reliably (pingdotgg#3823) Co-authored-by: codex <codex@users.noreply.github.com> * Show compact PR number badges in mobile thread rows (pingdotgg#3827) Co-authored-by: codex <codex@users.noreply.github.com> * Expose mobile PR indicator labels to accessibility (pingdotgg#3828) Co-authored-by: codex <codex@users.noreply.github.com> * test(client-runtime): stub new EnvironmentCacheStore methods in shell-sync mocks Upstream pingdotgg#3795 expanded the EnvironmentCacheStore interface with loadServerConfig/saveServerConfig/loadVcsRefs/saveVcsRefs; add those stubs to the fork-local shell-sync mock stores so typecheck passes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(client-runtime): pass heartbeat opt-in from offline server-config subscription Upstream pingdotgg#3795's makeEnvironmentServerConfigState subscribed to subscribeServerConfig with {} instead of the fork-local shared SERVER_CONFIG_SUBSCRIPTION_INPUT ({ supportsHeartbeat: true }). That opts the quiet offline-persistence subscription out of the server's keepalive frames (and diverges from the shared subscription key), so idle transports/proxies could drop it and leave provider/model metadata stale. Hoist the const above makeEnvironmentServerConfigState and pass it at the subscription site so every consumer shares the same input. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Patricio Gómez Meneses <107218376+Prgm-code@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: wizzoapp[bot] <254688279+wizzoapp[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>
* Add middle-click close for right panel tabs (pingdotgg#3161) Co-authored-by: Julius Marminge <jmarminge@gmail.com> * fix: warm WSL before preflight in WSL-only backend mode (pingdotgg#3588) * Add Claude Sonnet 5 as the default Claude model (pingdotgg#3620) * Restore the ultrathink frame border effect (pingdotgg#3625) * fix(dev): Fix electron dev launch and add test (pingdotgg#3662) * Add adaptive split-view layout for iPad/mobile workspace (pingdotgg#3514) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): compile patched native pods from source on EAS (pingdotgg#3667) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Make the thread composer read as elevated liquid glass (pingdotgg#3668) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Upgrade Vite Plus and enable bundled dev opt-in (pingdotgg#3679) * Surface pending tasks in mobile home and draft flow (pingdotgg#3670) * fix(mobile): combined test branch — scroll, back-swipe, thread lists, computer switching (pingdotgg#3687) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Add repo-root favicon.svg so t3 code shows its own icon (pingdotgg#3683) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Load thread snapshots over HTTP before live sync (pingdotgg#3719) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Fix mobile legend anchor under automatic iOS insets (pingdotgg#3684) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Improve live activity routing and diagnostics (pingdotgg#3685) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Prevent Add Project sheet from collapsing on relayout (pingdotgg#3759) * Use variant-specific splash icons in mobile app (pingdotgg#3762) * Fix Expo widget asset wiring order (pingdotgg#3763) * Extend Done display to 15 minutes and show up to 5 Live Activity banner rows (pingdotgg#3761) * Clear VCS presentation state on finish (pingdotgg#3764) * Lead with the outcome when no agents are active in the Live Activity (pingdotgg#3768) * Add T3 Connect onboarding for mobile and web (pingdotgg#3765) * Revert "Add T3 Connect onboarding for mobile and web" (pingdotgg#3776) * Expose Clerk Google sign-in env vars to Expo (pingdotgg#3772) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Set up Cursor Cloud dev environment (web + Android toolchain) (pingdotgg#3755) Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com> * Revert "Revert "Add T3 Connect onboarding for mobile and web"" (pingdotgg#3777) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Use rounded depth logo for production splash screen (pingdotgg#3780) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix(release): stage pnpm 11 allowBuilds for desktop installs (pingdotgg#3781) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * Upgrade Clerk toolchain to latest versions (pingdotgg#3785) * fix(release): bump electron-builder so pnpm 11 deduped deps land in the asar (pingdotgg#3790) * Fix desktop native optional dependency packaging (pingdotgg#3816) * [codex] Upgrade Clerk stack (pingdotgg#3821) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Preserve worktree metadata during branch sync (pingdotgg#3822) Co-authored-by: codex <codex@users.noreply.github.com> * feat(client): persist offline environment data and mobile preferences (pingdotgg#3795) Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Label max and ultra reasoning (pingdotgg#3824) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): embed fonts and render project favicons reliably (pingdotgg#3823) Co-authored-by: codex <codex@users.noreply.github.com> * Show compact PR number badges in mobile thread rows (pingdotgg#3827) Co-authored-by: codex <codex@users.noreply.github.com> * Expose mobile PR indicator labels to accessibility (pingdotgg#3828) Co-authored-by: codex <codex@users.noreply.github.com> * Fix truncated chat error alert layout (pingdotgg#3899) * fix(marketing): show platform-appropriate commit shortcut on the website (pingdotgg#3644) * [codex] Add Android mobile support (pingdotgg#3579) Co-authored-by: Horus Lugo <horusgoul@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> --------- Co-authored-by: Hugo Blom <6117705+huxcrux@users.noreply.github.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com> Co-authored-by: Rowan <rowan@cardow.co> Co-authored-by: Patricio Gómez Meneses <107218376+Prgm-code@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Vedank Purohit <VedankPurohit2@gmail.com> Co-authored-by: Horus Lugo <horusgoul@gmail.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc>
Summary
#numberlabels.Testing
vp checkvp run typecheckvp testNote
Low Risk
UI-only mobile list presentation with no auth, data, or API changes; behavior change is limited to how PR text appears on screen.
Overview
Mobile thread list rows now show pull requests like desktop: a PR icon plus
#<number>instead of provider-style text such asPR merged.presentThreadPrmoves intothread-pr-presentation.ts. Visible labels are always#number; accessibility still uses provider terms (e.g. merge request on GitLab). State-based Tailwind text classes are unchanged.ThreadListRowadds an SVGPullRequestIcon,pullRequestTintColorfor open/merged/closed in light and dark mode, and wraps the badge in a row withaccessibilityLabel. The icon is white when the sidebar row is selected; size follows compact vs sidebar layout.Tests cover the new label format and GitLab accessibility wording.
Reviewed by Cursor Bugbot for commit 7ecb46e. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Show compact PR number badges with state-tinted SVG icons in mobile thread list rows
PullRequestIconSVG component and apullRequestTintColorutility that maps PR state (open/merged/closed) and light/dark color scheme to a hex tint color.#<number>badge that prepends the new icon, tinted by state and theme (white when selected).accessibilityLabelfield to PR badges combining number, provider-specific terminology ("pull request" vs "merge request"), and state.presentThreadPrnow returns#<number>as the label instead of the previous provider/state chip text; any consumer relying on the old label format will see different output.Macroscope summarized 7ecb46e.