Feat v0.4.0 notes surface (#22)

Add Notes as a standard installable surface package (type: full,
tier: starlark). Markdown editor with sidebar note list, live
preview toggle, auto-save, pin/archive, and full-text search.
Zero kernel changes — proves extension stack E2E.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-28 23:45:17 +00:00
parent 310048b7bb
commit 5e455c08cb
6 changed files with 1120 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
# Switchboard Core — Roadmap
## Current: v0.3.7 — Package Audit
## Current: v0.4.0 — Notes Surface
Fork of chat-switchboard, gutted to a pure extension platform. All AI/chat
features removed from the kernel. What remains is the minimum viable
@@ -225,15 +225,46 @@ Builder image for faster builds, bundled packages for zero-config first run.
| Distribution docs | ✅ | `docs/DISTRIBUTION.md` — quick start, bundled packages, builder image, custom builds, production deployment. |
| Tests | ✅ | 6 handler tests (fresh install, skip existing, missing dir, empty dir, dormant handling, allowlist filtering). All existing tests pass. |
## v0.4.0 — Notes Surface
## v0.4.x — Notes Surface
Obsidian-style rich-text notes rebuilt as an installable surface package.
Obsidian-style notes rebuilt as an installable surface package.
Zero platform special-casing. Proves the full extension stack E2E.
- Notes as `.pkg` archive
- Rich text editor (ProseMirror or similar)
- Folder tree, backlinks, tags — all extension-provided
- Markdown import/export
### v0.4.0 — Core Notes CRUD + Markdown Editor
| Step | Status | Description |
|------|--------|-------------|
| Package scaffold | ✅ | `packages/notes/` with manifest, script.star, JS, CSS, README. Type: full, tier: starlark. |
| Notes CRUD backend | ✅ | Starlark `on_request()` — list, create, get, update, delete, search, stats. Lightweight list projection (no body). |
| Notes table | ✅ | `ext_notes_notes` — title, body (TEXT), folder_id, pinned, archived, creator_id, updated_at. |
| Markdown editor | ✅ | Preact+htm frontend: sidebar note list, title input, markdown textarea, auto-save (1s debounce). |
| Live preview | ✅ | Inline markdown renderer (~100 lines): headings, bold, italic, code, links, lists, blockquotes, hr. |
| Search | ✅ | Client-side LIKE search over title/body. Search bar in sidebar. |
| Pin/archive | ✅ | Pin notes to top, soft-delete via archive, hard delete with `?hard=1`. |
### v0.4.1 — Folders + Navigation Tree (planned)
- `folders` table (name, parent_id, sort_order)
- Folder CRUD API (4 routes) + note move
- Collapsible folder tree in sidebar
- Breadcrumb trail in editor
### v0.4.2 — Tags + Search (planned)
- `note_tags` table (note_id, tag)
- Tag management inline with note save
- Tag filter in sidebar, tag pills on cards
### v0.4.3 — Backlinks + Wikilinks (planned)
- `note_links` table (source, target, link_text)
- `[[wikilink]]` extraction on save
- Backlinks panel, clickable links in preview
### v0.4.4 — Rich Editor + Import/Export (planned)
- Vendored CodeMirror 6 markdown bundle
- Markdown file import/export
## v0.5.0 — MVP