Enable transcript speaker reassignment#5632
Merged
Merged
Conversation
✅ Deploy Preview for old-char canceled.
|
a45e2ce to
f22db4d
Compare
f22db4d to
8b23764
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8b23764. Configure here.
Add clickable speaker labels with all-matching and segment-only assignment modes.
8b23764 to
e24f73f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Add clickable speaker labels with all-matching and segment-only assignment modes.
Note
Medium Risk
Changes speaker identity persistence, live reconciliation, and Rust segment rendering together; incorrect scope or conflict logic could mislabel speakers, though coverage is extensive in unit tests.
Overview
Adds segment-only speaker reassignment alongside the existing all matching (channel/speaker) flow, so users can correct a single transcript segment without relabeling every word from that diarization cluster.
The SpeakerAssignPopover now exposes an All matching / This segment toggle (defaulting back to All matching when the popover closes) and passes the selected mode plus the segment’s persisted word ids into
upsertSpeakerAssignment. The previous DirectMic read-only label path is removed so self-channel labels use the same assign UI.Persistence and live STT store segment overrides as
user_speaker_assignmenthints withscope: "segment"andword_ids, with updated conflict rules between full-speaker and word-scoped hints. The transcript accumulator reconciles those hints when words are replaced or when more speech continues the same speaker segment.Rendering maps segment hints to
IdentityScope::Wordsfor Rust segment building, which now applies word-level human overrides so only selected words split into different speaker segments while the rest keep the channel/speaker assignment.Reviewed by Cursor Bugbot for commit e24f73f. Bugbot is set up for automated code reviews on this repo. Configure here.