Skip to content

feat(web): launch terminals and subshells from machine groups - #450

Merged
theogravity merged 3 commits into
mainfrom
feat/sidebar-machine-quick-launch
Oct 26, 2026
Merged

theogravity merged 3 commits into
mainfrom
feat/sidebar-machine-quick-launch

Conversation

@theogravity

Copy link
Copy Markdown
Contributor

Machine group headings in both sidebar lists now have a + menu. New terminal starts the terminal plugin on that node using its latest working directory, falling back to its home directory. New subshell opens the launch dialog with that node selected. Both paths retain the existing launch restrictions and workspace filing behavior, and the controls match the sidebar's icon sizing and alignment.

Directory, Recent, and Favorite selections now close the directory picker without reopening it when focus returns to the input. Reopening the launch dialog also preserves its directory default when paths are cached, including React Strict Mode effect replay.

Validation:

  • 3,055 web tests passed, including node selection, launch restrictions, cached defaults, and picker focus regressions.
  • 87 Playwright browser checks passed; 5 skipped.
  • Build, type checks, lint, design, and prose checks passed.
  • Clicked through both launch actions on the server and an enrolled test node at desktop and phone widths, verified terminal commands and directory selection, and checked sign-in and terminal input/output through an HTTPS development proxy.

openLaunch takes no argument on purpose: handing it to a Button's
onClick made the click event the node pick, so the empty-state CTA
opened a launch form seeded with a SyntheticEvent. openLaunchOnNode
keeps the per-machine entry point, and a required string makes the
handler-shaped wiring a compile error. The directory picker's
capture-phase Escape claim now covers only events addressed inside the
picker, so a popup tabbed to while the panel sat open still gets its
dismissal. Pins both regressions.
The review fix shipped the event-passing trigger in node-launch-menu's
setup but no test passed the flag, so the MAJOR's pin never ran. Now it
does: the CTA opens the launch dialog on the prior launch's node and
directory, and no event ever names a machine to /recent. quick-add's
own trigger drops its now-unneeded wrapper for the direct pass that
just bit the CTA, and openSshLaunch gains a note that its optional
draft is call-by-wrapper only.
@theogravity
theogravity merged commit 3de3f67 into main Oct 26, 2026
12 checks passed
@theogravity
theogravity deleted the feat/sidebar-machine-quick-launch branch October 26, 2026 08:29
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant