Live notes (Granola-style redesign):
- update_live_notes/set_segment_note: live-session-only, mutate
RecordingSession.manual_notes and write-through to manual_notes.json.
- stop_recording, reprocess_transcript, and resume_transcription now call
MarkdownNotes::merge (loading manual_notes.json from disk for the
latter two, which have no live RecordingSession) instead of the old
transcript-only to_markdown, so re-transcription/crash-recovery never
silently drops what the user typed.
- refresh_notes_and_notify no longer re-renders/overwrites notes.md on a
post-finalize speaker rename/merge -- that used to clobber manual
edits; it still updates the speakers table and emits the live-refresh
event.
Calendar range/cleanup (14,686-row bloat fix):
- import_pst_core/import_pst take an optional range_days, converted to a
from timestamp for PstSource.
- New cleanup_calendar_events command wrapping the new store method.