From 5fe5f8768e595a260e0f5a3d19273f88a6bea532 Mon Sep 17 00:00:00 2001 From: JavaZeroo <71128095+JavaZeroo@users.noreply.github.com> Date: Sat, 31 Oct 2026 21:58:41 +0800 Subject: [PATCH] docs(evidence): record the three non-reproducing reliability batches refs #38 The settle, resize-reply and node timing counts lived only in issue comments; they now have a result directory and an evidence row. --- docs/EVIDENCE.md | 1 + .../2026-10-31-reliability-batches/README.md | 19 ++++++++ .../validation.json | 47 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 experiments/shell/results/2026-10-31-reliability-batches/README.md create mode 100644 experiments/shell/results/2026-10-31-reliability-batches/validation.json diff --git a/docs/EVIDENCE.md b/docs/EVIDENCE.md index d9de9efc..25264f26 100644 --- a/docs/EVIDENCE.md +++ b/docs/EVIDENCE.md @@ -81,6 +81,7 @@ R1 固定总出口的源码为 `ce9b24d`,早期 `2dc8d6d` / `9b16acc` 仍分 | 原生命周期探针重复与控制台测试后采样(#145 未关闭) | [固定结果](../experiments/conpty/results/2026-10-29-probe-repeat-r145/README.md)、[验证身份](../experiments/conpty/results/2026-10-29-probe-repeat-r145/validation.json) | 隔离重复 40×4=160 会话 0 红;先跑 conpty_ctrl_c/conpty_margin 后采样 20×4=80 会话,1 红但 resize 回复正确(resized=1、120x40、exit 37),原因是会话后线程基线 4→6 超过 1s 结算窗口。旧尺寸回复仍未复现;该线程稳态红归 #38 族,不并入 #145 根因。 | | 持续 cmd 输出与原始 Ctrl-C 回归(#36 未关闭) | [受监督入口](../experiments/conpty/README.md#持续-cmd-输出与-ctrlc-独立回归)、[三次 fresh 公开记录及本地字节复核](../experiments/conpty/results/2026-10-26-ctrl-c-retest/validation.json) | 原百万次输出、单次 ETX、五秒期限和退出 37 保留;三次 fresh 原始字节/Job0 本地重算。后续成功未解释历史失败,未改产品 Ctrl-C 路径。 | | WSL 尺寸标记观察窗口(#80 未关闭,stage 5 支线已修) | [成因与修法记录](../experiments/shell/results/2026-10-31-wsl-size-window/README.md)、[固定验证记录](../experiments/shell/results/2026-10-31-wsl-size-window/validation.json) | 失败作业 124536048854 的 185B 窗口含命令回显 + `ESC[10;1H` + 标记;oracle 的三条 CUP 合同禁止把该定位当边界,故改为在场景层重开观察窗口。修前该作业红在 stage 5、修后同一回归绿,差异仅一处。**不构成本项原始 hosted stage-6 事件的因果证据**,故 #80 保持开放 | +| 三类持续未复现项的量化批次(#144 / #145 / #160) | [批次记录](../experiments/shell/results/2026-10-31-reliability-batches/README.md)、[固定验证记录](../experiments/shell/results/2026-10-31-reliability-batches/validation.json) | 同一 artifact 集:425 个沉降样本全部 0 ms 消失;1500 轮 resize 的 `stale_*` 与 `disagreement` 全 0;80 次 Node 运行最大 1.969 s(冷启动首例)、超时 0。三项均**无反驳样本**,故保持开放;计时为探针自身测量,非性能声明 | | 持续输出中断的原失败记录 | [#36](https://github.com/JavaZeroo/termforge/issues/36)、[ConPTY 输入机制研究](research/conpty-ctrl-c-input.md)、[原 R1 历史证据](../experiments/shell/results/2026-10-23-r1-foundations/validation.json) | 原 Windows 11 回归中的 normal/resize 超时与 ETW/插桩观察;调试扰动及管道读完成缺口保留。不是当前全套结果,后续未复现不能抹去此失败。 | | controller B 正常结束后 cmd 退出未验收(#44) | [原失败脱敏记录](../experiments/shell/results/2026-10-26-controller-exit/validation.json)、[新退出诊断及有界重放](../experiments/shell/results/2026-10-26-controller-exit-observation/validation.json)、[关闭合同](https://github.com/JavaZeroo/termforge/issues/44) | 原 child 收完 32B、退出 0/join/Job0;cmd 只留下 close 后 0xC000013A,close 前未知。新观察分列输入、wait、pre-close 与清理;多轮未复现不构成历史修复,继续阻塞 #38。 | | 原 10 秒纯夹具超时的阶段保留(#40 未关闭) | [限定合同](research/inventory-timeout-checkpoints.md)、[正常与受控超时对照](../research/ime/results/2026-10-26-inventory-timeout-checkpoints/validation.json) | 保持原 10 秒期限;超时后保留有界阶段、原异常和回收。受控挂起对照已通过,但历史 CI 的阶段/根因仍未知,#40 不因此关闭。 | diff --git a/experiments/shell/results/2026-10-31-reliability-batches/README.md b/experiments/shell/results/2026-10-31-reliability-batches/README.md new file mode 100644 index 00000000..00f868e6 --- /dev/null +++ b/experiments/shell/results/2026-10-31-reliability-batches/README.md @@ -0,0 +1,19 @@ +# 三类持续未复现项的量化批次(#144 / #145 / #160) + +同一 artifact 集(run 41198898623,hosted Windows 2025)里,这三个历史上偶发的问题都没有复现。本记录把三批数据放在一起,便于判断证据强度。 + +| issue | 批次 | 关键计数 | 结论 | +|---|---|---|---| +| #160 desktop 沉降 | 425 个 `sample.json` | 全部 `[{elapsed_ms:0, gone:true}]`;缺失 5 条均为刻意构造的 `desktop-failure` 负例 | 关闭后首次检查即消失,无退避 | +| #145 resize 旧尺寸回复 | 10 个配置 / **1500 轮** | `stale_buffer=0`、`stale_window=0`、`buffer_window_disagreement=0` | 无陈旧回复样本 | +| #144 Node 10 秒停顿 | 60 顺序 + 20 并发 | 中位 0.062 s、最大 1.969 s(冷启动首例)、超时 0 | 宿主正常时远低于期限 | + +## 为什么放在一起 + +三项的共同点是:复现依赖宿主侧偶发状态,而不是固定输入可触发的确定性缺陷。三批数据都指向"当前批次未复现",但都没有反例,因此三项都保持开放。 + +## 限制 + +- 三批来自同一 run 的不同 artifact,不拼成一次"全绿"; +- 各自的原始失败记录仍然保留,未被新批次覆盖; +- `resize_to_reply_us` 等计时是探针自身测量,不构成性能声明。 diff --git a/experiments/shell/results/2026-10-31-reliability-batches/validation.json b/experiments/shell/results/2026-10-31-reliability-batches/validation.json new file mode 100644 index 00000000..04541300 --- /dev/null +++ b/experiments/shell/results/2026-10-31-reliability-batches/validation.json @@ -0,0 +1,47 @@ +{ + "schema": "termforge-reliability-batches-v1", + "run": 41198898623, + "platform": "Windows-2025Server-10.0.26100-SP0", + "desktop_settle": { + "samples_with_field": 425, + "samples_without_field": 5, + "shapes": [ + { + "length": 1, + "last_gone": true, + "count": 425 + } + ], + "missing_reason": "desktop-failure fixtures are constructed negatives" + }, + "resize_reply": { + "files": 10, + "rounds": 1500, + "stale_buffer": 0, + "stale_window": 0, + "buffer_window_disagreement": 0, + "resize_vt_before_reply": 1000, + "median_of_medians_ms": 13.8, + "max_ms": 23.6 + }, + "node_timing": { + "sequential": { + "samples": 60, + "min_s": 0.046, + "median_s": 0.062, + "max_s": 1.969, + "timeouts": 0 + }, + "concurrent": { + "samples": 20, + "max_s": 0.235, + "timeouts": 0 + } + }, + "closed_issues": [], + "limitations": [ + "single run", + "no counter-example found", + "timings are probe-local, not performance claims" + ] +}