Feat v0.4.3 backlinks wikilinks
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 21s
CI/CD / test-frontend (pull_request) Successful in 22s
CI/CD / test-go-pg (pull_request) Successful in 2m34s
CI/CD / test-sqlite (pull_request) Successful in 3m3s
CI/CD / build-and-deploy (pull_request) Successful in 1m21s

Obsidian-style [[wikilinks]] for the notes surface. New ext_notes_links
table (source_id, target_id, link_text) with bidirectional indexes.

Backend: _extract_wikilinks() parses [[...]] via split (no regex in
Starlark). _sync_links() on create/update resolves titles to note IDs.
Cascade delete cleans both directions. GET /links/:id and
GET /backlinks/:id endpoints.

Frontend: wikilinks render as clickable links in preview — blue for
resolved, red for unresolved. Clicking resolved navigates; clicking
unresolved creates the note and re-saves source to resolve the link.
BacklinksPanel shows incoming links below editor with click navigation.

Notes package 0.3.0 → 0.4.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 16:37:07 +00:00
parent 32beb3cee4
commit b92b713715
7 changed files with 391 additions and 16 deletions

View File

@@ -6,7 +6,7 @@
"route": "/s/notes",
"auth": "authenticated",
"layout": "single",
"version": "0.3.0",
"version": "0.4.0",
"icon": "📝",
"description": "Markdown notes surface with folders, tags, and backlinks.",
"author": "switchboard",
@@ -28,7 +28,9 @@
{"method": "POST", "path": "/notes/move"},
{"method": "GET", "path": "/tags"},
{"method": "GET", "path": "/tags/*"},
{"method": "PUT", "path": "/tags/*"}
{"method": "PUT", "path": "/tags/*"},
{"method": "GET", "path": "/links/*"},
{"method": "GET", "path": "/backlinks/*"}
],
"db_tables": {
@@ -59,6 +61,17 @@
["tag"]
]
},
"links": {
"columns": {
"source_id": "text",
"target_id": "text",
"link_text": "text"
},
"indexes": [
["source_id"],
["target_id"]
]
},
"folders": {
"columns": {
"name": "text",