Repository navigation
fix(bin): stop desk-voice delivery from scrolling the Firstmate chat - #269
Closed
lwachter-code wants to merge 1 commit into
Closed
lwachter-code wants to merge 1 commit into
lwachter-code wants to merge 1 commit into
Conversation
The send path's selection-dialog, chat-box and stash checks read the pane with a history capture. On herdr, a line-counted read of an idle Claude pane makes herdr scroll Claude's conversation up to collect its history and back, which shows as the chat jumping while a voice or dictated message is delivered. Those checks now read only the visible screen wherever the backend has a verified viewport read, as the composer check already does.
Owner
|
Thanks Luc! This landed as #270 through the no-mistakes pipeline, with your commit and authorship kept. Closing this one in favour of it. |
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
Delivering a desk-floater voice or dictated message made the Claude Code conversation in the Firstmate pane jump while the floater showed "Delivering".
Cause: the send path's selection-dialog, chat-box and stash checks in
bin/fm-desk-voice.shread the pane throughfm_backend_capture, which on Herdr ispane read --source recent --lines 200.On Herdr 0.9.3 a line-counted read of an idle Claude pane makes Herdr scroll Claude's conversation up to collect its history and then restore it, which is the visible jump.
Fix: those three checks now read only the visible screen wherever the backend has a verified viewport read (
fm_backend_visible_capture_supported), as the composer check already does; other backends keep their bounded history capture.Evidence
pane read --source recent --lines 200took about 0.5 s and returned 200 rows (viewport 59), while--source visiblereturns at once.flagsChanged:only updates the mouse cursor.Tests
test_desk_voice_send_reads_only_the_visible_screenintests/fm-deepgram-desk.test.shasserts that a send past a Claude draft and a send that meets a dialog make no--lineshistory read; it fails on the previous code and passes now.tests/fm-deepgram-desk.test.shpasses; its floater Swift tests cannot build on a Mac with only the command-line tools (no XCTest module), which is unrelated to this change.bin/fm-lint.shpasses with the pinned ShellCheck 0.11.0 and actionlint 1.7.12.Out of scope
The shared Herdr submit core's rendered busy-footer read and the watcher's busy check still use the history capture; they run only while the agent is not idle, apart from the submit core's last-retry check.