Storage
Notewright stores everything in Cloudflare D1. There is no Neon, no external Postgres, and no other datastore to operate.
D1: meetings and transcripts
Section titled “D1: meetings and transcripts”The synced meetings and their transcripts live in a D1 database bound as DB in
wrangler.jsonc:
"d1_databases": [ { "binding": "DB", "database_name": "notewright-db", "database_id": "" }]You create the database and apply migrations during Deploy:
bunx wrangler d1 create my-notes-db # copy database_id into wrangler.jsoncbunx wrangler d1 migrations apply my-notes-db --remoteThe notes source writes meetings and transcripts into D1 during sync. The
follow-up pipeline and the notewright meetings commands read from it.
Durable Object state
Section titled “Durable Object state”Each agent (the follow-up agent, the speaker-context agent, and the notes sync agent) keeps its own state in its Durable Object’s SQLite storage, separate from the D1 database:
- Follow-up agent: processed-run markers, task mappings, and failure rows.
- Speaker-context agent: cached speaker resolutions keyed by transcript version.
- Sync agent: last sync status and timing.
DO storage is provisioned by the DO migrations in wrangler.jsonc (v2, v3,
and the provider’s granola-v1). notewright doctor checks that the migration
files present locally match what the configuration declares and what the remote
database has applied. See doctor preflight.