Problem
Session aliases can be set in the TUI with A, and dispatch aliases lists them, but there is no way to set or remove an alias from the CLI. That breaks the pattern the other metadata commands follow: dispatch tag <id> mutates tags and dispatch notes set/clear mutates notes, while aliases are read-only from the command line. Scripts and dotfiles cannot assign a stable alias without opening the TUI.
Solution
Add dispatch alias to set and remove aliases, matching the style of tag and notes:
dispatch alias <id> <name> # assign or reassign an alias
dispatch alias <id> --clear # remove the alias on a session
dispatch alias --remove <name> # remove by alias name
<id> accepts a full ID or short ID prefix, consistent with the rest of the CLI. Alias names reuse the same validation the TUI applies (non-empty, no whitespace, unique across sessions) so dispatch open <alias> keeps resolving to exactly one session. Assigning a name already used by another session is rejected with a message naming the current owner. A --json flag prints the resulting mapping for scripting.
Acceptance criteria
Problem
Session aliases can be set in the TUI with
A, anddispatch aliaseslists them, but there is no way to set or remove an alias from the CLI. That breaks the pattern the other metadata commands follow:dispatch tag <id>mutates tags anddispatch notes set/clearmutates notes, while aliases are read-only from the command line. Scripts and dotfiles cannot assign a stable alias without opening the TUI.Solution
Add
dispatch aliasto set and remove aliases, matching the style oftagandnotes:<id>accepts a full ID or short ID prefix, consistent with the rest of the CLI. Alias names reuse the same validation the TUI applies (non-empty, no whitespace, unique across sessions) sodispatch open <alias>keeps resolving to exactly one session. Assigning a name already used by another session is rejected with a message naming the current owner. A--jsonflag prints the resulting mapping for scripting.Acceptance criteria
dispatch alias <id> <name>assigns an alias and persists it to configdispatch alias <id> --clearanddispatch alias --remove <name>both remove an aliasdispatch open--jsonprints the resulting alias mappingdispatch mandocument the command