Add design folder and README

This commit is contained in:
Hermes Agent
2026-06-16 08:31:55 -04:00
commit e36c189ca6
9 changed files with 806 additions and 0 deletions

18
design/shell_window.md Normal file
View File

@@ -0,0 +1,18 @@
# 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`).