Skip to content

feat: add native discovery for configured actions - #13045

Closed
teamleaderleo wants to merge 7 commits into
manaflow-ai:mainfrom
teamleaderleo:tact-79-lane-k-customize-actions
Closed

teamleaderleo wants to merge 7 commits into
manaflow-ai:mainfrom
teamleaderleo:tact-79-lane-k-customize-actions

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 19, 2026 •

Copy link
Copy Markdown
Collaborator

Reviewer summary

Shows configured actions in the existing discovery surfaces, with stable identity and the right global-versus-project scope. The change reuses the current action and settings owners.

What changed

Adds the smallest native discovery/management surface for the existing cmux.json action system.

  • adds an Actions · cmux.json… entry beside Settings/Open cmux.json in the app menu
  • adds the same entry to the new-workspace (+) menu management tail
  • shows the live resolved custom action registry, including inherited/project-local actions and overridden built-ins
  • shows effective placements using the existing config vocabulary: palette, ui.newWorkspace.action, ui.newWorkspace.contextMenu, ui.surfaceTabBar.buttons, and shortcut
  • exposes the existing in-cmux config edit path and the existing custom-commands docs
  • keeps execution on the existing action/config paths; this adds no action registry, workflow format, or editor

The discovery model filters shipped built-ins unless they have a config source path, so the panel focuses on user/project customization while still surfacing built-in overrides.

Lane K / #79

Implements Lane K from teamleaderleo/Tact#79.

Lane J uses workflows / saved layouts for reusable layout discovery. This PR keeps that vocabulary intact and scopes its UI to resolved cmux.json actions and their launcher placements; it does not touch Lane J's workflow catalog/docs files.

Tests

Focused coverage:

  • CmuxConfigWorkspaceActionTests.actionsAndLaunchersDiscoveryReportsEffectivePlacements covers agent/workspace kinds, palette/default/+ menu/tab-bar/shortcut placement, and hiding unconfigured shipped built-ins.
  • existing new-workspace rendering tests now assert the shared Actions entry in the management tail.
  • the added Swift source parses cleanly with swiftc -frontend -parse.

Localization audit

No new prose localization keys were introduced. The new native UI reuses existing localized strings for Actions, Open cmux.json, Open Docs, and OK. Placement/type rows intentionally display invariant cmux.json identifiers and schema enum values so users can map the discovery view directly back to config.


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


Summary by cubic

Adds a native discovery panel for cmux.json actions. Previously there was no in-app view of resolved custom actions; now an Actions · cmux.json… entry in the app menu and new-workspace menu tail shows a read-only list of resolved actions with effective placements and source paths. Built-ins are hidden unless overridden. Execution and edit paths are unchanged, and no new localization keys were introduced.

Surface tab bar placement is reported per configured action and only for visible buttons, so hidden buttons are excluded and identical commands are never conflated in the panel.

Implements Lane K of #79 without touching Lane J's workflow/saved-layout vocabulary.

Tests

  • Pin exact surface-tab-bar placement identity, hidden-button reference dropping, and the shared Actions entry in new-workspace menu rendering.

Written for commit fc6a118. Summary will update on new commits.

Review in cubic

@cursor

cursor Bot commented Sep 19, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 17 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 3b3d2f5d-7f6e-452d-b1ba-43f2339b913d

📥 Commits

Reviewing files that changed from the base of the PR and between 4c67b4d and fc6a118.

📒 Files selected for processing (8)
  • Sources/AppDelegate+NewWorkspaceMenuRendering.swift
  • Sources/AppDelegate+WorkspaceActionSave.swift
  • Sources/CmuxConfig.swift
  • Sources/cmuxApp.swift
  • cmuxTests/CmuxConfigNewWorkspaceMenuTests.swift
  • cmuxTests/CmuxConfigTests.swift
  • cmuxTests/CmuxConfigWorkspaceActionTests.swift
  • cmuxTests/NewWorkspaceMenuModelTests.swift

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

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@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.

I found two bounded edge cases in the new discovery/management surface. Both come from the fact that the panel intentionally includes the resolved project-local registry, while some of the UI still loses source/action identity.

Comment thread Sources/AppDelegate+WorkspaceActionSave.swift Outdated
Comment thread Sources/AppDelegate+WorkspaceActionSave.swift
@cursor

cursor Bot commented Sep 19, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@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.

Follow-up on the two earlier findings: current head fc6a118f7313b3f7c3478f53b524b3226598e76b addresses both cleanly.

  • surfaceTabBarActionReferenceIDs carries the canonical action reference through resolution and is filtered against the final visible button IDs, so equal resolved payloads no longer conflate action placement; the duplicate-payload test pins it.
  • the config action now says exactly which global path it will open, while project-local rows continue to display their own source paths.

I did a focused read of the new identity map and found no additional issue in that follow-up.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Replaced by #13232: same commits, head branch moved into the org.

@teamleaderleo
teamleaderleo deleted the tact-79-lane-k-customize-actions branch September 23, 2026 11:36
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.

1 participant