Add folders as a first-class concept in the Notes surface with full CRUD, nested tree navigation, and folder-based note filtering. Backend (script.star): - Folder CRUD handlers: list, create, update, delete - Move-note endpoint to reassign folder_id - Delete cascades: orphan notes to unfiled, reparent child folders - Stats now include unfiled and folder counts Frontend (js/main.js): - FolderTree component with flat-to-tree builder via useMemo - FolderNode recursive component with expand/collapse, inline rename - Folder state: activeFolderId, showUnfiled for sidebar filtering - Editor folder select dropdown for moving notes between folders - New notes inherit active folder on creation Schema (manifest.json): - New ext_notes_folders table (name, parent_id, creator_id, sort_order) - 5 new API routes: GET/POST /folders, PUT/DELETE /folders/*, POST /notes/move - Version bumped to 0.2.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Notes
Markdown notes surface with sidebar navigation, live preview, and search.
Status: v0.1.0
Core CRUD with markdown textarea and inline preview.
Features
- Create, edit, archive notes
- Markdown editing with live preview toggle
- Auto-save with debounce (1s)
- Pin important notes to top
- Full-text search across title and body
- Light/dark theme support
Planned
- v0.4.1: Folders + navigation tree
- v0.4.2: Tags + enhanced search
- v0.4.3: Backlinks +
[[wikilinks]] - v0.4.4: Rich editor (CodeMirror 6) + import/export
Data
Single notes table in ext_data:
| Column | Type | Description |
|---|---|---|
| title | text | Note title |
| body | text | Markdown content |
| folder_id | text | Folder reference (v0.4.1) |
| pinned | int | 0 or 1 |
| archived | int | Soft delete flag |
API
| Method | Path | Description |
|---|---|---|
| GET | /notes | List notes (lightweight, no body) |
| POST | /notes | Create note |
| GET | /notes/:id | Get note with full body |
| PUT | /notes/:id | Update note |
| DELETE | /notes/:id | Archive (or hard delete with ?hard=1) |
| GET | /search?q=term | Search title and body |
| GET | /stats | Note counts |
Keyboard Shortcuts
Ctrl/Cmd+S— Force saveTab— Insert two spaces