Changeset 0.27.1 (#167)
This commit is contained in:
@@ -450,17 +450,17 @@ makes them a natural addition.
|
||||
|
||||
**Surfaces + Editor**
|
||||
- [x] ~~Extension loader: surfaces from manifest.json~~ (v0.27.0 — `/s/:slug` route)
|
||||
- [x] ~~Editor drag-drop file reorder~~ (v0.27.0 — workspace debt)
|
||||
- [ ] Editor drag-drop file reorder (was v0.21.5 — deferred, no DnD infra in file-tree.js)
|
||||
- [ ] Article drag-to-reorder outline sections (was v0.21.6)
|
||||
- [ ] Article-specific AI tools: suggest_outline, expand_section, check_citations (was v0.21.6)
|
||||
- [x] ~~PDF export via pandoc~~ (shipped v0.22.4)
|
||||
- [ ] Mobile: mode selector collapses to hamburger/bottom nav (was v0.21.3)
|
||||
- [x] ~~Pane state persistence per-user/per-project~~ (v0.27.0 — workspace debt)
|
||||
- [x] ~~Pane state persistence per-user/per-project~~ (v0.27.0 — debounced sync to user_settings)
|
||||
|
||||
**Workspace + Git**
|
||||
- [x] ~~Workspace settings UI: git config section in channel/project settings~~ (v0.27.0 — workspace debt)
|
||||
- [ ] Workspace settings UI: git config section (was v0.21.4 — deferred, needs vault-encrypted git credentials)
|
||||
- [ ] User settings: git credentials management UI (was v0.21.4 — needs vault extension, v0.28.0+)
|
||||
- [x] ~~`.gitignore` respect in workspace indexing~~ (v0.27.0 — workspace debt)
|
||||
- [x] ~~`.gitignore` respect in workspace indexing~~ (v0.27.0 — Reconcile walk filter)
|
||||
- [ ] Integration tests: clone, commit, push/pull cycle — requires git binary in CI (was v0.21.4)
|
||||
|
||||
**Provider Health + Routing**
|
||||
@@ -762,7 +762,7 @@ See [DESIGN-0.25.0.md](DESIGN-0.25.0.md) for full spec.
|
||||
- [x] Core surfaces (chat, admin, settings, editor, notes) on manifest pattern
|
||||
- [x] `window.__PAGE_DATA__` injection from declared `data_requires`
|
||||
- [x] `surface_registry` table — admin can enable/disable surfaces (Migration 022)
|
||||
- [ ] `/s/:slug` route namespace for extension/dynamic surfaces — v0.27.0
|
||||
- [x] `/s/:slug` route namespace for extension/dynamic surfaces (shipped v0.27.0)
|
||||
|
||||
**Component Extraction** ✅
|
||||
- [x] FileTree: extracted from `editor-mode.js`, standalone component with Go template partial + JS hydration
|
||||
@@ -815,7 +815,7 @@ See [DESIGN-0.25.0.md](DESIGN-0.25.0.md) for full spec.
|
||||
|
||||
**Shared Surface Routes** — partially shipped
|
||||
- [x] `/admin/:section`, `/settings/:section` — full-page surface routes
|
||||
- [ ] `/s/editor/:wsId`, `/s/article/:wsId/:path` — v0.27.0 (extension surface routes)
|
||||
- [ ] `/s/editor/:wsId`, `/s/article/:wsId/:path` — TBD (editor uses `/editor/:wsId` today)
|
||||
- [ ] `/p/:id` — shared project view — TBD
|
||||
|
||||
**Shipped in v0.26.0:**
|
||||
@@ -862,18 +862,18 @@ release notes.
|
||||
- [x] Route registration test (`TestRouteRegistration`)
|
||||
- [x] Workflow CRUD test (`TestWorkflowCRUD`, `TestWorkflowValidation`)
|
||||
|
||||
**Moved to v0.27.0 Phase 2 (Workflow Polish):**
|
||||
- [ ] Team-scoped workflow management UI (team admin settings surface)
|
||||
- [ ] Drag-and-drop stage reorder in builder (backend supports it, UI is manual)
|
||||
- [ ] `on_complete` workflow chaining (column exists nullable, not wired)
|
||||
- [ ] Workflow retention enforcement (column exists, not enforced)
|
||||
- [ ] Stage persona auto-switch in chat UI
|
||||
- [ ] Round-robin auto-assignment
|
||||
- [ ] Assignment notifications via WebSocket
|
||||
- [ ] Channel header stage indicator + advance/reject controls
|
||||
**Shipped in v0.27.0 Phase 2 (Workflow Polish):**
|
||||
- [x] Team-scoped workflow management UI (Settings → Workflows section)
|
||||
- [x] Drag-and-drop stage reorder in builder (`_wfWireStageDnD()`)
|
||||
- [x] `on_complete` workflow chaining (`triggerOnComplete()` in workflow_instances.go)
|
||||
- [x] Workflow retention enforcement (staleness sweep extended)
|
||||
- [x] Stage persona auto-switch in chat UI (via `workflow.advanced` WS event)
|
||||
- [x] Round-robin auto-assignment (`tryRoundRobin()` in workflow_instances.go)
|
||||
- [x] Assignment notifications via WebSocket (`workflow.assigned`, `workflow.claimed`)
|
||||
- [x] Channel header stage indicator + advance/reject controls
|
||||
|
||||
**Moved to v0.27.0 Phase 1:**
|
||||
- [ ] Extension surface routes (`/s/:slug` namespace)
|
||||
**Shipped in v0.27.0 Phase 1:**
|
||||
- [x] Extension surface routes (`/s/:slug` namespace — `RenderExtensionSurface()`)
|
||||
|
||||
**Shipped (verified in code audit):**
|
||||
- [x] Persona tool grant enforcement in completion handler (`completion.go:928`)
|
||||
@@ -887,31 +887,33 @@ Depends on: workflow engine (v0.26.0), dynamic surfaces (v0.25.0).
|
||||
|
||||
See [DESIGN-0.27.0.md](DESIGN-0.27.0.md) for full spec.
|
||||
|
||||
**Phase 1: Extension Surface Routes (`/s/:slug`)**
|
||||
- [ ] `surface-extension` Go template (HTML + CSS + scripts blocks)
|
||||
- [ ] `base.html` conditional chain extended with `{{if .Manifest}}` fallthrough
|
||||
- [ ] `loadExtensionSurfaces()` in page engine (reads extension manifests from DB at startup)
|
||||
- [ ] nginx location block for `/surfaces/` static assets
|
||||
- [ ] Frontend nav renders extension surfaces from `ListEnabledSurfaces`
|
||||
- [ ] Admin surfaces section: upload/enable/disable/uninstall (API already exists)
|
||||
- [ ] Sample `.surface` archive (hello-world dashboard) for testing
|
||||
- [ ] CSP nonce propagation for extension scripts
|
||||
**Phase 1: Extension Surface Routes (`/s/:slug`)** ✅
|
||||
- [x] `surface-extension` Go template (HTML + CSS + scripts blocks)
|
||||
- [x] `base.html` conditional chain extended with `{{if .Manifest}}` fallthrough
|
||||
- [x] `RenderExtensionSurface()` catch-all handler — runtime DB lookup, no restart needed
|
||||
- [x] nginx location block for `/surfaces/` static assets (unified + split deployment)
|
||||
- [x] Frontend nav renders extension surfaces from DB query at render time
|
||||
- [x] Admin surfaces section: upload/enable/disable/uninstall (API + UI wired)
|
||||
- [x] Sample `.surface` archive (`hello-dashboard`) for testing
|
||||
- [x] CSP nonce propagation for extension scripts
|
||||
- [x] `EXTENSION-SURFACES.md` authoring guide (manifest, API, CSS properties, admin API)
|
||||
- [x] `EXTENSIONS.md` §6 rewritten to reference new authoring guide
|
||||
|
||||
**Phase 2: Workflow Engine Polish (v0.26.0 debt)**
|
||||
- [ ] Channel header workflow stage indicator + advance/reject controls
|
||||
- [ ] Stage persona auto-switch in chat UI
|
||||
- [ ] Assignment notifications via WebSocket (`workflow.assigned`, `workflow.claimed`)
|
||||
- [ ] Round-robin auto-assignment (per-stage `transition_rules.auto_assign`)
|
||||
- [ ] `on_complete` workflow chaining (column exists, wire trigger logic)
|
||||
- [ ] Workflow retention enforcement (extend staleness sweep goroutine)
|
||||
- [ ] Drag-and-drop stage reorder in workflow builder UI
|
||||
- [ ] Team-scoped workflow management UI (team settings → Workflows section)
|
||||
**Phase 2: Workflow Engine Polish (v0.26.0 debt)** ✅
|
||||
- [x] Channel header workflow stage indicator + advance/reject controls
|
||||
- [x] Stage persona auto-switch in chat UI (via `workflow.advanced` WS event → stage bar refresh)
|
||||
- [x] Assignment notifications via WebSocket (`workflow.assigned`, `workflow.claimed`)
|
||||
- [x] Round-robin auto-assignment (per-stage `transition_rules.auto_assign`)
|
||||
- [x] `on_complete` workflow chaining (`triggerOnComplete()` — slug lookup, data mapping, channel creation)
|
||||
- [x] Workflow retention enforcement (staleness sweep extended — archive/delete by policy)
|
||||
- [x] Drag-and-drop stage reorder in workflow builder UI (`_wfWireStageDnD()`)
|
||||
- [x] Team-scoped workflow management UI (Settings → Workflows section)
|
||||
|
||||
**Phase 3: Workspace + Editor Debt**
|
||||
- [ ] `.gitignore` respect in workspace indexing (`workspace/indexer.go`)
|
||||
- [ ] Workspace settings UI: git config section in channel/project settings
|
||||
- [ ] Pane state persistence per-user/per-project (save/restore in `user_settings`)
|
||||
- [ ] Editor drag-drop file reorder (workspace file tree DnD)
|
||||
**Phase 3: Workspace + Editor Debt** (partial)
|
||||
- [x] `.gitignore` respect in workspace indexing (`workspace/fs.go` — Reconcile walk, `loadGitignore`, `matchesGitignore`)
|
||||
- [x] Pane state persistence per-user/per-project (debounced sync to `user_settings` API, cross-device restore)
|
||||
- [ ] Workspace settings UI: git config section — deferred (broader scope, needs vault-encrypted git credentials)
|
||||
- [ ] Editor drag-drop file reorder — deferred (greenfield, no existing DnD in file-tree.js)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user