Skip to content

cmux-next: Feed kinds, inbox controls and GitHub actions draw registry icons - #17620

Merged
teamleaderleo merged 10 commits into
feat-cmux-nextfrom
op-next-icons-7
Oct 7, 2026
Merged

teamleaderleo merged 10 commits into
feat-cmux-nextfrom
op-next-icons-7

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

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:)):

Item Was (SF) Now (registry)
Notice from an integration arrow.triangle.pull integration
Notice from a server or VM server.rack machine.remote
Notice from an automation gearshape.2 automation
System notice with a terminal terminal terminal
Other notices bell notification
Approve: command terminal terminal
Approve: edit pencil.line action.edit
Approve: network network network
Approve: install shippingbox package
Approve: tool or custom wrench.and.screwdriver tools
Question text.bubble agent.question
Choice list.bullet feed.choice
Confirm checkmark.circle action.confirm
Sign in person.badge.key account.signin
Passkey person.badge.key.fill account.passkey
Review doc.text.magnifyingglass action.review
Input rectangle.and.pencil.and.ellipsis feed.input
File doc.badge.plus file.new
Handoff hand.raised agent.handoff
Custom square.grid.2x2 feed.custom

The glyph box is iconRowSize(textSize) (11 → 13, 12 → 14, 15 → 18). The frame stays size + 6.

Other converted call sites:

Surface Was (SF) Now (registry)
PosterLine this-Mac mark laptopcomputer machine.local
FeedInboxHeader connection tabs arrow.triangle.pull, tray brand.github, inbox
FeedInboxHeader add connection plus action.add
FeedInboxHeader search magnifyingglass search
FeedInboxHeader filter menu line.3.horizontal.decrease, .circle.fill when filtered filter, Line or Solid when filtered
FeedInboxHeader refresh arrow.clockwise action.reload
FeedToast close xmark 9 pt action.close at iconFloor
FeedEmptyState, inbox placeholder tray inbox.empty
FeedMenubarView open Feed arrow.up.forward.app app.open.external
FeedApproveControls scope menu chevron.up.chevron.down 8 pt control.popup at iconFloor
FeedInboxView snooze menu moon.zzz action.snooze
FeedGitHubActions branch, checks, error arrow.triangle.branch, checkmark.circle/xmark.circle, exclamationmark.triangle git.branch, status.success/status.error, status.warning
FeedGitHubActions buttons arrow.up.right, arrow.down.to.line, sparkles, checkmark, exclamationmark.bubble link.external, git.branch, agent.chat.new, action.confirm, action.review
FeedAnswerControls closed line checkmark, minus.circle status.success, action.remove
FeedPromptSummary checklist, origin, attachment circle, lock, doc.text list.bullet.item, security.lock, file.text

Menu labels (filter, scope, snooze) draw NSImage.icon template images rather than the canvas-backed Icon. 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.confirm means approve, and the pack has no mark-read icon yet. FeedTunables.section keeps its symbol string because TunableSection takes one.

Testing

Red commit a1b1873 adds FeedRegistryIconTests; the fix follows. The red run failed to compile on base (FeedGlyph has no member icon or side).

  • Approve-command, integration, system and server items name terminal, integration, notification and machine.remote.
  • A glyph's box is iconRowSize of its text size.

scripts/verify-local.py --affected: feature-flags passed; package-groups fails on base's cmux.xcworkspace grouping, 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).

Before After
before after

Empty-state tray at 8x (before left, after right): empty zoom

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

  • Behavior changes have added or updated tests, or Testing says why not
  • UI change with no new or changed user-facing strings; localization not affected

🤖 Generated with Claude Code

teamleaderleo and others added 2 commits October 6, 2026 11:25
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>
@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 67695c76-6e9e-411e-ba38-2d7f5bf56209

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Not verified: macOS jobs did not run: compile and app tests were skipped on 6d1c5db853; ci-status is green without them.

CI passes on 6d1c5db853 (run 37549554015 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Batch queue: green. Batch stack 23ce15a389b7 on feat-cmux-next 96f7421369d0 with #17541 #17600 #17602 #17605 #17611 #17620. Fleet production build: job 7c149b4a67df53c3864a6572 (cmux-ci artifact 7c149b4a67df53c3864a6572 (job 7c149b4a67df53c3864a6572, tag nb-local-20261006-182815-1)). heavy tier did not run on this branch (run); your PR's own checks are the tests. Validated this PR at a1b1873daac4.

Next: land it yourself with gh-merge-green on this receipt.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Batch queue: green. Batch stack 302099401834 on feat-cmux-next ebac81f0c771 with #17609 #17620 #17630. Fleet production build: job 5283f103448a81da175c7814 (cmux-ci artifact 5283f103448a81da175c7814 (job 5283f103448a81da175c7814, tag nb-local-20261006-223112-1)). heavy tier did not run on this branch (run); your PR's own checks are the tests. Validated this PR at 313292bff93d.

Next: land it yourself with gh-merge-green on this receipt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Batch queue: green. Batch stack b2ae9b9ef0f0 on feat-cmux-next 044508d44ee8 with #17609 #17611 #17620 #17623 #17630 #17633 #17635 #17636 #17648. Fleet production build: job d26b5daf716cd175c2f38aa0 (cmux-ci artifact d26b5daf716cd175c2f38aa0 (job d26b5daf716cd175c2f38aa0, tag nb-local-20261006-225524-1)). heavy tier did not run on this branch (run); your PR's own checks are the tests. Validated this PR at 952fab946b07.

Next: land it yourself with gh-merge-green on this receipt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Batch queue: green. Batch stack c2b7744fd7cc on feat-cmux-next ac66021d2193 with #17551 #17601 #17620 #17623 #17630 #17635 #17643 #17644. Fleet production build: job 267908eced53b1284e673af5 (cmux-ci artifact 267908eced53b1284e673af5 (job 267908eced53b1284e673af5, tag nb-local-20261007-000439-1)). heavy tier did not run on this branch (run); your PR's own checks are the tests. Validated this PR at 6d1c5db8532c.

Next: land it yourself with gh-merge-green on this receipt.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

merge-override: Base red: StaticSidebarToggleTests.withTheSidebarHiddenTheStripStartsAfterTheToggle fails identically on #17620/#17630/#17635 (unrelated surfaces), own tests pass, other reds are runner refusals; owner approved override

@teamleaderleo
teamleaderleo merged commit 7f529cf into feat-cmux-next Oct 7, 2026
53 of 73 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-icons-7 branch October 7, 2026 01:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants