Feat v0.4.1 folders #23
34
CHANGELOG.md
34
CHANGELOG.md
@@ -2,6 +2,40 @@
|
||||
|
||||
All notable changes to Switchboard Core are documented here.
|
||||
|
||||
## v0.4.1 — Folders + Navigation Tree
|
||||
|
||||
### Added
|
||||
|
||||
- **Folders table** (`ext_notes_folders`): name, parent_id, creator_id,
|
||||
sort_order. Indexed on parent_id and creator_id. Nested hierarchy via
|
||||
parent_id foreign key (empty string = root).
|
||||
- **Folder CRUD API**: 5 new Starlark handlers — list, create, update, delete
|
||||
folders plus a dedicated move-note endpoint (`POST /notes/move`).
|
||||
- **Navigation tree**: `FolderTree` + `FolderNode` Preact components in the
|
||||
sidebar. Flat API response built into a nested tree client-side via `useMemo`.
|
||||
Expand/collapse toggles, depth-based indentation, inline rename via
|
||||
right-click context menu.
|
||||
- **Folder filtering**: Clicking a folder filters notes by `folder_id` query
|
||||
param. "All Notes" clears the filter. "Unfiled" shows notes with empty
|
||||
folder_id (client-side filter).
|
||||
- **Editor folder select**: Dropdown in the editor header moves notes between
|
||||
folders. Shows nested hierarchy with `└` prefix indentation.
|
||||
- **Folder-aware note creation**: New notes inherit the active folder's ID.
|
||||
- **Delete cascade**: Deleting a folder orphans its notes (moves to Unfiled)
|
||||
and reparents child folders to the deleted folder's parent.
|
||||
- **Updated stats**: `/stats` response now includes `unfiled` and `folders`
|
||||
counts.
|
||||
|
||||
### Data model
|
||||
|
||||
| Table | Columns |
|
||||
|-------|---------|
|
||||
| `ext_notes_folders` | name, parent_id, creator_id, sort_order |
|
||||
|
||||
### Notes package version
|
||||
|
||||
Bumped from 0.1.0 → 0.2.0. 12 API routes (7 existing + 5 new).
|
||||
|
||||
## v0.4.0 — Notes Surface
|
||||
|
||||
### Added
|
||||
|
||||
17
ROADMAP.md
17
ROADMAP.md
@@ -1,6 +1,6 @@
|
||||
# Switchboard Core — Roadmap
|
||||
|
||||
## Current: v0.4.0 — Notes Surface
|
||||
## Current: v0.4.1 — Folders + Navigation Tree
|
||||
|
||||
Fork of chat-switchboard, gutted to a pure extension platform. All AI/chat
|
||||
features removed from the kernel. What remains is the minimum viable
|
||||
@@ -242,18 +242,23 @@ Zero platform special-casing. Proves the full extension stack E2E.
|
||||
| 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)
|
||||
### v0.4.1 — Folders + Navigation Tree (complete)
|
||||
|
||||
- `folders` table (name, parent_id, sort_order)
|
||||
- Folder CRUD API (4 routes) + note move
|
||||
- Collapsible folder tree in sidebar
|
||||
- Breadcrumb trail in editor
|
||||
| Step | Status | Description |
|
||||
|------|--------|-------------|
|
||||
| Folders table | ✅ | `ext_notes_folders` — name, parent_id, creator_id, sort_order. Indexed on parent_id and creator_id. |
|
||||
| Folder CRUD API | ✅ | 5 Starlark handlers: list, create, update, delete folders + `POST /notes/move`. Delete cascade orphans notes and reparents child folders. |
|
||||
| Folder tree UI | ✅ | `FolderTree` + `FolderNode` components. Flat-to-tree builder, expand/collapse, depth indentation, inline rename via context menu. |
|
||||
| Folder filtering | ✅ | Click folder → filter notes. "All Notes" / "Unfiled" virtual views. New notes inherit active folder. |
|
||||
| Editor folder select | ✅ | Dropdown with nested hierarchy (`└` prefix). Moves notes between folders via move-note API. |
|
||||
| Updated stats | ✅ | Stats include `unfiled` and `folders` counts. |
|
||||
|
||||
### 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
|
||||
- Drag-and-drop note-to-folder moves
|
||||
|
||||
### v0.4.3 — Backlinks + Wikilinks (planned)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user