Files
hermes-krates-connector/design/shell_window.md
2026-06-16 08:31:55 -04:00

19 lines
1.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Shell Window Feature
**Purpose**: Interactive pseudoterminal session inside a krate.
**Implementation**:
- Frontend component uses **xterm.js** (or equivalent) for terminal UI.
- Backend opens a WebSocket that proxies to `kubectl exec -it <pod> -n <ns> -- sh` (or the container's default shell).
- Input handling: when the mouse is over the shell window, all keypresses are forwarded to the terminal; space does not trigger Spotlight.
- Scroll wheel over the terminal scrolls its content; `Ctrl/⌘+scroll` still zooms the canvas.
- No PTY needed on the server side beyond the exec stream; the WebSocket carries stdin/stdout/stderr.
**Interaction**:
- Click a result in Spotlight or Collection and press **Alt+S** to open a Shell window in a new/existing Krate.
- Resize like any Detail Window; sibling windows resize proportionally.
- Doubleclick header or press `z` to maximize to the viewport.
- The shell window obeys the global pan/zoom shortcuts (Spacedrag pans, Ctrlscroll zooms) when the cursor is inside it.
**State** (`Window` type `shell`).