@@ -14,7 +14,7 @@ installer).
1414
1515---
1616
17- ## Shipped so far (v0.2.1 released; DoseWiki migration on ` main ` , unreleased )
17+ ## Shipped so far (v0.3.0 — DoseWiki, encryption, Obsidian & tool-enabled Companion )
1818
1919- ** Journal** — experiences, doses, and a live timeline in a local ** SQLite** DB
2020 (` db.rs ` ), with ** edit/delete** everywhere and ** backdating** (log past
@@ -31,7 +31,23 @@ installer).
3131 CC0 public domain** ), slimmed to ~ 0.9 MB (` data/dosewiki/slim.py ` ) and shipped as a
3232 Tauri resource loaded into the cache on launch — ** no network call at all** . A
3333 courtesy DoseWiki credit is shown in-app. * (Migrated off PsychonautWiki's live
34- CC-BY-SA GraphQL scrape — roadmap item #1 ; on ` main ` , ships in the next tagged build.)*
34+ CC-BY-SA GraphQL scrape — shipped in v0.3.0.)*
35+ - ** Encryption at rest + backup/restore** (` crisis.rs ` aside, in ` db.rs ` /` commands.rs ` ) —
36+ opt-in ** SQLCipher** passphrase encryption (AES-256); the app opens to an ** unlock
37+ screen** when the journal is encrypted. Enable/disable/change-passphrase and
38+ single-file ** VACUUM INTO backups** + restore, all in a ** Data & security** tab.
39+ The startup disclaimer can be dismissed ("don't show again"). * (v0.3.0.)*
40+ - ** Obsidian vault sync** (` obsidian.rs ` ) — ** bidirectional, fully offline** . Export
41+ each experience as a readable Markdown note (frontmatter + doses/timeline) with a
42+ canonical ``` fieldnotes ``` block for lossless round-trips; import reads that block
43+ back (vault wins on conflicts), leaving hand-written notes untouched. * (v0.3.0.)*
44+ - ** Tool-enabled Companion + live session + crisis guardrails** — the Companion can
45+ now ** act** via tools (log doses/notes, session status, dose/interaction lookups)
46+ at the user's request; a calm ** live-session** workspace (elapsed time, running
47+ timeline, one-tap logging, panic button) supports altered states; and a
48+ ** deterministic crisis layer** (` crisis.rs ` ) surfaces graded, localized emergency
49+ resources ** independent of the model** . System prompt follows the Zendo four
50+ principles + Fireside stance with consent-based support-style intake. * (v0.3.0.)*
3551- ** Deterministic safety checker** (` interactions.rs ` ) — flags dangerous combos,
3652 wired to the dose-reference interaction data; DoseWiki's dangerous/unsafe/caution
3753 tiers map onto our danger/caution/note severities (with the reason text), and
@@ -46,9 +62,9 @@ installer).
4662
4763## Roadmap (not yet built)
4864
49- > ✅ ** Item # 1 (DoseWiki migration) is done on ` main ` ** (unreleased — it ships in
50- > the next tagged build) — see "Shipped so far" above. The remaining items are
51- > renumbered below.
65+ > ✅ ** Shipped in v0.3.0: ** DoseWiki migration, encryption-at-rest + backup/restore,
66+ > Obsidian vault sync, and the tool-enabled Companion + live session + crisis
67+ > guardrails — see "Shipped so far" above. The remaining items are below.
5268
53691 . ** Substance knowledge pack — offline RAG corpus.** Beyond the structured dose
5470 data, add a ** retrieval corpus** over openly-licensed full-text sources for
@@ -65,29 +81,12 @@ installer).
6581 the required notices** — but NC forecloses any future commercial-license path for
6682 that pack, so keep it ** separately licensed** , never mixed into the PolyForm code.
6783
68- 2 . ** Local LLM companion with tool access + live-session mode.** Today the
69- Companion only * reads* injected context. Give the model ** tools** to actually
70- drive the journal from chat ("log 100 mg MDMA", "how am I doing?"), plus a
71- calm, altered-state-friendly ** live session UI** (large text, one-tap logging,
72- running timeline, panic → grounding). Fully offline, against a local model
73- (via Cairn / Ollama). ** The support model, session intake, and crisis
74- guardrails are specified in [ Companion design principles] ( #companion-design-principles-peer-support-model )
75- below — that spec is load-bearing, not optional polish.**
76-
77- 3 . ** Obsidian vault integration.** Read/parse journal entries from an Obsidian
78- vault and write ** structured experience summaries** back. Bidirectional, fully
79- offline. (Reuse the filesystem/obsidian-MCP patterns from prior work.)
80-
81- 4 . ** User-added substances → opt-in upstream contribution.** Local CRUD for
84+ 2 . ** User-added substances → opt-in upstream contribution.** Local CRUD for
8285 uncatalogued substances already exists; add a ** consent-gated** export that
8386 generates a draft the user reviews and submits manually to the upstream source
8487 (** DoseWiki** — it's CC0 and open-source). ** Never auto-upload** — this is
8588 sensitive, legally fraught data.
8689
87- 5 . ** Encrypted-at-rest database (passphrase).** Protect this sensitive, local-only
88- data with an encrypted DB (e.g. SQLCipher + passphrase). Pair with
89- ** export / backup & restore** so data survives a lost DB or a machine switch.
90-
9190---
9291
9392## Companion design principles (peer-support model)
@@ -171,11 +170,12 @@ emotional presence.
171170
172171## Suggested next increment
173172
174- DoseWiki migration is ** done** (on ` main ` , unreleased), which clears the licensing story
175- for everything after it. Next, highest value / lowest cost: ** #5 encryption + export**
176- (protect the data), then ** #3 Obsidian** or ** #2 tool-enabled Companion** as the next
177- headline feature. ** #1 (RAG corpus)** stays gated on the licensing decision for any
178- share-alike sources.
173+ The v0.3.0 batch (DoseWiki, encryption + backup, Obsidian sync, tool-enabled
174+ Companion + live session + crisis guardrails) is ** shipped** . Of what remains:
175+ ** #2 (opt-in upstream contribution of user-added substances)** is the smaller,
176+ self-contained next step; ** #1 (RAG corpus)** stays gated on the licensing
177+ decision for any share-alike sources (the DoseWiki CC0 slice is unencumbered, but
178+ a PiHKAL/TiHKAL Part 2 pack must ship separately with its NC/share-alike notices).
179179
180180---
181181
0 commit comments