## 现象 真实 more.com 的 pager 捕获存在两种尾部:一种只有提示文字,另一种在 q 退出时追加 CR + CSI 79X(十六进制 0d 1b 5b 37 39 58)。当前捕获器在等待 TF_PAGE_1 后就发送 q,尚未证明 More 提示完整输出后再退出。 固定 366 字节捕获的末尾为 CR + CSI 79X。默认 Recovery 在 3x12 回放后于第三行留下 ),termforge.2 与 termforge.3 候选和固定 pyte 0.8.2 则清除该行。两个候选版本在同一原始捕获上的差异完全相同,因此这不是 margin 修复引入的差异。新鲜捕获为 360 字节时,三应用 3 次 match;不能据此忽略另一类真实运输。 ## 保留的边界 - 不修改原始捕获、不删除尾部控制序列、不把 reference difference 自动改判为 match。 - pyte 是独立参考而非完整真值;需按 ECH 的行边界与 pending wrap 合同裁决 Recovery 是否正确。 - 需核实等待完整 More 提示、q 发送、进程退出及输出排干的实际顺序,不能用固定延时冒充同步。 - 此问题与 #27 margin 修复分开;#38/#35 不能因此关闭。 ## 后续验收 - [ ] 固定同一捕获比较默认 Recovery、候选和独立参考,明确 ECH 与 wrap 的可观察合同。 - [ ] 真实 more.com 在确认完整提示后退出,记录输出端点、退出与回收;不同合法重绘不能靠修改输入规避。 - [ ] 消除捕获竞态及确认的实现差异,或保留带精确输入和未完成路标的差异记录;完整默认 differential 与 R1 回归不得被静默降级。 父项:#38。
Activity
JavaZeroo commentedon Oct 26, 2026
已由 #43 合入限定修复。默认 Recovery 实现 ECH;原 360/366 字节输入保留,366 字节在旧核心 whole/byte 失败、修复后与候选/pyte 一致。真实 More 捕获等待完整提示、只发一次 q、正常退出并继续读取至真实 EOF,保留全部尾部,不再提前取快照。
合同、来源及剩余差异与前后证据已同步。候选 pending-wrap 差异继续归 #27,未自动登记比较豁免;本项关闭不表示完整终端模式或 R2 验收完成。