Changeset 0.31.0 (#203)

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit is contained in:
2026-03-19 00:06:16 +00:00
committed by xcaliber
parent 5883cb50e2
commit 071dea8904
33 changed files with 1693 additions and 1562 deletions

View File

@@ -37,7 +37,7 @@ v0.9.xv0.28.7 Foundation through Platform Polish ✅
v0.30.0 Package Lifecycle ✅ │
v0.30.1 SDK Adoption ✅ │
v0.30.2 Workflow Packages ✅ │
v0.31.0 Editor Package
v0.31.0 Editor + SDK
│ │
══════╪═══════════════════════════════╪══════
│ MVP v0.50.0 │
@@ -255,16 +255,37 @@ Depends on: v0.29.3, v0.30.0, v0.30.1.
- [x] Workflow package export/import (.pkg round-trip)
- [x] E2E tests: export/import, surface_pkg_id persistence
### v0.31.0 — Editor Package
### v0.31.0 — Editor Package + SDK Composability ✅
E2E proof: rebuild editor as installable `.pkg`. Zero platform
special-casing. Validates the full v0.28.7v0.30.2 stack.
special-casing. Full SDK composability — every UI piece created
through `sw.*` factories, no component duplication.
Depends on: v0.30.2.
- [ ] Editor `.pkg` (type: `full`), settings via extension point
- [ ] State persistence via `ext_editor_*` tables
- [ ] Remove editor from core (`surface-editor` template, data loader)
**Editor Package (CS0CS2):**
- [x] Editor `.pkg` (type: `full`), settings via extension point
- [x] State persistence via localStorage (per-user, per-workspace UI state)
- [x] Remove editor from core (`surface-editor` template, data loader)
- [x] E2E tests: install, settings, export/import round-trip, core removal
- [x] Self-mounting components (`Component.mount()` is canonical entry point)
**SDK Composability (CS3CS4):**
- [x] Delete `NoteEditor` — `NotePanel` is single canonical notes component
- [x] Platform scripts in `base.html` (chat-pane, note-panel, note-graph available to all surfaces)
- [x] `UserMenu.mount()` — self-contained, works in any container
- [x] `sw.userMenu()` — mount user menu anywhere, `flyout: 'up'|'down'`
- [x] `sw.chat()` uses `ChatPane.mount()` (not manual DOM + `.create()`)
- [x] `sw.fileTree()`, `sw.codeEditor()`, `sw.layout()` SDK wrappers
- [x] `sw.menu()`, `sw.dropdown()`, `sw.toolbar()`, `sw.tabs()` UI primitives
- [x] `--bg-elevated` / `--border-elevated` CSS tokens for floating panels
- [x] Editor package uses SDK exclusively (`sw.layout`, `sw.fileTree`, `sw.codeEditor`, `sw.chat`, `sw.notes`, `sw.userMenu`)
- [x] Nginx caching: JS/CSS use `must-revalidate` (not `immutable`) for dev reload safety
- [x] NotePanel: pagination, select mode, sticky selection bar, `note-panel-root` class (no PanelRegistry conflict)
**Known remaining (visual polish, not blocking):**
- [ ] UserMenu flyout contrast on very dark backgrounds (functional, low contrast)
- [ ] Editor chat pane duplicates streaming/model-selector logic (~250 lines) — should move to ChatPane or SDK
---