app_run_menu
Dispatches a mapped menu command by path and reports only that it was sent, not that it executed; use a menu click when the action must be verified.
Instructions
Dispatch a menu command by path. DISPATCH IS NOT EXECUTION.
This sends the command and cannot tell you it ran. Altium's
RunProcess accepts an unknown process id in silence and
reports nothing back, so a typo, a command unavailable in the
current editor, and a command that worked are indistinguishable
from here. MEASURED 2026-08-17: "Tools|Preferences" returned in
0.11s with success: true and no dialog ever appeared. That is
why the reply says dispatched, never executed, and carries
outcome_verified: false.
Use app_click_menu when you need the command to actually
happen. It walks the real menu bar and clicks the item, so it
fails loudly on a path that does not exist and reaches the many
commands that have no process id at all.
These paths are mapped to internal processes:
"File|Save All"
"Tools|Design Rule Check"
"Tools|Electrical Rules Check"
"Project|Compile"
"Edit|Select All" / "Edit|Deselect All"
"View|Zoom Fit"
"Tools|Preferences"
"Tools|Extensions and Updates"
Anything else is REFUSED with UNMAPPED_MENU_PATH. The old
fallback guessed a MenuID out of the pipe-separated path and was
measured opening nothing while reporting success, so refusing
and pointing at app_click_menu is strictly more useful than
a guess that cannot work.
Args: menu_path: Menu path using pipe separators (e.g., "File|Save All")
Returns: Dictionary with dispatched, outcome_verified (always false), menu_path, and the process used. A reply the bridge could not parse is reported as a failure, not smoothed into a success.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| menu_path | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||