Docs contents
DOCS / WORKING IN THE DESKTOP
Review a plan before it runs
When the Superintendent wants to change your Works, it shows an approval card with the exact command, and nothing runs until you approve it.
The Superintendent can read your Works freely. Anything that would change it, start an agent, or leave your machine is held back as an approval card in the panel. The card shows what is about to run, and you decide whether it does.
What gets a card
hm sorts every command the agent can call into a class, and the class decides what happens:
- Reads run straight away and never show a card. Listing tickets or checking a manifest's status changes nothing.
- Writes are held for your approval when the posture is Ask before writes. Adding a ticket or writing a note is a write.
- Dispatch always asks, whatever the posture. Starting an agent on a ticket is always your call. See dispatch and the gatehouse.
- Work that leaves the Works, such as merging onto the landing branch or pushing to the remote, always asks. It cannot be undone, so no posture runs it without you.
This is hm's own check, so it works the same whichever agent runtime is hosting the session.
Read the card
Cards appear above the composer, one per held command. Each one shows:
- A severity chip naming the lifecycle phase the command belongs to.
- The exact
hmcommand that will run, arguments included. What you read is what runs. - A line saying why it was held. For example, Dispatch stays Principal-confirmed — approve to run it, or dismiss to deny.
Some cards carry more. A repair card names the repair and what it must achieve. When you create or join a Works from the panel, the card lists the fields about to be written and the lines you should read before approving. See create or join a Works.
Approve or dismiss
- Approve & run runs the command exactly as shown. The result comes back into the conversation, and the change lands on the ledger.
- Dismiss refuses it. The command never runs, and the agent is told it was denied.
The agent is waiting on your answer, so you can approve a card while its turn is still running. If you stop the turn with Escape, or close the panel, every card still waiting is refused, so nothing is left hanging.
If a card says dispatch is withheld and cannot be approved from here, the Approve & run button is disabled. Dismiss it, and start the work from the terminal instead.
Choose how often you are asked
The Posture control in the row above the composer sets the default for this session:
- Ask before writes raises a card for every write.
- Run writes lets writes run without a card. Dispatch still asks, and so does anything that leaves the Works.
The choice applies to this session only, unless you choose Save as seat default. A Works can also set a posture in its executor settings that never asks. The panel shows that as Run writes (bypass) but does not offer it, because a setting that broad belongs in a file with a record behind it, not in a menu. See executors and your model account.
Checked against crates/hm-desktop/ui/src/lib/approval.ts, reviewed 2026-09-14. That file is what makes these steps true; this page is a reading of it, and is not where it is edited.