Granola meeting transcript importer via muesli
SyncableBackend registered as 'granola' in the sync registry. Reads local
markdown files from ~/.local/share/muesli/transcripts/ — no network calls.
- Three-state setup detection (not installed / installed but no transcripts / ready)
- Incremental sync via doc_id + remote_updated_at tracking in granola.json
- YAML frontmatter parsing for metadata (title, participants, duration, summary)
- Speaker-labeled transcript parsing (**Name (HH:MM:SS):** text)
- 5-min windowed segments via shared _window_messages()
- Entity seeding from enriched ## Participants section (name, email, title, company)
- Source markdown preserved as source.md in first segment
- CLI: sol import --sync granola [--save|--force|--path]
- 25 tests covering parsing, sync state, detection, incremental, CLI integration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>