Repository navigation
cmux-next: Feed kinds, inbox controls and GitHub actions draw registry icons - #17620
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>
|
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 |
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
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>
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
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