Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# VoiceFlow — Domain Glossary

The shared language for VoiceFlow. Terms here are the canonical names used in code,
DB schemas, RPC methods, logs, and tests. UI strings may diverge (see "Display label"
where it does).

## Recording

A captured audio file plus its optional transcript and optional AI-generated summary.
The unit of work for the meeting-notes feature.

A Recording is created in one of two ways:
1. **Live capture** — user starts the recorder in the app, audio is streamed to disk from
one or more sources (mic, system-audio loopback), then stopped.
2. **Import** — user picks an existing audio file from disk; it is copied into VoiceFlow's
recordings directory and treated as if it had been live-captured.

A Recording is the entity in the DB (`recordings` table), in RPC methods (`recordings_*`),
in services (`RecordingService`, `RecordingsRepository`), in the audio folder
(`~/.VoiceFlow/recordings/`), and in logs (`domain=recording`).

**Display label**: the UI surfaces this feature as "Meetings" (the dashboard nav item, page
titles, button copy) because the dominant use case is multi-party meeting capture. A
Recording is shown to the user as a "meeting" in the interface, but it is a `recording`
everywhere else. This split is intentional — see `docs/adr/0002-recording-vs-meeting-naming.md`.

Distinct from **History** (one-shot push-to-talk dictations, `history` table) — Recordings
are long-form (minutes to hours), have a structured lifecycle (recording → transcribing →
summarizing), and live in their own table.
Loading