Fix Cloud sidebar unread indicator placement - #13367
Conversation
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with Blast Radius. 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: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughCloud sidebar unread indicators now use the row’s trailing padding instead of the leading corner. Tests cover placement across widths, row states, font magnification, and transitions. CI runs the related layout suites in the focused gate. ChangesCloud notification layout
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Medium 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
06265d8 to
654deb4
Compare
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
f87da02 to
a63a458
Compare
a63a458 to
a4acf3f
Compare
…-cloud-notification-layout
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
…ion-layout # Conflicts: # cmuxTests/CloudTreeCompactLayoutTests.swift
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
…ion-layout # Conflicts: # .github/workflows/ci-macos.yml # scripts/ci/cmux_unit_test_shard.py
e9154a9 Merge pull request manaflow-ai#13367 from manaflow-ai/13366-cloud-notification-layout 66dd9ea Remember the iOS computer picker selection across launches (manaflow-ai#13772) f64ccb6 test: cover Cloud notification layout at minimum font magnification 156cce4 Merge remote-tracking branch 'origin/main' into 13366-cloud-notification-layout 70dfb47 ci: parallelize iOS test product downloads (manaflow-ai#13884) 368c1fb Merge remote-tracking branch 'origin/main' into 13366-cloud-notification-layout 0ce01ea Merge remote-tracking branch 'origin/main' into 13366-cloud-notification-layout ac3f20c Merge remote-tracking branch 'origin/main' into 13366-cloud-notification-layout efe16fa test: measure rendered Cloud row geometry without style heuristics 5985511 test: scope title raster workaround to ledger rows 8b71061 test: measure Cloud machine title columns robustly ab0d82a fix: remove empty Cloud notification gutter 403a815 Merge remote-tracking branch 'origin/main' into 13366-cloud-notification-layout d454a9c fix: import Cloud font scaling support 84303f0 fix: avoid empty Cloud attention space until unread f5c168d Merge branch 'main' of https://github.com/manaflow-ai/cmux into 13366-cloud-notification-layout 696afe4 test: account for clipped narrow Cloud rows 20d4e69 test: align compact Cloud spacing with attention slots 15b4b5d ci: keep Cloud layout suites in the strict macOS gate a49053c Merge origin/main into 13366-cloud-notification-layout 05ba773 fix: keep Cloud attention indicators in the leading slot a4acf3f fix: separate Cloud unread indicators from row icons 649f602 test: catch overlapping Cloud unread indicators # Conflicts: # .github/workflows/test-ios.yml
Cloud workspace and terminal rows now show the unread dot on the left, before the pin, icon, and title. Read rows reserve no notification space. An unread row inserts a scaled 12pt slot containing the centered six-point dot, keeping it separate from the disclosure caret and row content.
Closes #13366.
The user's follow-up explicitly requested compact read rows and space only while unread. The resulting trade-off is that the identity cluster moves by the slot width plus 2pt on arrival/clear; this supersedes the original issue's no-title-movement requirement. Unread titles have correspondingly less space at narrow widths. Full accessible titles remain available.
Dogfood and evidence
Austin tested the authenticated tagged build and confirmed “it works now.” The local tagged reload of
ab0d82a95bsucceeded in 911 seconds withCMUX_SKIP_ZIG_BUILD=1, personal authentication, the GCP development backend, and Cloud dogfood/beta gates enabled. The preserved tag isissue-13366-cloud-notification-layout. It was opened again at Austin's request and the live GCP-backed sidebar showed compact read terminal rows alongside the unread terminal/workspace with their leading blue dots; unread state was preserved during observation. Subsequent issue changes affect tests only;mainwas merged through70dfb472ec.CloudSidebarAttentionLayoutTests,CloudSidebarPinGeometryTests,CloudTreeCompactLayoutTests, andCloudNotificationDismissParityTestsatac3f20c6293a726b1496034a333e8ea958f90396. Passed: 24 tests in 4 suites in 11.252 seconds. The result bundle contains the rendered read/unread and compact-layout attachments.f64ccb6f4d0f52c7b5413dfa4d591d99a5ac55ad. The placement, pin, compact-caret, and acceptance matrices now also cover the supported 50% minimum (maximum 200%). Current four-suite run 35817904000 passed all 24 tests in 17.886 seconds, including the 50% minimum. All four suite pass lines and a successful executed-test guard were verified in the log. Pre-merge run 35816378262 also passed on0ce01ea071.full-ciremains enabled to verify shared app-host interactions, with the trade-off of broader lanes and additional queue time. Required CI is pending. The instant Web complexity failure was fixed by refreshing the PR base to include ci: scope trusted web complexity before Bun setup #13598's trusted helper; run 35816873375 passed on368c1fbad1; the final head inherits the corrected base. Canonical autoreview atac3f20c629passed with no actionable findings; review also passed on0ce01ea071, and canonical review atf64ccb6f4dpassed with no actionable findings; merge-conflict and policy gates were clean. Review is separate from test execution.Rendered fixture attachments establish layout behavior; they are distinct from Austin's live Cloud dogfood. No post-suite hang is inferred from the hosted command's duration, which includes compilation.
Issue-lifecycle impact map
Review audit
CloudTreeCellView.swift:78ends withattentionSlot: style.rowGrid.attentionSlot, followed by)); there is no argument-list trailing comma.outlineAttentionTransitions,captureRow, and the acceptance-suite call are restored; hosted execution passed.Checklist