Skip to content

ci(conpty): 2022 基线改为记录制 (#21) - #258

Merged
JavaZeroo merged 3 commits into
mainfrom
ci/2022-record-handles
Oct 31, 2026
Merged

JavaZeroo merged 3 commits into
mainfrom
ci/2022-record-handles

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

决策:Server 2022 基线改为「记录、不强制零增长」

依据 #21 的完整证据链:

  • Server 2022 每个 ConPTY 会话使宿主进程多一个 Job 句柄;
  • 该句柄不是我们创建的(session_job 的值每轮都正确关闭,残留的是平台复制的另一个值);
  • Win11 上 5 轮完全持平,说明这是 2022 平台行为;
  • 因此 steady_resources(要求单条样本内句柄不变)在 2022 永不满足,该基线必然长期红。

改动

文件 变更
experiments/conpty/run.py 新增 TERMFORGE_CONPTY_RECORD_HANDLES;置位时跳过 valid 与 steady_resources 断言,但保留其余全部契约(ready/echo/resized/子进程回收/退出码/记录数/无强制取消等)
conpty-compat.yml windows-2022-conpty 作业设置该变量,并在注释里指向 #21

保留的严格面

只有这一项被放宽:句柄/线程的"零增长"。句柄计数仍完整记录在 artifact 里,可用于后续趋势观察。

验证

python -m unittest discover -s experiments/conpty -p 'test_*.py' → 27 tests OK。

边界

  • 只对该作业生效(变量只在此作业设置);
  • 若将来 2022 平台行为改变,计数趋势会先变化,可据此恢复严格判定。

Refs #21

#21

The 2022 job sets TERMFORGE_CONPTY_RECORD_HANDLES so a platform-duplicated Job handle per session is recorded, while every other contract still gates.
本分支修改了 experiments/conpty/run.py(2022 基线改为记录制),但没有同步
benchmarks/tools/results/2026-10-29-c0-settings-*/ 里 source_files_sha256 记录的哈希,
导致 Windows 回归的 windterm_c0_settings_contract 断言失败:

  54fb4187…(快照记录)!= 3766879c…(工作区实际)

三处同步为当前 run.py 的 SHA-256(3766879c…):
- 2026-10-29-c0-settings-proposal/plan.json
- 2026-10-29-c0-settings-reference/plan.json
- 2026-10-29-c0-settings-reference/validation.json

不变的是契约本身:断言仍然要求快照与工作区一致,只是把记录更新到该分支的实际内容。
上一提交同时改了 c0-settings-reference/validation.json。那是该次运行的固定记录,
不是计划快照:契约测试断言的是 plan['source_files_sha256'],没有理由改写运行记录。
本次回退该文件,只保留两个 plan.json 的哈希更新。
@JavaZeroo
JavaZeroo merged commit 212ddab into main Oct 31, 2026
8 checks passed
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