Repository navigation
cmux-next: Feed kinds, inbox controls and GitHub actions draw registry icons - #17951
azooz2003-bit wants to merge 7 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Feed items show their kind with one registry name per meaning at the row size of their text. Menu labels draw template NSImages because AppKit renders them and drops canvases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FeedGlyph.swift held four top-level types, one over the god-file limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
Summary
Seventh PR of the icon registry lane (after #17538, #17558, #17582, #17583, #17593 and #17597). The Feed showed each item's kind with SF Symbols at the font size of its text, plus SF labels on GitHub actions, prompt summaries and the inbox header. The Feed now draws them from the cmux icon registry, with one semantic name per meaning, at the row size of the text beside them. Because of #17597, they land on whole pixels.
Kind glyphs (
FeedGlyph.icon(for:)):arrow.triangle.pullintegrationserver.rackmachine.remotegearshape.2automationterminalterminalbellnotificationterminalterminalpencil.lineaction.editnetworknetworkshippingboxpackagewrench.and.screwdrivertoolstext.bubbleagent.questionlist.bulletfeed.choicecheckmark.circleaction.confirmperson.badge.keyaccount.signinperson.badge.key.fillaccount.passkeydoc.text.magnifyingglassaction.reviewrectangle.and.pencil.and.ellipsisfeed.inputdoc.badge.plusfile.newhand.raisedagent.handoffsquare.grid.2x2feed.customThe glyph box is
iconRowSize(textSize)(11 → 13, 12 → 14, 15 → 18). The frame stayssize + 6.Other converted call sites:
PosterLinethis-Mac marklaptopcomputermachine.localFeedInboxHeaderconnection tabsarrow.triangle.pull,traybrand.github,inboxFeedInboxHeaderadd connectionplusaction.addFeedInboxHeadersearchmagnifyingglasssearchFeedInboxHeaderfilter menuline.3.horizontal.decrease,.circle.fillwhen filteredfilter, Line or Solid when filteredFeedInboxHeaderrefresharrow.clockwiseaction.reloadFeedToastclosexmark9 ptaction.closeaticonFloorFeedEmptyState, inbox placeholdertrayinbox.emptyFeedMenubarViewopen Feedarrow.up.forward.appapp.open.externalFeedApproveControlsscope menuchevron.up.chevron.down8 ptcontrol.popupaticonFloorFeedInboxViewsnooze menumoon.zzzaction.snoozeFeedGitHubActionsbranch, checks, errorarrow.triangle.branch,checkmark.circle/xmark.circle,exclamationmark.trianglegit.branch,status.success/status.error,status.warningFeedGitHubActionsbuttonsarrow.up.right,arrow.down.to.line,sparkles,checkmark,exclamationmark.bubblelink.external,git.branch,agent.chat.new,action.confirm,action.reviewFeedAnswerControlsclosed linecheckmark,minus.circlestatus.success,action.removeFeedPromptSummarychecklist, origin, attachmentcircle,lock,doc.textlist.bullet.item,security.lock,file.textMenu labels (filter, scope, snooze) draw
NSImage.icontemplate images rather than the canvas-backedIcon. AppKit renders menu labels and keeps images but drops custom views, so a canvas could leave the control blank.Not converted: mark-all-read keeps
checkmark.circle.action.confirmmeans approve, and the pack has no mark-read icon yet.FeedTunables.sectionkeeps its symbol string becauseTunableSectiontakes one.Testing
Red commit a1b1873 adds
FeedRegistryIconTests; the fix follows. The red run failed to compile on base (FeedGlyphhas no membericonorside).terminal,integration,notificationandmachine.remote.iconRowSizeof its text size.scripts/verify-local.py --affected: feature-flags passed; package-groups fails on base'scmux.xcworkspacegrouping, as on earlier PRs in this lane.Changelog
Changed: Feed items, inbox controls and GitHub actions use the cmux icon set at the size of their text
Demo Video
Fleet builds of base (96f7421) and the fix (ba71143), on a capture mini (1x display), with the Feed opened from the Window menu. The mini has no Feed items, so the captures show the header and the empty state. The two runs came up in different appearances (light before, dark after).
Empty-state tray at 8x (before left, after right):
The first after build drew the tray at a 20 pt box. A pack drawing inks about two thirds of its box, so the tray was 14 px wide against the SF tray's 23. The empty states now use 32 and 44 pt boxes, and the tray inks 24 px wide.
Checklist
🤖 Generated with Claude Code
Migrated from #17620 after correcting the PR author identity. The original head commit f443cc9 is preserved.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Feed items, inbox controls, and GitHub actions now draw their icons from the cmux registry instead of SF Symbols, with one semantic icon per meaning at the row size of the text beside them.
CmuxNextFeedadds aCmuxNextIconsdependency, and new tests verify the mappings and glyph sizing.FeedTunables.sectionkeep their SF symbols because the registry lacks matching icons andTunableSectiontakes a symbol string.Written for commit f443cc9. Summary will update on new commits.