Implement SessionTag-based subject time-range tracking in recording UI #14

Closed
opened 2026-05-23 01:19:43 +00:00 by Mark · 0 comments
Owner

Parent Issue

#6 — No speaker/subject assignment during live recording
#11 — Implementation plan

Description

Analogous to speaker time-range tracking but for subjects. The SessionTag entity (tagType=TYPE_SUBJECT) already exists but is unused during recording. Time-range subject tracking allows:

  • Marking topic transitions during recording (e.g., "now discussing Budget")
  • Post-recording topic review with time-bounded segments
  • Supporting future auto-detection that writes SessionTag entries

Scope

  • When the user selects a subject chip during recording:
    1. Close any previous TYPE_SUBJECT SessionTag (set endOffsetMs)
    2. Insert a new SessionTag(tagType=TYPE_SUBJECT, referenceId=subject.id, startOffsetMs=elapsedMs)
  • When recording stops, close any open TYPE_SUBJECT tags
  • Add "Add Topic" chip/button at the end of the subject chip row that opens the subject creation dialog inline (currently users must go to Manage tab)
  • Expose activeSubjectTags: StateFlow<List<SessionTag>> for UI consumption

Acceptance Criteria

  • Selecting a subject during recording creates a SessionTag with TYPE_SUBJECT
  • Deselecting a subject closes the open SessionTag
  • Switching subjects closes the previous tag and opens a new one
  • Stopping recording closes all open TYPE_SUBJECT SessionTags
  • "Add Topic" button in the chip row lets users create new subjects without leaving the recording screen
  • Existing segment-level subject assignment (TranscriptSegment.subjectId) continues to work

Dependencies

  • None (data model already exists)
## Parent Issue #6 — No speaker/subject assignment during live recording #11 — Implementation plan ## Description Analogous to speaker time-range tracking but for subjects. The `SessionTag` entity (tagType=TYPE_SUBJECT) already exists but is unused during recording. Time-range subject tracking allows: - Marking topic transitions during recording (e.g., "now discussing Budget") - Post-recording topic review with time-bounded segments - Supporting future auto-detection that writes SessionTag entries ## Scope - When the user selects a subject chip during recording: 1. Close any previous TYPE_SUBJECT SessionTag (set `endOffsetMs`) 2. Insert a new `SessionTag(tagType=TYPE_SUBJECT, referenceId=subject.id, startOffsetMs=elapsedMs)` - When recording stops, close any open TYPE_SUBJECT tags - Add "Add Topic" chip/button at the end of the subject chip row that opens the subject creation dialog inline (currently users must go to Manage tab) - Expose `activeSubjectTags: StateFlow<List<SessionTag>>` for UI consumption ## Acceptance Criteria - [ ] Selecting a subject during recording creates a SessionTag with TYPE_SUBJECT - [ ] Deselecting a subject closes the open SessionTag - [ ] Switching subjects closes the previous tag and opens a new one - [ ] Stopping recording closes all open TYPE_SUBJECT SessionTags - [ ] "Add Topic" button in the chip row lets users create new subjects without leaving the recording screen - [ ] Existing segment-level subject assignment (TranscriptSegment.subjectId) continues to work ## Dependencies - None (data model already exists)
Mark 2026-05-24 23:04:17 +00:00
Sign in to join this conversation.
No description provided.