Commit Graph
4 Commits
Author SHA1 Message Date
didier 98aa7dd68c feat: added fts5 backend 2026-06-05 15:51:41 -04:00
didier 55081bc5aa Remove conflicting migrations, keep schema in 000001
000001 was modified to include public_id, version, delete_timestamp
but 000002/000003 tried to ALTER TABLE to add the same columns,
causing duplicate column errors on existing databases where
migrations had run partially.

Fix: only 000001 with the full schema. No 000002/000003.
2026-06-04 08:44:58 -04:00
didier e700a81c25 Add versioning, update tool, and soft-delete
Schema: public_id + version columns with UNIQUE constraint,
delete_timestamp for soft-delete.

Tools: store_flashcard accepts optional public_id, update_flashcard
creates a new version preserving history, delete_flashcard inserts
a tombstone row and removes the Qdrant point.

Qdrant: point ID is public_id (only latest version indexed).
2026-06-03 20:15:18 -04:00
didier 39c6185b70 feat: sqlite persistence with goose migrations, flashcard schema, zap logger
- Add SQLite as authoritative store alongside Qdrant (best-effort indexing)
- Use goose for embedded SQL migrations
- Schema matches flashcard format: id(INTEGER PK), note, repos, host, tags, user, context, created
- Replace std log with zap structured logger
- Split registerTools into registerStoreKnowledge + registerSearchKnowledge
- Qdrant index uses SQLite rowid directly as point ID (no SHA256 hash)
- Search enriches Qdrant results from SQLite by ID
- Lowercase auth header before prefix check
- Always handle json.MarshalIndent errors
- NixOS: StateDirectory, sqlitePath to /var/lib/st-pierre/st-pierre.sqlite
2026-06-02 10:01:28 -04:00