Skip to content

研究:定位 Vim resize 后 MSYS 输入丢失边界 #52 - #92

Merged
JavaZeroo merged 2 commits into
fix/conpty-backend-r47from
diagnose/vim-input-frida-r52
Oct 26, 2026
Merged

JavaZeroo merged 2 commits into
fix/conpty-backend-r47from
diagnose/vim-input-frida-r52

Conversation

@JavaZeroo

@JavaZeroo JavaZeroo commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

问题与结果

固定 MSYS Vim 的 GUI resize 后,原 93 B 命令有时进入插入内容,场景在 stage59 失败。本 PR 将捕获到的丢失定位到 MSYS 控制台事件到 read(0) 的转换,并公开经白名单筛选的时间线、身份和限制;这是诊断交付,#52 继续开放。

TermForge writer 一次成功写出含 Ctrl-O 的 93 B,原生输入也包含它;三个红例中 MSYS 最终只交给 Vim 后续 92 B。函数边界跟踪进一步看到:process_input_message Peek 到 resize 后进入 send_winch_maybe,另一线程先移走 resize,随后旧调用的清理 Read 取走新到 Ctrl-O。固定公开源码中的解锁/重新加锁解释与此吻合,但尚无单变量修补红绿。不得简单删除为防信号处理死锁而加入的解锁。

范围与身份

  • 基点 44ea45b988b6bb0b72f21cd24597fe54b9b4ec31;本 PR HEAD d6b3f798c82fd07cd0c88d989bfce3876c9692fa;仅文档和白名单 JSON。
  • 候选 termforge.5 × 官方 ConPTY 1.25.260930003 × flags24;固定 Vim/MSYS SHA 见记录。
  • 临时诊断 EXE 73472864e5aa291704917812ff1848f7a59be6e5f30c41f6a613e3fc18c740d4;公开 JSON SHA256 55268bfb82364719231cf38e9b3315d8daff73286fdbe99dcbbe64b70540b624。
  • 临时 C++ 已按基点字节恢复并重建,重建 EXE 单独标识;没有产品/测试源码变更,没有重跑后的完整回归声明。
  • 只合入实验父分支 fix/conpty-backend-r47;不改变 Draft 实验:候选 .5 与固定官方 ConPTY 联合整合(保留真实回归) #50 或 [R2][Backend] 整合已确认的随包固定微软 ConPTY 正式路线 #47 的未通过状态。

验证与限制

首批最多4轮,达到一例原 stage59 和一例完整诊断绿,或遇不同失败即停止;实际两红一绿。函数调用点核对最多2轮,首例原失败或不同失败即停,实际一红。四轮原25秒/外层40秒、原输入/脚本/精确断言保持,均无外层超时、Job active0/terminated0、desktopgone。事件未截断。

诊断绿只证明该次带探针运行通过原断言,不是修复验收。Frida 代码钩子及附加握手会扰动调度;工具 provider 身份字段缺口、附加前调用不覆盖和历史未捕获失败均保留。没有将不同进程时钟合成性能测量。

离线核对四份原始时间线、writer字节、COFF函数映射、53项身份哈希、源码恢复、JSON解析/相对链接/隐私扫描和 git diff --check。Standards 与 Spec 独立审查在本 HEAD 无剩余阻塞;停止规则与实际结果已分列。两条 CI 均成功,实际 checkout 为 dc2494313838cfbd48fc46e3777945ef78858e24(合并本 HEAD 与固定基点)。Build:Windows default/system 52/52,273.96秒,Ubuntu 默认 33/33,11.72秒;External candidate:Windows/Linux候选core+checkpoint各 2/2(1.14/0.31秒),其余候选/system流程成功。各配置独立,不作为显式官方后端验收。

Refs #52, #47, #28。

@JavaZeroo
JavaZeroo marked this pull request as ready for review October 26, 2026 23:28
@JavaZeroo
JavaZeroo merged commit dd53387 into fix/conpty-backend-r47 Oct 26, 2026
8 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T23:28:59.698302Z d6b3f79 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant