The editor folder select was a flat list making it impossible to
distinguish subfolder nesting. Now builds a tree and renders with
└ prefix indentation (e.g. " └ Projects" under "Work").
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>