feat: Sprint 17 -- workspace breadcrumbs, slash commands, send key setting

Track A: Workspace breadcrumb navigation
- Breadcrumb path bar with clickable segments when inside subdirectories
- Up button in panel header for parent directory navigation
- S.currentDir state tracking; file ops stay in current directory
- New file/folder creation respects current subdirectory

Track B: Slash commands foundation
- New commands.js module (7th JS module) with command registry and parser
- Built-in commands: /help, /clear, /model, /workspace, /new
- Autocomplete dropdown on / input with arrow/tab/enter/escape navigation
- Unrecognized commands pass through to agent normally

Track C: Send key setting (closes #26)
- send_key added to settings defaults in api/config.py
- Settings panel dropdown: Enter (default) vs Ctrl/Cmd+Enter
- Keydown handler rewritten for autocomplete + send key preference
- Setting loaded on boot, persisted to settings.json

5 new tests, 242 total (219 passing, 22 pre-existing failures, 0 regressions).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nathan Esquenazi
2026-04-02 17:31:31 -07:00
parent 856f5c21e1
commit 0f2bd537f1
13 changed files with 478 additions and 22 deletions

View File

@@ -5,6 +5,34 @@
---
## [v0.19] Sprint 17 -- Workspace Polish + Slash Commands + Settings
*April 3, 2026 | 294 tests*
### Features
- **Workspace breadcrumb navigation.** Clicking into subdirectories now shows a
breadcrumb path bar (e.g. `~ / src / components`) with clickable segments to
navigate back. An "up" button appears in the panel header when inside a
subdirectory. File operations (rename, delete, new file/folder) stay in the
current directory instead of jumping back to root. Foundation for Issue #22
(tree view).
- **Slash commands.** Type `/` in the composer to see an autocomplete dropdown
of built-in commands. New `commands.js` module with command registry. Built-in
commands: `/help`, `/clear`, `/model <name>`, `/workspace <name>`, `/new`.
Arrow keys navigate, Tab/Enter select, Escape closes. Unrecognized commands
pass through to the agent normally.
- **Send key setting (Issue #26).** New setting in Settings panel to choose
between Enter (default) and Ctrl/Cmd+Enter as the send key. Persisted to
`settings.json` via the existing settings API. Setting loads on boot.
Server-side validation ensures only valid values (`enter`, `ctrl+enter`).
### Architecture
- New `static/commands.js` module (7th JS module): command registry, parser,
autocomplete dropdown, and built-in command handlers.
- `send_key` added to `_SETTINGS_DEFAULTS` in `api/config.py` with enum validation.
- `S.currentDir` state tracking added to `ui.js` for workspace navigation.
---
## [v0.18.1] Safe HTML Rendering + Sprint 16 Tests
*April 2, 2026 | 289 tests*