Feat v0.4.0 notes surface (#22)
All checks were successful
CI/CD / detect-changes (push) Successful in 19s
CI/CD / test-frontend (push) Successful in 22s
CI/CD / test-go-pg (push) Successful in 2m26s
CI/CD / test-sqlite (push) Successful in 3m5s
CI/CD / build-and-deploy (push) Successful in 1m23s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #22.
This commit is contained in:
2026-03-29 11:16:38 +00:00
committed by xcaliber
parent 310048b7bb
commit 2c8dc59284
8 changed files with 1159 additions and 8 deletions

View File

@@ -2,6 +2,43 @@
All notable changes to Switchboard Core are documented here.
## v0.4.0 — Notes Surface
### Added
- **Notes surface package** (`packages/notes/`): Obsidian-style markdown notes
rebuilt as a standard installable `.pkg` archive. Type `full`, tier `starlark`.
Zero kernel changes — proves the extension stack end-to-end.
- **Starlark backend** (`script.star`): 7 API routes — CRUD, search, stats.
Note bodies stored in `ext_notes_notes` TEXT columns. List endpoint returns
lightweight projections (no body); full content fetched on select.
- **Markdown editor**: Preact+htm frontend with sidebar note list, monospace
textarea, and toggle-able live preview. Inline markdown renderer (~100 lines)
covers headings, bold, italic, code blocks, links, lists, blockquotes, and HR.
- **Auto-save**: Debounced save (1s) with dirty/saved status indicator.
`Ctrl/Cmd+S` for force save. Tab key inserts two spaces.
- **Pin & archive**: Pin important notes to the top of the list. Archive
(soft-delete) via the delete button; hard delete with `?hard=1` query param.
- **Search**: Case-insensitive full-text search across title and body content.
Search bar in sidebar filters the note list in real-time.
- **Theme support**: All styles use CSS variables — light and dark themes work
out of the box. Responsive layout collapses to vertical on narrow viewports.
### Data model
| Table | Columns |
|-------|---------|
| `ext_notes_notes` | title, body, folder_id, creator_id, updated_at, pinned, archived |
Indexes on `folder_id`, `creator_id`, `pinned`, `updated_at`.
### Planned (v0.4.1v0.4.4)
- Folders + navigation tree
- Tags + enhanced search
- Backlinks + `[[wikilinks]]`
- Rich editor (CodeMirror 6) + markdown import/export
## v0.3.8 — Distribution
### Added