Skip to content

Fix transcript speaker assignment#5447

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

Fix transcript speaker assignment#5447
ComputelessComputer merged 1 commit into
mainfrom
fix/transcript-speaker-assignment

Conversation

@ComputelessComputer
Copy link
Copy Markdown
Collaborator

@ComputelessComputer ComputelessComputer commented Jun 2, 2026

Summary

  • Replace the dead no-participant transcript speaker panel with a searchable picker for session participants, existing contacts, and newly created contacts.
  • Link selected contacts to the session before saving the speaker assignment.
  • Render saved user assignments after provider speaker hints so assignment scope is stable regardless of hint storage order.
  • Avoid invalid button-in-paragraph markup in transcript segment headers.

Tests

  • pnpm exec dprint fmt
  • pnpm -F @hypr/desktop exec vitest run src/stt/render-transcript.test.ts src/stt/utils.test.ts src/session/components/note-input/transcript/renderer/speaker-assign.test.ts
  • pnpm -F @hypr/desktop typecheck

Fixes #4860
Fixes #4960


Note

Medium Risk
Changes local-store writes for humans/session participants and transcript hint normalization, which affects how speakers render but stays within desktop STT UI—not auth or billing.

Overview
Transcript speaker assignment is reworked so the segment header popover is a searchable picker instead of a session-participants-only list that could show nothing useful.

Users can pick session participants or contacts, filter by name/email, and add a new contact from the search string. Selecting someone links them to the session (mapping_session_participant, manual) when needed, then saves the speaker assignment. Assignments anchor on the first word in the segment that has an id, not blindly words[0].

Rendering applies provider_speaker_index hints on words before building user assignment scopes, so assignment channel/speaker scope stays correct even when hints are stored in the wrong order.

Segment headers use a div instead of p so the assign control is not a button inside a paragraph.

Unit tests cover grouping, create-option deduping, anchor word id, and hint ordering.

Reviewed by Cursor Bugbot for commit 84c4567. Bugbot is set up for automated code reviews on this repo. Configure here.

Let transcript speakers be assigned from session participants, contacts, or new contacts, and render saved assignments with order-independent speaker hints.
@netlify
Copy link
Copy Markdown

netlify Bot commented Jun 2, 2026

Deploy Preview for old-char canceled.

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

@ComputelessComputer ComputelessComputer merged commit 31180c2 into main Jun 2, 2026
10 checks passed
@ComputelessComputer ComputelessComputer deleted the fix/transcript-speaker-assignment branch June 2, 2026 11:25
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.

Speaker "No Participant" button not clickable in transcript editor Speaker assignment not saving when selected from dropdown

1 participant