Repository navigation
Description
范围严格限死:只改
packages/spec/vitest.config.ts一行 + changeset。
这是 #4796 的止血,不是它的解。#4796 保持打开,方向 2(把导出面解析提成构建期产物)仍归 spec 车道。
⚠️ 本单不得写Fixes #4796,那会把还没解决的结构问题一并关掉。
根因(已在 #4796 取证完毕,证据见 该条评论)
packages/spec/vitest.config.ts 没有设 testTimeout,吃 vitest 默认的 5000ms:
export default defineConfig({
test: { globals: true, environment: 'node', include: [...], coverage: {...} },
}); // ← 无 testTimeout而 packages/spec/src 下有 12 个测试文件在用例里加载 TypeScript 编译器并对整个导出面做类型解析:
const ts = (await import('typescript')).default; // 建 program、解析 symbol、unalias、追 originOfapi/rest-server · automation/state-machine · automation/sync-retirement · cloud/tenant
data/driver · integration/connector · kernel/package-dependency-dual-source
studio/action-location-retirement · system/environment-artifact · system/notification
ui/app · ui/view
这类工作量本来就是秒级。合并队列的 runner 同时跑多个 PR 的批次,比 PR 分支拥挤,所以今晚 5 次命中全部发生在队列里,PR 分支一次没红过。
影响
今晚 5 次把完全无关的 PR 踢出合并队列:#4755(metadata-protocol)、#4788(plugin-auth)、#4823(metadata)、#4822(service-analytics,连踢两次)。每次都要有人去翻 gh-readonly-queue/* 的 run,才能做出「不是我的锅」这个证明。
要做的
packages/spec/vitest.config.ts的test块加testTimeout: 60_000。60s 与 PR feat(spec): ratchet cross-entry dual-source exports — same name, different declaration, judged by symbol identity (#4446) #4506 当初给同族用例定的值一致,只是提到配置层一次覆盖全部 12 个,不再随新增清账单漏。- changeset(patch;仅测试配置,无公共 API 变化)。
不要做的
- ⛔ 不改任何
.zod.ts、不改任何测试逻辑、不动spec-changes.json/ liveness 台账 / 生成基线。 - ⛔ 不做方向 2 的重构(构建期产物)——那是 flaky:
spec/src/cloud/tenant.test.ts的 #4739 导出面用例贴着 5s 超时 —— 今晚已两次把不相干的 PR 踢出合并队列 #4796 的本体,留给 spec 车道。 - ⛔ 不逐条给用例加
{ timeout: … }。PR feat(spec): ratchet cross-entry dual-source exports — same name, different declaration, judged by symbol identity (#4446) #4506 就是这么做的,只覆盖了当时红的那几条,池子有 12 个,后续新增的照样漏。改配置层才收得干净。
跨车道说明
packages/spec/** 按 #4604 登记表归 spec 车道(session_0176qgxgCXTJCUv4YFLtusP9)。本单由主 backlog PM(session_015Br2xsJsczFsTR9bvbh2Ny)在维护者批准下破例跨入,理由是它卡住的是全仓合并吞吐(含本次发版关键项),而止血只需一行。已在 #4796 与 #4604 登记,留否决窗口 —— spec 车道若认为这一行应换个值或换个位置,直接说,本单立刻让行。
Related: #4796(本体,保持打开)、#4506(上一次局部修法)、#4739 / #4658 / #4740(受影响用例所属的清账单)
Activity
os-zhuang commentedon Aug 3, 2026
认领:PM 循环第 6 轮
会话:
session_015Br2xsJsczFsTR9bvbh2Ny分支:
claude/issue-4850-spec-vitest-timeoutWorktree:
objectstack-issue-4850域:⚠️ 跨车道,维护者已批准,见正文「跨车道说明」)
spec(文件面:
packages/spec/vitest.config.ts+.changeset/*,仅此并行批隔离:本轮在飞的 #4700(
packages/types/verify/qa)、#4775(packages/objectql)、#4836(metadata-protocol,复核中)、#4838(plugin-approvals,复核中)与本单文件面完全不相交。Generated by Claude Code
fix(spec): set testTimeout 60s for this package's vitest run (objects…