Skip to content

cmux NEXT composer: restore project icons after an empty host answer - #24623

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
leo1023-composer
Oct 24, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
leo1023-composer

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

The project picker could permanently settle on the generic folder when its first project.icon answer was empty while the host capability was still warming. Empty answers now stay uncached, so reopening the project picker asks again and displays the returned project favicon or language mark in both project menu rows and the current project trigger in the composer/new-tab location chip.

Leo described the current regression as: “project icons are CURRENTLY generic rather than the reading heuristics thing we did before”. The existing project.icon heuristic remains the source of truth; this fix only prevents an empty first answer from masking it and ensures the current chip uses the same badge as the menu. Remote projects still avoid local icon reads.

Validation

  • git diff --check
  • Added ProjectBadge regression coverage for an empty answer followed by a real icon.
  • Browser/unit execution is pending the checkout’s missing @base-ui/utils/useIsoLayoutEffect dependency.

Changelog

Fixed project picker rows and composer project chips so a later project icon answer replaces the generic folder.

agent-identity footer
Agent session: big-red

Gallery: agent-pane.composer-context/folder-favicons, agent-pane.composer-context/closed

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review c63216b: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24623 -f ref=leo1023-composer -f platform=macos -f backend_mode=local

Gallery before/after for c63216b: 2 states rendered, 0 images differ (picked by the Gallery: line in the PR body). Images are in the run's artifact, not on this public PR.

gh run download 40047927391 -R manaflow-ai/cmux -n gallery-advisory-24623-c63216bbbfad2cda6fa2aff9e225d0a8d9ff09a4 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.composer-context/folder-favicons Apple System Colors Light unchanged 0% pr-body
agent-pane.composer-context/folder-favicons Apple System Colors unchanged 0% pr-body
agent-pane.composer-context/closed Apple System Colors Light unchanged 0% pr-body
agent-pane.composer-context/closed Apple System Colors unchanged 0% pr-body

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Probably yours: transcript-pinned-bottom.test.ts, transcript-pinned-bottom.test.ts fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): claimPaint.test.tsx, claimPaint.test.tsx, changelog-pictures.test.tsx and 2 more.

CI failed on c63216bbbf (run 40047927349 attempt 1): 1 code, 1 unknown.

Job Verdict Why
web / react-apps-check (1) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs claimPaint.test.tsx a pooled Settings page claimed by the host reports its paint once its first screen is in: failed (job)
  • seen on other PRs claimPaint.test.tsx a Settings page loaded fresh reports its first paint once its first screen is in: failed (job)
  • seen on other PRs changelog-pictures.test.tsx a change's picture opens enlarged on a click, and Close closes it: failed (job)
  • seen on other PRs pane-english.test.ts agent pane strings > no user-visible English is written in the pane's sources: failed (job)
  • seen on other PRs popup-one-hairline.test.ts web popups draw one hairline edge > the pane's menus and popovers are all checked: failed (job)
  • new in this PR transcript-pinned-bottom.test.ts chromium: a long chat opens at its bottom, a streamed reply and a tool row keep it there on every fr...: failed (job)
  • new in this PR transcript-pinned-bottom.test.ts webkit: a long chat opens at its bottom, a streamed reply and a tool row keep it there on every fram...: failed (job)
Matched log lines
web / react-apps-check (1): (fail) a pooled Settings page claimed by the host reports its paint once its first screen is in [1100.30ms]

Not re-run automatically: web / react-apps-check (1), web / react-apps-check are not machine failures.

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.

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on be5d73b to compare; do not merge until green; see lane-rules
red: web / Web status; no finished base run on be5d73b to compare; do not merge until green; see lane-rules
red: web / react-apps-check; no finished base run on be5d73b to compare; do not merge until green; see lane-rules
red: web / react-apps-check (1); no finished base run on be5d73b to compare; do not merge until green; see lane-rules

Tour of c63216bbbf (run): no media. The tour did not run: only webview code changed (12 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label, then re-add media-tour, to tour it on a Mac.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 23, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Found 35 test failures on Blacksmith runners:

Failures

Test View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
/tmp/tmpcamm7b0n/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpwpr_2i7c/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs

...and 25 more test failures. View all on Blacksmith: run 40047927307, run 40047927349, run 40047927488

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-1qwms created for this PR by the cmux coordinator.

@cursor

cursor Bot commented Oct 24, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

Keep the existing project favicon and language heuristics intact while avoiding a permanent generic-folder cache when the host answers before icon capability is ready. Add regression coverage for a later icon answer.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a89-20f0-7ff2-8bb0-ec0bb3ae3a5e&host=big-red
Accept more than ten attachments in the shared composer and New Tab intake, including saved links and restored chips. Keep per-file and byte limits intact and replace the old refusal assertions with acceptance coverage.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a89-20f0-7ff2-8bb0-ec0bb3ae3a5e&host=big-red
Keep the existing project.icon heuristic visible in the current project trigger, not only in menu rows. Remote projects still avoid local icon reads.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a89-20f0-7ff2-8bb0-ec0bb3ae3a5e&host=big-red
@cursor

cursor Bot commented Oct 24, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SHIP — exact head c63216b.

Independent Codex review confirms the project icon retry and ProjectBadge chip/menu paths are clean, including the #21244 custom icon family and #24194 base behavior. No P1/P2/P3 findings. Fleet compile receipt b4cd8c989e0c1e03706862cb completed app compile with an explicit passed result.

@teamleaderleo
teamleaderleo merged commit e113084 into feat-cmux-next Oct 24, 2026
123 of 137 checks passed
@teamleaderleo
teamleaderleo deleted the leo1023-composer branch October 24, 2026 01:37
@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant