Skip to content

Test/full suite stability - #36

Closed
HarriethWiKk wants to merge 3 commits into
huiliyi37:mainfrom
HarriethWiKk:test/full-suite-stability
Closed

Test/full suite stability#36
HarriethWiKk wants to merge 3 commits into
huiliyi37:mainfrom
HarriethWiKk:test/full-suite-stability

Conversation

@HarriethWiKk

@HarriethWiKk HarriethWiKk commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

变更摘要

修复公开仓全量测试的环境与时序不确定性,并对齐最新上游的公开仓守卫元数据,使 npm test 在干净公开仓、WSL2/Linux 与高负载环境下稳定通过。

动机

全量测试依赖了若干未显式声明的前提:文件系统时间戳精度、固定等待时间、私有仓才存在的资产、工作树内过深的临时目录,以及预先存在的 .rivet/plans 目录。

同步到最新 upstream/main 后,还暴露出公开仓已移除 src/pro 后残留的行数基线、未同步的 RIVET_PROFILE registry 条目,以及测试对 abort drain 和 approval snapshot 的旧契约假设。

这些问题会让公开仓在生产代码未回归时出现测试失败。本 PR 仅修复测试前提与公开仓守卫元数据,不修改产品行为、测试目的或断言成功标准。

主要改动

  • src/tools/__tests__/run-tests.test.ts

    • 使用短的系统临时路径,避免 tsx Unix socket pathname 超限。
    • 保留 RUN_TESTS_TOOL 的发现、执行、过滤、失败处理和 verification 断言。
  • src/tools/__tests__/plan-task.test.ts

    • 写入计划 fixture 前显式创建 .rivet/plans
    • 保留多波执行、结果聚合和章节拆分断言。
  • 测试稳定性与公开仓适配

    • 通过显式 utimes、状态轮询和与生产 abort drain 对齐的观察窗口,消除文件系统精度和事件循环调度造成的假失败。
    • 私有/闭源资产仅在路径实际不存在时条件跳过;资源存在时仍执行。
    • 移除公开仓已删除 src/pro/computer-use/* 的行数基线,并更新上游已增长文件的现值。
    • 重新生成环境变量 registry,纳入 RIVET_PROFILE 并清除公开仓不存在源码的 RIVET_CU_* 条目。
    • 修正 approval snapshot 与 scoped git lock retry 的跨环境测试假设。

测试

  • npm test

    • 15,485 tests executed
    • 15,476 passed
    • 0 failed
    • 8 skipped
    • 1 TODO
  • npm run typecheck

检查清单

  • 本地 npm test 通过
  • npx tsc --noEmit 无类型错误(npm run typecheck 通过)
  • 变更范围最小化,无关改动已排除
  • 文档(README / 用户手册 / CHANGELOG)已同步更新(仅测试与守卫元数据调整,无用户可见行为变更)

相关 Issue

无。

…值与真实间隔,固定 sleep 改轮询;公开仓缺失资产(desktop 树、skill 文档)改存在性 skip;abort-hang 收尾预算 1s→5s 防满载误杀。15761 测试 fail 0。
@HarriethWiKk
HarriethWiKk marked this pull request as ready for review August 14, 2026 12:34
@huiliyi37

Copy link
Copy Markdown
Owner

感谢贡献!通用测试稳定性修复已全部移植到开发仓库并同步到公开仓库(sync 236a44b),共 13 个文件:

  • agent:abort-tool-hang 1s→7s(生产 6s drain)、plan-constraints utimes 钉目录 mtime、scoped-git-commit backoff 断言 7s→3s
  • server:config-routes proRequired 平台分支、handoff-route utimes 抬升、whisper-engine 子进程 setInterval 保活
  • tools:edit 记录 mtime 减 5s×4、plan-task 显式 mkdir + fixture skip、read-file-dedup/invalidation utimes 抬升、run-tests tmpdir 短路径
  • tui:app-focus-debounce 轮询替代固定 sleep

其中 manager-editor 的 snapshot 断言修复还顺带解决了上游一个真实红测试(getApprovalConfig 已含 unsandboxed 字段)。

未移植的部分(structure-gate 行数基线更新、env-registry 重新生成、desktop/knowledge 存在性 skip 类)是公开仓特有适配——开发仓库含 src/pro 与 desktop/,基线值不同,这部分将在公开仓侧随后续适配处理。

再次感谢,期待更多贡献!

@huiliyi37 huiliyi37 closed this Aug 15, 2026
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.

2 participants