Repository navigation
native: a terminal's replies to the program open no echo window - #1012
Merged
Merged
Conversation
Measured after #1011, a busy session with its agent streaming still drew 37 frames a second, not 24: the terminal's answers to the program's queries (cursor position, device attributes, which Claude Code asks for as it draws) went through send and counted as someone typing, so the output that followed always drew at once instead of riding the ring's frame. Replies now go through their own write and leave the echo window closed.
4 tasks done
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.
Why
Measured on the real window after #1011 (
sidebar.47, one busy session with its agent streaming): 37 frames a second, not the 24 the ring asks for. The output was not riding the ring's frame.The terminal's answers to the program's queries (cursor position, device attributes, which Claude Code asks for as it draws) went through
terminals.send, which marks "someone wrote to the PTY" so that the echo of a keystroke draws at once. A program polling the terminal kept that window open all the time, and every chunk of output drew its own frame as before.What
terminals.replywrites a query's answer to the PTY without opening the echo window;send, for what the person typed, pasted or scrolled, keeps opening it.Test plan
TestAQuerysReplyOpensNoEchoWindow: output after a reply rides the looping frame; after a keystroke it draws at oncenative/: gofmt,go vet ./...,go test ./...