Decompose #7 — semantic notebook features into 4 phases #9
Labels
No labels
blocked:children
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
deferred
enhancement
feature-request
in-progress
needs-decompose
needs-triage
quickfix
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/transcriber#9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Break down transcriber#7 (No semantic notebook features) into independently implementable phases.
Decomposition
The app pitch is "semantic notebook for conversations" but search is SQL LIKE, there's no summarization, no topic extraction, no notes. This is most of the product vision. Split into phases:
Phase 1 — Full-Text Search (FTS)
Replace
WHERE text LIKE '%query%'with SQLite FTS5:transcript_segments_fts) with the existingRoomschemaSegmentDao.searchSegments()to query FTS5 (ranked results, snippet highlighting)Deliverable: Search works with relevance ranking, sub-second on 10K+ segments.
Phase 2 — Post-Recording Summarization
After a recording session ends, auto-generate a summary:
SessionSummaryentity to Room (sessionId, summaryText, keyPoints: List, sentiment: String, createdAt)SummarizationProviderinterface (same pattern asTranscriptionProvider)CloudSummarizationProvider— calls OpenAI (or configured LLM) via existing API key from BackendConfigLocalSummarizationProvider— optional, for offline (small model via TFLite or just extract longest sentences as fallback)Phase 3 — Auto Topic Extraction
After summarization, extract/recommend topics:
TopicExtractionProviderinterface (Cloud + Local variants)Phase 4 — Per-Segment Notes & Annotations
Allow adding text notes to individual transcript segments:
SegmentNoteentity (noteId, segmentId, text, createdAt, updatedAt)Dependency Graph
Phase 1 can ship alone and immediately improves search. Phase 4 is independent and can be done in parallel with Phases 2-3. Each phase adds meaningful user-facing value on its own.
Fixed in commit. Closing.