Repository navigation
fix(shell): WSL 观察窗口避让命令回显 (#80) - #290
Merged
Merged
Conversation
…efs #80 The transport oracle must not treat ESC[row;1H as a record boundary, so the scenario drops the command echo from the window instead.
This was referenced Oct 31, 2026
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.
内容
WSL 会话的 size helper 回显会把观察窗口弄脏,而 oracle 不允许把
ESC[row;1H当作记录边界(既有合同明确禁止)。本次在场景层解决:判据为什么是这两个条件
observed含shell_size_clientobserved不含 marker两个条件同时成立才重开,避免了"标记已到却被清掉"的漏检。
为什么不在 oracle 里改
transport_completion_test有三条合同用例,明确要求带ESC[6;1H/ESC[7;1H的回显前缀不得被当作换行:改 oracle 会直接违反这三条,因此只能在场景层"让窗口干净"。
验证
termforge_shell构建通过;test_local_shell_exit_waits_for_native_helper_return与test_local_shell_launch_working_directory_and_cleanup本机通过(2 tests OK)。边界
Refs #80