Commit Graph
66 Commits
Author SHA1 Message Date
iamdoubz 69ed6256db feat(transcription): dispatch NPU backend + NPU package download command (T3.4) 2026-07-02 17:16:43 -05:00
iamdoubz 8a28854250 feat(reminders): schedule/cancel from confirm_action_items (T8.6, FR-CAL-5) 2026-07-02 11:59:15 -05:00
iamdoubz 5a5afa51e4 feat(export): add bulk_export_meetings (T8.5, FR-STORE-4)
Extracts export_meeting_to as a shared helper (was duplicated inline
in export_meeting) so single and bulk export share identical
fetch+render logic. bulk_export_stem sanitizes+suffixes filenames with
an id prefix — meeting titles are very often duplicates ("Untitled
meeting") and would otherwise silently overwrite each other in a
batch. A meeting that fails to export is skipped rather than aborting
the whole run; also fixes export_meeting's doc comment, stale since
T8.4 added pdf/docx.
2026-07-02 11:35:24 -05:00
iamdoubz 2f56891d40 feat(templates): apply templates at all 4 notes-render call sites (T8.1, FR-NOTE-5)
Adds StartRecordingArgs.template_id + list_note_templates command;
renames built_in_template to summary_prompt_bias to disambiguate it
from the new NoteTemplate concept (same meeting-type identifiers,
different purpose). Also fixes refresh_notes_and_notify (the
rename/merge-speaker refresh path) to route through
Store::update_notes instead of a raw std::fs::write — it was bypassing
T8.2's FTS reindexing, a gap missed there because this call site uses
meeting_dir(meeting_id) without the & that my earlier grep matched on.
2026-07-02 11:25:48 -05:00
iamdoubz 06bdf6d469 feat(export): wire pdf/docx formats into export_meeting (T8.4, FR-NOTE-4) 2026-07-02 11:02:52 -05:00
iamdoubz d1ca2f63dd feat(tags): add set_tags/list_tags commands; extend list_meetings (T8.3, FR-SEARCH-2) 2026-07-02 10:38:31 -05:00
iamdoubz d928dfd51d feat(search): add search command; route notes.md writes through the store (T8.2, FR-SEARCH-1)
The initial notes.md render after finalize/resume/recovery bypassed
the Store abstraction entirely (raw std::fs::write) — routing it
through update_notes means that first render also gets FTS-indexed and
bumps updated_at, instead of only later manual edits doing either.
2026-07-02 10:07:29 -05:00
iamdoubz fc9c1d9fc2 feat(audio): forward capture-event sink to recording://level/device (T7.3)
start_recording now creates the EventSink alongside the existing frame
channel and forwards Level/DeviceChanged onto a small fire-and-forget
thread that emits "recording://level" and "recording://device".
2026-07-01 21:09:34 -05:00
iamdoubz 70c8c61af5 feat(privacy): implement privacy_self_check command (T7.6, FR-SEC-2)
Reports LLM endpoint/local-only status and enabled sync targets so the
UI can prove local-only handling, per the shape fixed in
docs/04-api-contracts.md. Sync targets stay empty until Phase 9 lands
SyncManager; list_sync_targets' not_implemented error is swallowed
rather than failing the whole self-check.
2026-07-01 17:01:40 -05:00
iamdoubz 6229b58645 Add calendar commands; replace todo!() stubs with typed errors to avoid panics 2026-07-01 15:07:25 -05:00
iamdoubz 27373effb7 Phase 5 2026-07-01 10:54:03 -05:00
iamdoubz 5757cd7345 Phase 4 2026-07-01 07:53:23 -05:00
iamdoubz ba48f0afc2 Phase 3 2026-06-30 23:53:33 -05:00
iamdoubz f9b172aff4 Phase 2 2026-06-30 23:18:29 -05:00
iamdoubz 02834e9cd2 Phase 1 2026-06-30 22:17:30 -05:00
iamdoubz aae22a0e23 Add all scaffolding, design, and decision documentation AKA first commit 2026-06-30 16:12:55 -05:00