Keep overlay visible while transcribing - #793
Conversation
Greptile SummaryThis PR keeps the dictation overlay in its “Transcribing” state until final recognition completes, then delegates dismissal to the shared post-output lifecycle.
|
|
Hi is there a after video? I see the before video! Thank you! seems like a nice PR! |
|
This pull request has been marked stale because it has had no activity for 5 days. It will be closed in 2 days if there is no further activity. Add the |
|
Thanks! Here’s the after video: FluidVoice-PR-793-after.mp4This was captured against commit |
|
This pull request has been marked stale because it has had no activity for 5 days. It will be closed in 2 days if there is no further activity. Add the |
161422b to
fa0b6c3
Compare
fa0b6c3 to
0385a96
Compare
|
Rebased onto current main and resolved the conflict while preserving the new Spoken Send path. Local validation and all PR checks pass. Ready for review when you have time. |
|
This pull request has been marked stale because it has had no activity for 5 days. It will be closed in 2 days if there is no further activity. Add the |
|
Closing this pull request because it remained inactive for 2 days after being marked stale. |
|
This was closed automatically while waiting for review. Issue #676 is still open, and the fix remains applicable to current |
|
@so1omon563 Can you please take a look at the video you attached for after and tell me if that is what is intended ? |
|
Yes, that’s the intended behavior. After recording stops, the button has returned to Start Recording, but the notch stays visible with its processing animation until the transcription appears. The final three seconds are a frozen frame of the completed result for readability, so they do not show the live post-output dismissal. In the live flow, the overlay then hides through the existing completion path. |
Description
Keep the normal dictation overlay visible in its existing “Transcribing” state until final transcription finishes, then hide it through the shared post-output lifecycle.
The regression came from a normal-dictation-only branch that requested an asynchronous overlay hide before
asr.stop()began. Removing that special case lets normal dictation use the same processing lifecycle already used by AI, Command, Rewrite, prompt-test, and sandbox routes.Type of Change
Related Issue or Discussion
Closes #676.
Testing
swiftlint --strict --config .swiftlint.yml Sources(SwiftLint is not installed locally)swiftformat --config .swiftformat Sources(SwiftFormat is not installed locally)xcodebuild test -project Fluid.xcodeproj -scheme Fluid -destination 'platform=macOS,arch=arm64'Also verified with
swiftc -parse,git diff --check, an unsigned app build, and a real normal-dictation stop cycle. Runtime benchmarks confirmedprocessing=truebeforeasr.stop(), the overlay remained visible while final transcription ran, and hide began only afterasr.stop()returned.Screenshots / Video
Before: reporter’s screen recording showing the overlay disappearing before transcription completes.
After: normal dictation keeps the overlay active through final processing and completes in the Test Playground. The final three seconds are a still of the completed result for readability.
Notes
This removes 19 net lines and adds no new state or abstraction.
AI assistance: Codex was used for implementation and validation.