Changeset 0.21.5 (#91)

This commit is contained in:
2026-03-01 20:35:10 +00:00
parent d67cfd37c2
commit aadba77887
15 changed files with 1499 additions and 14 deletions

View File

@@ -85,7 +85,7 @@ v0.21.0 Workspace Storage Primitive ✅
v0.21.1 Workspace ✅ v0.21.3 Surface Infra ✅
Tools + Bindings + REPL (parallel)
│ │
v0.21.2 Workspace ✅ v0.21.5 Editor Surface
v0.21.2 Workspace ✅ v0.21.5 Editor Surface
Indexing + Search (Development Mode)
│ │
v0.21.4 Git ✅ v0.21.6 Article Surface
@@ -772,15 +772,29 @@ Layer git operations onto workspaces.
- [ ] Integration tests: clone, commit, push/pull cycle (requires git binary in CI)
- [ ] `.gitignore` respect in workspace indexing (deferred to v0.21.5+)
### v0.21.5 — Editor Surface (Development Mode)
### v0.21.5 — Editor Surface (Development Mode)
IDE-like experience. Browser-tier extension consuming workspace primitives.
IDE-like experience. Browser-tier surface consuming workspace primitives.
- [ ] Layout: file tree (sidebar), code editor (CM6, main), AI chat panel (resizable split), status bar
- [ ] File tree: workspace_ls backed, git status indicators, context menu, drag-drop
- [ ] Code editor: CM6 codeEditor() factory, language auto-detection, tab bar, Ctrl+S save
- [ ] AI chat panel: same channel context, workspace tools auto-injected, live update via EventBus
- [ ] Keyboard shortcuts: Ctrl+P quick open, Ctrl+Shift+F workspace search
- [x] Layout: file tree (sidebar), code editor (CM6, main), AI chat panel (resizable split), status bar
- [x] File tree: workspace_ls backed, context menu (open, delete), nested directory expansion, file icons
- [x] Code editor: CM6 codeEditor() factory with textarea fallback, language auto-detection (20+ languages), tab bar, Ctrl+S save
- [x] AI chat panel: same channel context via Surfaces DOM borrowing, live update via workspace.file.changed event
- [x] Keyboard shortcuts: Ctrl+P quick open, Ctrl+S save, Ctrl+W close tab
- [x] Split pane layout with draggable resize handle
- [x] Status bar: file path, language mode, git branch
- [x] Workspace API methods on frontend (8 methods)
- [x] Surfaces.getSavedFragment/putSavedFragment for cross-surface DOM sharing
- [x] workspace.file.changed event emission from stream_loop.go after tool calls
- [x] Event route table: workspace.file. → DirToClient
- [x] editor-mode.css: dark theme, mobile responsive (stacked at ≤768px)
- [x] Auto-registration: surface registers when channel/project has workspace binding
- [x] Workspace management UI: create, list, bind from project settings + chat context menu
- [x] GET /workspaces list endpoint, workspace_id in channel API (update, get, list)
- [ ] Git status indicators in file tree (visual indicators per-file) — deferred
- [ ] Drag-drop file reorder — deferred
- [ ] Ctrl+Shift+F workspace search — deferred
- [ ] Auto-save on tab/mode switch — deferred
### v0.21.6 — Article Surface + Document Output Pipeline