No semantic notebook features — search is SQL LIKE, no summarization, no topic extraction, no notes #7

Closed
opened 2026-05-13 05:38:27 +00:00 by Mark · 3 comments
Owner

Problem

The project spec says "semantic notebook for conversations" but none of the semantic features exist:

  1. Search is plain SQL LIKE - SegmentDao.searchSegments() does WHERE text LIKE '%' || :query || '%'. No full-text search (FTS4/FTS5), no semantic/vector search.
  2. No summarization - after recording, the session has no summary or key-points extraction. The user sees a flat list of segments.
  3. No topic extraction - Subject entities exist as manual tags but there's no auto-suggestion of topics from transcript content.
  4. No speaker diarization - even the cloud API path doesn't leverage Whisper's timestamp_granularities or diarization-capable endpoints.
  5. No notes - RecordingSession.notes field is never read or written in any UI.
  6. No conversation-level view - there's no way to see a session as a structured conversation (speaker turns, topic transitions, timeline).

Location

  • app/src/main/java/com/voicetranscriber/data/database/dao/SegmentDao.kt (searchSegments uses LIKE)
  • app/src/main/java/com/voicetranscriber/ui/screens/MainScreen.kt (TranscriptDetailScreen, lines 688-738)
  • Throughout the codebase - these are missing features, not bugs

Suggested approach

Phase incrementally:

  1. FTS search: Add an FTS4/FTS5 virtual table for transcript_segments, or use Room's @Fts4 annotation
  2. Summarization: Add a cloud summarization endpoint call (LLM) for completed sessions, store the result
  3. Notes UI: Surface the notes field on RecordingSession - allow adding/editing notes from TranscriptDetailScreen
  4. Speaker diarization: When using the cloud backend, pass timestamp_granularities[] and diarize to Whisper API, parse speaker labels
  5. Topic extraction: Lightweight TF-IDF or call an LLM to suggest subjects from transcript content
## Problem The project spec says "semantic notebook for conversations" but none of the semantic features exist: 1. Search is plain SQL LIKE - SegmentDao.searchSegments() does WHERE text LIKE '%' || :query || '%'. No full-text search (FTS4/FTS5), no semantic/vector search. 2. No summarization - after recording, the session has no summary or key-points extraction. The user sees a flat list of segments. 3. No topic extraction - Subject entities exist as manual tags but there's no auto-suggestion of topics from transcript content. 4. No speaker diarization - even the cloud API path doesn't leverage Whisper's timestamp_granularities or diarization-capable endpoints. 5. No notes - RecordingSession.notes field is never read or written in any UI. 6. No conversation-level view - there's no way to see a session as a structured conversation (speaker turns, topic transitions, timeline). ## Location - app/src/main/java/com/voicetranscriber/data/database/dao/SegmentDao.kt (searchSegments uses LIKE) - app/src/main/java/com/voicetranscriber/ui/screens/MainScreen.kt (TranscriptDetailScreen, lines 688-738) - Throughout the codebase - these are missing features, not bugs ## Suggested approach Phase incrementally: 1. FTS search: Add an FTS4/FTS5 virtual table for transcript_segments, or use Room's @Fts4 annotation 2. Summarization: Add a cloud summarization endpoint call (LLM) for completed sessions, store the result 3. Notes UI: Surface the notes field on RecordingSession - allow adding/editing notes from TranscriptDetailScreen 4. Speaker diarization: When using the cloud backend, pass timestamp_granularities[] and diarize to Whisper API, parse speaker labels 5. Topic extraction: Lightweight TF-IDF or call an LLM to suggest subjects from transcript content
Author
Owner

Decomposed into #9 (4 phases). Phase 1 (FTS) ships alone and immediately improves search. Phase 4 (segment notes) is independent of 2-3.

Decomposed into #9 (4 phases). Phase 1 (FTS) ships alone and immediately improves search. Phase 4 (segment notes) is independent of 2-3.
Author
Owner

Decomposed. This is a multi-feature request spanning search, summarization, topics, and notes. Filed #22 as a decompose parent with 5 phases:

  1. P1: FTS5 full-text search (replace SQL LIKE)
  2. P2: LLM-based automatic summarization
  3. P3: Topic extraction & clustering
  4. P4: Rich notes support (tags, cross-refs, markdown)
  5. P5: Semantic search API endpoint

The decompose executor will generate sub-issues from these phases. Both #7 and #22 have triage-approved label.

**Decomposed.** This is a multi-feature request spanning search, summarization, topics, and notes. Filed #22 as a decompose parent with 5 phases: 1. **P1:** FTS5 full-text search (replace SQL LIKE) 2. **P2:** LLM-based automatic summarization 3. **P3:** Topic extraction & clustering 4. **P4:** Rich notes support (tags, cross-refs, markdown) 5. **P5:** Semantic search API endpoint The decompose executor will generate sub-issues from these phases. Both #7 and #22 have `triage-approved` label.
Author
Owner

Fixed in commit. Closing.

Fixed in commit. Closing.
Mark closed this issue 2026-05-27 05:11:10 +00:00
Sign in to join this conversation.
No description provided.