Skip to content

fix: speaker assignment not saving when selected from dropdown#4863

Open
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
devin/1775054053-fix-speaker-assignment
Open

fix: speaker assignment not saving when selected from dropdown#4863
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
devin/1775054053-fix-speaker-assignment

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

Summary

Fixes #4860. Two bugs in the Rust transcript rendering pipeline prevented user-selected speaker assignments from taking effect:

  1. Assignment ordering: Auto-generated channel assignments (derived from the participant list) were appended after user assignments. Since HashMap::insert overwrites, the auto values silently replaced user choices. Fix: auto assignments are now inserted first so user assignments win.

  2. complete_channels gate: apply_identity_rules and assign_complete_channel_human_id both required the channel to be in complete_channels before applying a channel-wide assignment. RemoteParty is only marked complete for exactly-2-participant meetings, so any manual speaker assignment on RemoteParty in 3+ participant meetings was silently dropped. Fix: remove the complete_channels gate from both functions.

Review & Testing Checklist for Human

  • Verify remember_identity asymmetry is safe: remember_identity (speakers.rs ~L159) still gates carry-forward propagation on complete_channels. This is intentionally left to prevent one speaker's identity from overwriting the channel map for multi-speaker channels — but confirm this doesn't cause assignments to "forget" on later segments that rely on carry-forward rather than direct lookup.
  • Regression-test the 2-participant case: The common case (self + 1 remote) should still auto-assign labels correctly without user interaction. The ordering change means auto assignments are now processed first instead of last — verify labels still appear correctly.
  • Manual end-to-end test: Open a transcript with multiple speakers, click a "Speaker N" label, select a person from the dropdown, and verify the label updates and persists across page navigation.

Notes

  • All 62 Rust unit tests pass (60 existing + 2 new covering both bug scenarios).
  • Pre-existing TS typecheck failures in editor/session/index.tsx and editor/chat/index.tsx are unrelated (NodeViewComponentProps type issues from react-prosemirror upgrade).

Link to Devin session: https://app.devin.ai/sessions/9d98abf7a843457cafc59d03a88e83e9
Requested by: @ComputelessComputer

Two issues in the Rust transcript rendering pipeline:

1. Auto-generated channel assignments (from participant list) were appended
   AFTER user assignments, causing HashMap::insert to overwrite user choices
   with auto-generated ones. Fix: reverse ordering so user assignments are
   processed last and take priority.

2. Channel-scoped assignments were gated by complete_channels, which only
   includes RemoteParty for exactly 2-participant meetings. For 3+ participant
   meetings without speaker diarization, user assignments on RemoteParty were
   silently ignored. Fix: remove the complete_channels gate from
   apply_identity_rules and assign_complete_channel_human_id so channel-wide
   assignments are always applied.

Closes #4860

Co-Authored-By: John <john@hyprnote.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 1, 2026

Deploy Preview for hyprnote canceled.

Name Link
🔨 Latest commit 9e8921e
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/69cd2e903387590008fbe480

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 1, 2026

Deploy Preview for char-cli-web canceled.

Name Link
🔨 Latest commit 9e8921e
🔍 Latest deploy log https://app.netlify.com/projects/char-cli-web/deploys/69cd2e9094d2b00008f224e6

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 assignment not saving when selected from dropdown

1 participant