## 限定结果与范围 已由 [PR #71](https://github.com/JavaZeroo/termforge/pull/71) 合入实验 `fix/conpty-backend-r47`(merge `20900b3`)。实际类为 InputQueue;本项闭合真实 writer 持块、取消/停止唤醒与夹具观察,不证明操作系统缓冲容量或产品背压存在并已修复的缺陷。实现尚未进入 main;#53 的真实 UI 路径继续独立验收。 ## 原失败与原因边界 冻结联合源 `3e5b96d` 的官方1.25/Console flags24 完整套件及单项均 return2,错误为 `real input writer holds a chunk`,不是外层10秒超时。原4MiB ASCII请求在完全不读输入的 child、先封住输出的顺序下未达到16KiB门槛。最终同一 EXE 的旧顺序诊断仍真实返回2:sent5120、accepted6144、in-flight1024;保留该红,不改写为通过或猜测宿主容量。 修正显式让 child 真实核对消费16KiB前缀、之后停止读取;writer 预绑定默认关闭的 sender fence,在真实 take_chunk/登记in-flight/queue解锁之后、真实 Session::send 之前持住第17块,再启动原 flood/output gate。此为明确的夹具顺序修正。 ## 已完成验收 - [x] 原4MiB/16KiB/3秒绝对观察及外层10秒保留;原输出gate、resize generation、child102×42与Session Job回收断言保留。 - [x] 仍经过真实 PasteTransfer → InputQueue → Session::send/WriteFile → ack/finish;不替换传输、不慢写、不补造ack。 - [x] 实际worker分别覆盖held→stop、queue.cancel_paste()让已领取块完成、cancel与stop并发。stop先唤醒CV再取消I/O/join,已领取未提交块清理无伪提交。 - [x] 固定源码 `519a3f37d52983062cd99b7efd805f183961fa4d`:官方与system各2进程×3worker=12条记录,全部join、Job0;两配置原focus单测各1/1、paste/sender_fence CTest各2/2。PR71 Windows/Linux两套CI均通过。 - [x] 协议纯测试拒绝错身份/generation、未held或重复GO、提前完成、过期/无GO;EOF是方法调用模拟,未声称实际IPC EOF。实际四次竞争均由stop获胜,未证明两个调度均发生。 独立Standards/Spec审查通过,原件/源码/EXE/后端pair与结果身份见[合同](https://github.com/JavaZeroo/termforge/blob/fix/conpty-backend-r47/docs/research/sender-fence.md)和[公开proof](https://github.com/JavaZeroo/termforge/blob/fix/conpty-backend-r47/experiments/shell/results/2026-10-26-sender-fence/validation.json)。原拒绝未打印cleanup Job计数,保留null;WIP绿与零测试准备失败不计最终验收。探针不链接候选VT核心,也不代表UI、长期、性能或完整R2通过。 父项#47;#53下一步复用fence,保留原3MB/768B checkpoint/真实flood/16KiB与原期限,不将本夹具的16KiB priming搬到其接收合同。
Activity
[-][R2][回归] 修复显式后端实际 InputPump 的持块夹具门槛[/-][+][R2][回归] 修正显式后端真实 InputQueue 的持块与停止夹具[/+]