Session Info: row menu runs through the shared menu-action helper, not an inline selector (base red)
Base-red-job: cmux-next guards / defaults-snapshot
Fixes the Menu rows run registered actions, not inline selectors base red (scripts/cmux-next/check-menu-actions.py): AgentPaneSessionInfoContent.swift: 1 inline menu row(s), 0 allowed. Source: #31930 (native AppKit Session Info), which built each line's ⦠menu row with NSMenuItem(⦠action: #selector(menuItemPressed(_:))).
These rows run a Session Info action string that the session-info payload defines (Button.action). Nothing in the action registry corresponds to it, and the line's own buttons and toggle run the same thing through ink.act. So the row now goes through the agent pane's shared closure-row helper (AgentPaneMenuAction.item, the one the chat context menu uses), and the closure runs the same ink.act and ink.flush(). The enabled state and the SF Symbol image are as before. No baseline or allowlist entry is added.
python3 scripts/cmux-next/check-menu-actions.py: fails on base, passes on this head (ok: 41 inline menu rows in 32 baselined files, none new). The prepush gate shows no new violations. A CmuxNext package compile check is running on the fleet.
Observed / Not run
Ran the check script and the prepush gate. I did not open the menu in a running build.
Changelog
none
Agent session: agent session
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Routes Session Info row menu items through the shared AgentPaneMenuAction closure-row helper instead of an inline NSMenuItem selector, fixing a base-red violation in scripts/cmux-next/check-menu-actions.py. Behavior is unchanged: rows run the same session-info action the line's buttons run via ink.act and ink.flush(), and enabled state and SF Symbol images stay the same. No baseline or allowlist entry is added.