Repository navigation
Paper cuts batch 2: Esc, setup, agent connect, and wording fixes - #1804
Merged
Merged
Conversation
Esc is a global key, so closing an autocomplete mid-dictation used to discard a long hands-free take with no sound. Takes over 5 seconds now ask "Press Esc again to discard" and only a second press inside 3 seconds cancels. Cancel and no-speech get a soft bundled cue instead of silence or the delivered chime, and the copy says Esc cancels, not stops. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
- The Accessibility row is now "Keyboard shortcuts and paste-back"; the Done screen stops listing shortcuts that can't work without it. - The Done screen says the app opens at login before macOS shows its notice. - The welcome line mentions anonymous stats and crash reports. - The first Accessibility Grant shows only the macOS prompt; later clicks open the pane. - A fresh Don't Allow for the mic or calendar stays in the app, and the row says macOS won't ask again with an Open Settings button. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…section Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…Clear all Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…epeat Review fixes for the Esc change: - Mini cursor mode widens the pill and shows the prompt in place of the waveform, and VoiceOver announces it. - Stopping clears a pending confirm, so an Esc while it transcribes asks again instead of discarding. - Held-Esc key repeat no longer counts as the second press. - Uptime clock instead of wall clock; reset on success; retained recordings readmitted for another pass always ask first. - The cancel cue is skipped when the audio is kept (quit with recovery). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…itched apps." Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…"Off" label Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…dar copy - One name for saved meeting audio (not replay/kept/retained), and the retention row reads "Delete meeting audio after". - Send Diagnostics says it's sent and gives a code to mention. - The speaker merge confirm no longer promises an undo that restores past transcripts. - System Audio row: "How to turn it on" instead of migration steps. - Dictation during a starting meeting no longer says "finish saving". - Setup's last button says Done; Calendar reads the same in setup and Settings. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
… smaller fixes - Only onboarding's first Accessibility Grant shows the prompt alone; Settings rows keep prompting and opening the pane, since macOS may not prompt an existing user who lost trust after an update. - A starting or stopping meeting counts as recording for the update row. - Hovering holds an overlay message for at most 30 seconds. - Clear all says "Clear all corrections?" when nothing parses. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC
…-e1lvvc # Conflicts: # Sources/UI/Settings/SpeakerPeopleSettingsSection.swift # Sources/UI/Settings/TranscriptedSettingsView.swift
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.
Requested by Justin · project thread
Before: a stray Esc during a long hands-free dictation silently threw the whole take away. Setup didn't say what Accessibility was for, the Done screen promised shortcuts that couldn't work yet, the agent page dropped the "restart it" step once a row connected, and a lot of small copy was vague (a shortcut labeled "Off", and shaking red errors for things that weren't errors).
After: dictations longer than 5 seconds ask "Press Esc again to discard" before Esc throws them away, and a cancel gets its own soft sound. Setup explains what each permission unlocks and what still works without it, and the agent page keeps telling you to restart the agent. The small wording fixes from the paper-cuts audit are all in too.
Why
This is batch 2 of the paper-cuts audit (
/mnt/project-files/paper-cuts/audit.md): items 5, 6, 7, 11-17, 19-21, 26 and 28-30, plus the "Small stuff" wording list.Product Impact
dictation/meetingsactivation/dictation reliabilityWhat changed
Esc (item 5)
Resources/Sounds/dictation-cancelled.wav). It's also used for "No speech heard", so neither sounds like the done chime.Setup and permissions (items 6, 12, 16, 17, 19)
Agent connect (item 7): connected rows stay visible and say "Restart X to finish connecting".
Update row (item 11): the row now says why it's waiting ("After this recording finishes", "After transcribing finishes", "Finish naming speakers first").
Overlay messages (items 13, 26): notices stay up longer for long text, hold while you hover (capped at 30 s), and only real errors shake. The 5-minute cap save is a calm "Saved" notice.
No speech (items 14, 15): push-to-talk users are told to hold the key while talking. Everyone else is told to check their mic.
Menu bar (items 20, 21): while dictating, the row reads "Stop Dictation". The voice-model subtitle uses plainer copy ("Voice setup failed. Try again", "Downloaded. Loads when you start").
Settings (items 28-30): "Better matching on calls" says it needs a restart, and re-transcribe explains why it's disabled. "Clear all" corrections now asks first.
Small stuff wording: auto-send failures, Paste Last (shows its shortcut, clearer failure text), the model card, System Audio row, storage cleanup, meeting audio wording, diagnostics result, speaker merge (no longer promises an undo it can't do), and the meeting-finishing message.
Skipped here: item 9 (waits for #1801), item 31 and the Option-M prompts (other threads own them), speaker sheet keys and title (overlaps #1795), recovery copy (next to #1801's hunk), and the bigger behavior items (Move for the library folder, duplicate shortcuts, multi-file import, mic-denial skip, email-support diagnostics ID). The Esc undo window after a discard is a follow-up.
How I checked it
scripts/dev/agent-preflight.shcheck-build-source-lists.py,check-analytics-emitters.py,check-duplicate-declarations.pypass locallybash build.sh --no-open(CI, no Swift toolchain in this session)bash run-tests.sh(CI; tests updated for every changed copy/policy)Risk Review
Notes
Deep review:
/mnt/project-files/reviews/next-release/1804.md. S1-S4 and M2-M4, M11, M13, M14 are fixed. M1 is kept on purpose (meeting Discard sound), and M5-M7, M9, M10, M12 are left as-is or as follow-ups.Agent handoff
COORD_DONE: BRIEF | https://github.com/r3dbars/transcripted/pull/1804 | paper-cuts batch 2 | none | none | preflight + local python checks; CI pending | merge when CI green and re-review clean🤖 Generated with Claude Code
https://claude.ai/code/session_01XWq97CXXURmxjYLNWtVxXC