Skip to content

[codex] 精简测试与插件 v3 Gate - #535

Merged
kachofugetsu09 merged 7 commits into
mainfrom
refactor/test-gate-one-third-20260902
Sep 2, 2026
Merged

[codex] 精简测试与插件 v3 Gate#535
kachofugetsu09 merged 7 commits into
mainfrom
refactor/test-gate-one-third-20260902

Conversation

@kachofugetsu09

@kachofugetsu09 kachofugetsu09 commented Sep 2, 2026

Copy link
Copy Markdown
Owner

结果

  • Python 测试从 3239 项实体收敛到恰好 1080 项:保留 72 文件,删除 2159 项 / 178 文件
  • Node 测试从 194 项收敛到 62 项:保留 4 文件,删除 132 项 / 30 文件
  • PR CI 从 8 个 job 收敛为 2 个:完整保留回归与统一 change-impact Gate
  • 插件候选 CI 从 4 个 job 收敛为 1 个,只执行 3 个可观察边界:Fleet、Mobile、公共 WebUI
  • 物理删除 4 个已失效或无真实消费者的 Docker Gate runner,共减少 3780 行

测试选择原则

保留现实可观察回归、非平凡不变量/边界和具体 bug:Session 只追加、Turn finality、跨 session 并发、plugin generation/lease/promotion/rollback、Mobile/Web ingress、外部 schema、附件、游标、durable delivery、不可逆迁移、backup/restart/MCP recovery、Shell/Tool 权限与进程边界,以及 semantic P0 mutant/oracle。

删除实现 helper/slot/wiring 镜像、常量和 mapping 枚举、重复 adapter/provider 排列、无持续 absence 合同的历史过渡面、专项 benchmark/性能/部署演练,以及已被更高层行为 finality 覆盖的下游测试。完整理由、放弃粒度和恢复点见 docs/refactor/test-gate-cleanup-ledger.md

scripts/check_test_budget.py 强制 Python 必须恰好 1080,并校验保留清单与实体文件完全一致;Web runner强制 Node 必须恰好 62。

Docker / CI Gate 的代码演进依据

保留:

  • change-impact-gate:2026-07-18 后成为按 diff 选择 P0 场景、未知映射 fail closed 的单一语义 owner
  • plugin_v3_fleet_gate.py:固定 18 个锁定插件来源、v3-only API、当前 Core export compatibility 和 retired exclusion
  • plugin_v3_mobile_gate.py:验证用户可见 Mobile catalog / JS ABI
  • plugin_passive_webui_v3_e2e.py:穿过真实 Gateway、WebSocket、SessionDB、媒体和 Dashboard
  • 每周 lifecycle job:集中保留 failure matrix、100-turn resource soak 与 restart soak

删除:

  • plugin_v3_e1_gate.py:2026-09-02 Core 删除 v2 compatibility 后,锁定 Emotion 仍导入已删除的 CoreEvent;它固定历史 API,不是当前产品回归
  • plugin_v3_e2_gate.py:同一演进后,锁定 Calendar 仍导入已删除的 PROACTIVE_COMPONENTS
  • plugin_v3_e4_gate.py:硬依赖已失效 E1 和仓库中没有 runner 的 E3,无法形成可执行发布合同
  • plugin_composition_v3_gate.py:只有历史文档调用者,重复固定 Tool/plugin snapshot 排列
  • Fleet 报告中永远 not_run 的 E1~E4 catalog:删除无观测价值的占位数据

plugin_passive_composition_v3_gate.py 不再有独立 CLI,但公共 WebUI runner 有真实 import,保留为 exact source、装配和摘要 helper。clean-head 实测发现该依赖后已恢复,没有复制 helper。

Terra 复审发现旧 fleet lock 对已删除 Core export 会产生静态假阳性。本 PR 已把 Calendar、Emotion、Observe、Feed、Fitbit、Steam 推进到各自当前正式 main 的精确 SHA,Mobile 同步相关三项,并新增生产源码 from agent.* import ... 逐符号 fail-closed 检查;旧 CoreEvent/PROACTIVE_COMPONENTS 锁会被拒绝。

验证

  • budget:python_files=72 python_tests=1080 node_files=4
  • Python:1075 passed, 5 skipped(155.87 秒)
  • Node:62 passed
  • Python production/tests/SDK Pyright、TypeScript、control schema、Yoyo append-only、SDK 11 tests、workflow YAML、Gate audit、git diff --check:通过
  • change-impact Gate:27 个公开场景通过
  • clean head b042fc4c:Fleet、Mobile、公共 WebUI 三条保留候选 Gate 全部通过;WebUI 报告绑定同一 head 且 cleanup/source unchanged
  • exact-head change-impact:27/27 场景通过,plan digest f0363418f6481ddc2baaa56360ecec0aa4af376bf02e0ce67aeac048305055c8
  • GitHub CI:精确 head b042fc4cc895b64da670d95a490ce58fc1feb646check-and-testchange-impact-gate 全绿
  • Terra xhigh 最终复审:PASS,P0/P1 为零

恢复

  • 清理前 bundle:/mnt/data/akasic-agent-backups/test-gate-one-third-20260902-before-clean/pre-hard-budget-71b27f5b.bundle
  • SHA-256:78c213310dc94c8ee5a16da65f8dd25c4dc0078aab7bb965cb772b91001ed7f5

@kachofugetsu09
kachofugetsu09 marked this pull request as ready for review September 2, 2026 14:13
@kachofugetsu09
kachofugetsu09 merged commit 47896b4 into main Sep 2, 2026
2 checks passed
@kachofugetsu09
kachofugetsu09 deleted the refactor/test-gate-one-third-20260902 branch September 2, 2026 16:21
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