SQLite-backed durable state for vibesurfer.
The store owns one SQLite database file at ~/.vibesurfer/state.db
(or in-memory for tests). It is the source of truth for every
piece of cross-restart state: sessions, pages, refs, marks,
annotations, the audit log, encrypted auth blobs, and the skill
cache. The daemon's in-memory caches are derivative — on restart
they are rebuilt from this crate.
Layout
- [
Store] — the main handle. CRUD methods for every table. - [
types] — owned domain types mirroring the SQL schema. - [
auth] — AES-256-GCM helpers and master-key resolution (OS keyring →~/.vibesurfer/key). - [
error::StoreError] — every fallible function returns this. - [
migrate] — the migration runner; called automatically by [Store::open].