Skip to content

Enable transcript speaker reassignment#5632

Merged
ComputelessComputer merged 1 commit into
mainfrom
fix/transcript-speaker-assignment
Jun 20, 2026
Merged

Enable transcript speaker reassignment#5632
ComputelessComputer merged 1 commit into
mainfrom
fix/transcript-speaker-assignment

Conversation

@ComputelessComputer

@ComputelessComputer ComputelessComputer commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

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_assignment hints with scope: "segment" and word_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::Words for 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.

@netlify

netlify Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deploy Preview for old-char canceled.

Name Link
🔨 Latest commit e24f73f
🔍 Latest deploy log https://app.netlify.com/projects/old-char/deploys/6a363bbd1eadf50008c5f829

Comment thread apps/desktop/src/stt/utils.ts
@ComputelessComputer ComputelessComputer force-pushed the fix/transcript-speaker-assignment branch 2 times, most recently from a45e2ce to f22db4d Compare June 20, 2026 01:45
Comment thread apps/desktop/src/stt/utils.ts Outdated
Comment thread apps/desktop/src/stt/utils.ts Outdated
@ComputelessComputer ComputelessComputer force-pushed the fix/transcript-speaker-assignment branch from f22db4d to 8b23764 Compare June 20, 2026 03:49

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ 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.

Comment thread apps/desktop/src/stt/utils.ts
Add clickable speaker labels with all-matching and segment-only assignment modes.
@ComputelessComputer ComputelessComputer force-pushed the fix/transcript-speaker-assignment branch from 8b23764 to e24f73f Compare June 20, 2026 07:05
@ComputelessComputer ComputelessComputer merged commit 6ec1c1b into main Jun 20, 2026
15 checks passed
@ComputelessComputer ComputelessComputer deleted the fix/transcript-speaker-assignment branch June 20, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant