This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/packages/notes/manifest.json
Jeffrey Smith 70404ff070 Feat v0.4.1 folders navigation tree (#23)
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>
2026-03-29 11:38:54 +00:00

72 lines
1.7 KiB
JSON

{
"id": "notes",
"title": "Notes",
"type": "full",
"tier": "starlark",
"route": "/s/notes",
"auth": "authenticated",
"layout": "single",
"version": "0.2.0",
"icon": "📝",
"description": "Markdown notes surface with folders, tags, and backlinks.",
"author": "switchboard",
"permissions": ["db.write"],
"api_routes": [
{"method": "GET", "path": "/notes"},
{"method": "POST", "path": "/notes"},
{"method": "GET", "path": "/notes/*"},
{"method": "PUT", "path": "/notes/*"},
{"method": "DELETE", "path": "/notes/*"},
{"method": "GET", "path": "/search"},
{"method": "GET", "path": "/stats"},
{"method": "GET", "path": "/folders"},
{"method": "POST", "path": "/folders"},
{"method": "PUT", "path": "/folders/*"},
{"method": "DELETE", "path": "/folders/*"},
{"method": "POST", "path": "/notes/move"}
],
"db_tables": {
"notes": {
"columns": {
"title": "text",
"body": "text",
"folder_id": "text",
"creator_id": "text",
"updated_at": "text",
"pinned": "int",
"archived": "int"
},
"indexes": [
["folder_id"],
["creator_id"],
["pinned"],
["updated_at"]
]
},
"folders": {
"columns": {
"name": "text",
"parent_id": "text",
"creator_id": "text",
"sort_order": "int"
},
"indexes": [
["parent_id"],
["creator_id"]
]
}
},
"settings": {
"default_view": {
"type": "string",
"label": "Default View",
"description": "Default note list view: recent or pinned",
"default": "recent"
}
}
}