Repository navigation
feat(cmux-next): migrate composer menus to native popups - #27144
teamleaderleo wants to merge 81 commits into
Conversation
|
Bead |
Agent-Session: $(agent-identity session 2>/dev/null || true)
Native popup rows use the shared Glass.makeOverlayPanel material, preserve Reduce Transparency, and keep popup identity and revision bound across native events. Agent-Session: https://cmux.com/deeplink/agent?id=aid-c71c74308c1f7f21a180
Default changesThis pull request changes 1 default at
Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Regenerate the snapshot with |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: |
|
Found 48 test failures on Blacksmith runners: Failures
...and 38 more test failures. View all on Blacksmith
|
W2-09 follow-up for the native composer-popup owner — tested bounded-row experimentThe W2-09 independent research prototype is in HQ draft PR #5954, at exact head Still present on refreshed Specific owner-review question: When this PR migrates Boundary: Please treat #5954 as tested research/test fixtures, not a patch to cherry-pick without adapting the native keyboard and AX protocol. Exact next acceptance: a real |
|
W2-09 integration heads-up (exact current production diff): cmux #31293 is now the independent draft/HOLD bounded-slash-view implementation on |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Routes composer mode, effort, Fast, options, Plan/Build, slash, and @ suggestions through the native popup protocol. Each consumer sends generated rows and consumes typed search, highlight, pick, change, and dismiss events; production DOM menu rows are removed.
This seam preserves existing mode/config/action IDs, labels, optimistic refusal handling, selection semantics, and composer caret edits. It depends on native popup foundation PR #27142 and overlaps model-picker consumer PR #27140; cherry-pick after those land and resolve only ComposerPickers consumer hunks. No QuickModelMenu or ModelPicker implementation is included.
Validation:
git diff --checkvpis not installed)HOLD: land after #27142 and #27140 are integrated; then run native transport roundtrip, stale-revision, no-production-DOM, and real-app light/dark checks.
Agent session: agent session
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Routes composer mode, effort, Fast, options, Plan/Build, slash, and @ suggestion menus, plus the shared Combobox, ContextMenu, Menu, Popover, and Select primitives, through the native popup protocol instead of mounting production DOM rows. Web code sends generated rows and consumes search, highlight, pick, change, submit, and dismiss events over a single popup identity with monotonically increasing revisions.
This PR also includes the popup foundation: a JSON-schema wire contract with a generator for the TypeScript and Swift Codable types, and an AppKit
DeclarativePopupHostthat renders the glass panels, search fields, named-stop sliders, editable controls, and side-by-side submenus while preserving keyboard focus and committed IME text across updates. Permission mode glyphs are added as native icons.Preserves existing mode/config/action IDs, labels, optimistic refusal handling, selection semantics, and composer caret edits. HOLD: depends on native popup foundation PR #27142 and overlaps model-picker consumer PR #27140; cherry-pick after those land and resolve only ComposerPickers consumer hunks. No QuickModelMenu or ModelPicker implementation is included.
Written for commit 2a3c69c. Summary will update on new commits.