TT 7496 BOLD transcription#398
Merged
Merged
Conversation
… support - Added new LWC Transcription step with automatic transcription capabilities and user interface improvements. - Introduced localization strings for Careful Speech and LWC Transcription in XLIFF and XLF formats. - Refactored PassageDetail components to integrate LWC Transcription, including new tests for functionality. - Enhanced boldDesktopStepComplete logic to accommodate new transcription features. - Cleaned up imports and improved readability across related components.
- Added '@testing-library/jest-dom' import to improve testing capabilities. - Updated mock implementations to include settings and artifact type handling for better test coverage and clarity.
Contributor
There was a problem hiding this comment.
Pull request overview
Implements the new BOLD “clause-by-clause” transcription experience (post–LWC Translation) with mobile-first UI that matches desktop behavior, including shared clause navigation/player components, transcription autosave, and ASR language resolution based on upstream workflow step settings.
Changes:
- Add a new BOLD Transcribe-path for clause-based LWC/Careful transcription, wired into PassageDetail (mobile + desktop) and step-complete header gating.
- Introduce reusable clause UI building blocks (audio player + navigation) and a minimal transcription editor with debounced autosave to
mediafile.attributes.transcription. - Add ASR settings resolution helpers/tests and new localization keys for the transcription flows.
Reviewed changes
Copilot reviewed 39 out of 41 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/renderer/src/store/localization/reducers.tsx | Adds carefulTranscription and lwcTranscription string bundles and hydrates them in reducer. |
| src/renderer/src/store/localization/model.tsx | Adds typed interfaces for new localization layouts. |
| src/renderer/src/store/localization/exported-strings-name.json | Updates exported localization bundle pointer. |
| src/renderer/src/selector/selectors.tsx | Adds selectors for the new transcription localization layouts. |
| src/renderer/src/routes/PassageDetail.tsx | Routes mobile BOLD Transcribe steps to the new clause transcription UI based on artifact type. |
| src/renderer/src/crud/saveMediaTranscription.ts | Adds CRUD helper to persist transcription onto a mediafile record. |
| src/renderer/src/crud/saveMediaTranscription.test.ts | Unit test for saveMediaTranscription. |
| src/renderer/src/crud/getLwcTranslationAsrSettings.ts | Adds logic to derive ASR state/language from upstream workflow steps (and for bold clause transcription). |
| src/renderer/src/crud/getLwcTranslationAsrSettings.test.ts | Unit tests covering upstream step selection and ASR state resolution. |
| src/renderer/src/control/ConfButton.tsx | Adds showSettings to optionally hide the gear segment. |
| src/renderer/src/components/Transcriber.tsx | Improves ASR progress dialog responsiveness on mobile. |
| src/renderer/src/components/PassageDetail/PassageDetailStepComplete.tsx | Extends BOLD step-complete header gating to include clause transcription steps. |
| src/renderer/src/components/PassageDetail/PassageDetailStepComplete.test.tsx | Updates mocks to support new useStepTool/artifact resolution usage. |
| src/renderer/src/components/PassageDetail/PassageDetailLwcTranscription.tsx | Implements the new clause-by-clause transcription container (player + nav + editor + completion sync). |
| src/renderer/src/components/PassageDetail/PassageDetailLwcTranscription.test.tsx | Tests prerequisite gating, auto-play behavior, and completion syncing. |
| src/renderer/src/components/PassageDetail/PassageDetailGrids.tsx | Wires the new clause transcription UI into desktop grids and step-complete header placement rules. |
| src/renderer/src/components/PassageDetail/lwcTranslation/LwcTranslationReferencePlayer.tsx | Replaces bespoke audio-loading logic with shared ClauseAudioPlayer. |
| src/renderer/src/components/PassageDetail/lwcTranslation/LwcTranslationClauseNav.tsx | Replaces bespoke clause nav UI with shared BoldClauseNav. |
| src/renderer/src/components/PassageDetail/lwcTranslation/LwcTranslationClauseNav.test.tsx | Updates test to match shared nav DOM/data-cy output. |
| src/renderer/src/components/PassageDetail/lwcTranscription/useTranscriptionAutosave.ts | Adds debounced autosave hook with “flush before navigation” support and programmatic-load guard. |
| src/renderer/src/components/PassageDetail/lwcTranscription/useTranscriptionAutosave.test.ts | Tests autosave guard and “user cleared text” save behavior. |
| src/renderer/src/components/PassageDetail/lwcTranscription/LwcTranscriptionEditor.tsx | Re-export entrypoint to the clause transcription editor. |
| src/renderer/src/components/PassageDetail/lwcTranscription/LwcTranscriptionEditor.test.tsx | Tests ASR button enable/disable and settings-gear visibility logic. |
| src/renderer/src/components/PassageDetail/lwcTranscription/lwcTranscriptionCompletion.ts | Adds completion helpers based on non-empty mediafile.attributes.transcription. |
| src/renderer/src/components/PassageDetail/lwcTranscription/lwcTranscriptionCompletion.test.ts | Tests clause-transcribed detection and index computation. |
| src/renderer/src/components/PassageDetail/lwcTranscription/BoldClauseTranscriptionEditor.tsx | Implements minimal transcription editor w/ ASR launch, mobile-friendly dialogs, and autosave wiring. |
| src/renderer/src/components/PassageDetail/carefulSpeech/carefulSpeechCompletion.ts | Updates recording lookup to prefer exact source version when multiple matches exist. |
| src/renderer/src/components/PassageDetail/carefulSpeech/carefulSpeechCompletion.test.ts | Adds test asserting “prefer current source version” selection behavior. |
| src/renderer/src/components/PassageDetail/boldLwcTranscription.ts | Barrel re-export for clause transcription utilities/config types. |
| src/renderer/src/components/PassageDetail/boldDesktopStepComplete.ts | Extends “show desktop step complete” logic to include clause transcription steps. |
| src/renderer/src/components/PassageDetail/boldDesktopStepComplete.test.ts | Tests updated desktop step-complete gating for BOLD transcription variants. |
| src/renderer/src/components/PassageDetail/boldClauseTranscription.ts | Defines which artifact slugs constitute a BOLD clause transcription step and provides config. |
| src/renderer/src/components/PassageDetail/boldClauseTranscription.test.ts | Tests clause transcription step detection and config mapping. |
| src/renderer/src/components/PassageDetail/boldClause/ClauseAudioPlayer.tsx | New shared audio player component with media URL fetch + auto-play support. |
| src/renderer/src/components/PassageDetail/boldClause/BoldClauseNav.tsx | New shared clause navigation component (chevrons + progress ring). |
| src/renderer/src/business/asr/AsrProgress.tsx | Improves dialog layout/wrapping (especially on small screens) and messaging condition. |
| localization/TranscriberAdmin-en.xlf | Adds XLF units for new transcription strings. |
| localization/TranscriberAdmin-en-1.2.xliff | Adds XLIFF units/contexts for new transcription strings. |
| CONTEXT.md | Updates terminology/ADR context to include LWC Transcription concepts and UX rules. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
sarahentzel
approved these changes
Jul 8, 2026
| @@ -0,0 +1 @@ | |||
| export { default } from './BoldClauseTranscriptionEditor'; | |||
Collaborator
There was a problem hiding this comment.
what is this one line file?
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.
Replace the legacy phrase-back-translate grid for BOLD LWC Translation with a mobile-first, desktop-parity clause-by-clause flow: top player plays one Careful Speech recording; bottom recorder captures an LWC translation recording (PBT artifact). Non-BOLD and BOLD Careful Speech (phraseBackTranslate + carefulspeech / CarefulSpeech region) stay on existing paths.
Out of scope (this ADR)