feat(store): SQLite schema, migrations and Danish-aware full-text search

Initial data model for verdande: users, sessions, invites, projects,
sections, tasks, labels, reminders, comments, attachments, activity
and filters, plus personal API tokens.

Search indexes a generated `fold` column alongside the original text.
FTS5's remove_diacritics does not touch ø and æ — Unicode treats them
as letters rather than accented forms — so without it a Danish user
cannot find "grøn" by typing "gron". MatchExpr quotes every term so
free text containing FTS5 operators cannot reach the query planner as
syntax.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kristian Wind
2026-08-16 22:49:18 +02:00
co-authored by Claude Opus 5
commit 40e2cad346
8 changed files with 1130 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# Build output
/verdande
/dist/
*.exe
# The data volume: database, uploaded files, backups. Never in git.
/data/
*.db
*.db-wal
*.db-shm
# Frontend
node_modules/
/web/.svelte-kit/
/web/build/
# Local environment
.env
.env.local
# Editor / OS
.DS_Store
*.swp
.idea/
.vscode/