Overlay: a slow transcription holds the disc instead of bouncing - #69
Merged
Merged
Conversation
At the release the pill gathers into the disc and dives. When the text was not pasted 300 ms after the release, a spinner task flew the pill back up as "Transcribing…" and it left a second time. At Quick the dive takes 460 ms, so every transcription between 300 ms and the end of the dive bounced: down, up, down. A release inside an engine pass is exactly that case (a 42.6 s toggle dictation logged engine 0.434 s against engine-time 0.179 s), and long toggle dictations run more passes. Now the decision is made where the gathering ends. Pasted by then, the disc dives as before. Not yet, and the disc stays where it is with a spinner in place of the wave until `.idle` sends it down; the clipboard hint and an error open out of it in place. The late "Transcribing…" pill and its delay are gone; only the polish path, which waits seconds, still shows the row. A flight-in that completes after a release has begun the exit no longer opens the disc back into the row. The overlay demo gains a "late" take, pasted 450 ms after the release. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Summary
When a toggle dictation was stopped, the pill sometimes dived, came back up saying "Transcribing…", and dived again.
The cause. At the release the pill gathers into the disc and dives. If the text had not been pasted 300 ms after the release, a spinner task flew the pill back up as the "Transcribing…" row. At Quick the dive takes 460 ms (260 ms gathering, 200 ms slide), so every transcription between 300 ms and the end of the dive bounced. A release inside an engine pass is exactly that case: a 42.6 s toggle dictation logged
release-to-paste 0.489 s … engine 0.434 … engine-time 0.179 s. Long toggle dictations run more passes, so they hit it more often.Now there is one exit, decided where the gathering ends:
.idlearrives. The clipboard hint and an error open out of it in place.OverlayDemogains a "late" take, pasted 450 ms after the release, the reported case.Test plan
swift build,swift test: all suites pass.scripts/overlay-demo.sh, Compact at Quick. "late" (450 ms) and "slow" (900 ms) gather into the disc, hold it with the spinner and dive once; no "Transcribing…" row and no second flight. "plain" and "copied" look the same as before.No benchmark: only the overlay changes, and nothing between
recordingStoppedandinsertedinDictationCoordinatoris touched.🤖 Generated with Claude Code