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

Merged
TE
14d ago
+75-65

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