Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
27a43eb
feat(headphones): remove "don't show again" from the headphone notice
alpha5611331 Aug 31, 2026
e70be98
refactor(audio): export AudioWsStream and lift resolveMicDeviceId
alpha5611331 Aug 31, 2026
72b8dbd
feat(mock-interview): add the state machine, API client, and IPC surface
alpha5611331 Aug 31, 2026
72af1e7
feat(mock-interview): wire guards - close prompt, mutual exclusion, a…
alpha5611331 Aug 31, 2026
c8085bd
feat(mock-interview): add mic-only capture, the transmit gate, and pl…
alpha5611331 Aug 31, 2026
27db8ba
feat(mock-interview): add setup/session/report screens and routing
alpha5611331 Aug 31, 2026
c5c8902
feat(mock-interview): add report export and fix the close-guard dispa…
alpha5611331 Aug 31, 2026
7c62e4f
test(mock-interview): cover the state machine, gate, isolation, and e…
alpha5611331 Aug 31, 2026
2b25117
fix(mock-interview): end stale sessions and arm the silence backstop
alpha5611331 Aug 31, 2026
55bd295
test(language): pin TTS_LANGUAGES against the voiced set
alpha5611331 Aug 31, 2026
c80cfdd
fix(mock-interview): UI/UX pass - a11y labels, motion, empty states
alpha5611331 Aug 31, 2026
b73887a
fix(mock-interview): correct the headphone notice for the mock flow
alpha5611331 Aug 31, 2026
3dbc299
fix(mock-interview): recover a dead microphone with no speech at all
alpha5611331 Aug 31, 2026
2694289
fix(mock-interview): give all three screens a heading structure
alpha5611331 Aug 31, 2026
3c792a2
fix(mock-interview): tell the user where to fix a missing audio device
alpha5611331 Aug 31, 2026
60dd9e0
fix(mock-interview): move focus to each screen on mount
alpha5611331 Aug 31, 2026
d7f0fad
fix(mock-interview): fix RTL rendering for the report's translated fi…
alpha5611331 Aug 31, 2026
1506749
feat(mock-interview): match the live control bar's UI, add optional l…
alpha5611331 Aug 31, 2026
23a93f7
feat(mock-interview): drop the Role field from the setup form
alpha5611331 Aug 31, 2026
3ebef30
fix(dialogs): restore button spacing on the headphone and permission-…
alpha5611331 Aug 31, 2026
94132cb
feat(control-panel): remember the last session mode, start it directly
alpha5611331 Aug 31, 2026
89baa3b
fix(mock-interview): six defects found reviewing the UI rework
alpha5611331 Sep 1, 2026
c11ea38
test(mock-interview): cover the live-hint lifecycle
alpha5611331 Sep 1, 2026
39d60ac
fix(mock-interview): stop the transcript showing each question twice
alpha5611331 Sep 1, 2026
fbb9e34
fix(mock-interview): confirm the report export the way every other on…
alpha5611331 Sep 1, 2026
bc99adf
test(config): pin that the default session mode is mock
alpha5611331 Sep 1, 2026
7801eed
fix(mock-interview): repair the TTS path, and stop 422ing an older ba…
alpha5611331 Sep 1, 2026
d8ef178
fix(mock-interview): stop Repeat playing two voices over each other
alpha5611331 Sep 1, 2026
e83761e
feat(mock-interview): send the question number with each generation r…
alpha5611331 Sep 1, 2026
ac4880f
fix(mock-interview): five more, from a pass over what the tests canno…
alpha5611331 Sep 1, 2026
bb38665
fix(mock-interview): five more, two of them in last round's own fixes
alpha5611331 Sep 1, 2026
42a0f80
fix(mock-interview): say why the first question failed, and stop losi…
alpha5611331 Sep 1, 2026
903a291
fix(mock-interview): remove the setup page, fix the panels' missing s…
alpha5611331 Sep 1, 2026
e6243b3
Merge main into feat/mock-interview-client
alpha5611331 Sep 4, 2026
1ea6edd
fix(mock-interview): address code-review findings on the mock intervi…
alpha5611331 Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,10 +258,13 @@ cheapest of the three to back out of - cancelling here means the other two were
`startAfterNotice` holds everything after it so the dialog can hand the start back without
duplicating those checks.

`headphoneNoticeAcknowledged` is opt-out rather than opt-in: whether the call is on speakers is a
property of the machine and the meeting, not a setting, so it can change between sessions on the
same install. The preference is written when the user goes through, not when they tick the box - a
tick followed by Cancel would otherwise silence a warning they never acted on.
Shown before every session, deliberately with no "don't show again": whether the call is on
speakers is a property of the machine and the meeting, not a setting, and it can change between
any two sessions on the same install - a permanent silence option would contradict the one fact
this dialog exists to establish. A `variant` prop (`'live' | 'mock'`) swaps the copy rather than
the mechanism: the live session's failure mode is a suppressed suggestion (the mic hears its own
question), while a mock session has no suggestion to suppress, only the transcribed answer's own
echo tail - so the mock variant names that instead of borrowing the live copy.

### Audio input device

Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-progress": "^1.1.16",
"@radix-ui/react-radio-group": "^1.4.7",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-tabs": "^1.1.13",
Expand Down
Loading