Windows: Pi 子任务停止等待期间批准测试进入 completed 而非 stopped
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 401
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 现象
Windows CI 中 `packages/maker-core/src/agents/pi/__tests__/cindySubagentRunner.test.ts` 的 `refuses to forward an approval once a stop is already waiting` 失败:第 1255 行等待 `state === 'stopped'` 超过 30 秒,诊断快照却为 `state: completed`、`toolUses: 1`、`output: fixture result`,runner stderr 为空。
测试先写 stop control,再写序号更早的 approval control,要求停止请求已等待时不得继续转发批准。需要独立确定是 Windows 文件可见性/夹具竞态,还是 runner 的停止与批准处理缺陷;当前证据不足以认定只是偶发超时,不应简单延长超时或放宽断言。
## 证据与范围
- [失败作业](https://github.com/makecindy/cindy/actions/runs/34094215850/job/101654119721),提交 `afed3382bde94871785417e07720653fe05d3d18`。
- maker-core 分片 1 failed / 1853 passed / 60 skipped;同一 Windows 作业的 Desktop unit 已通过。
- 触发 PR #4034 修改模型可见性及其同步;`git diff b91b78c50..afed3382b -- packages/maker-core` 为空,Pi runner 和该测试未被该 PR 修改。
- 已单独重跑失败 Windows 作业,用 Windows 环境复核是否重现;重跑通过也不能独自证明不存在竞态。
## 验收方向
用确定性的 control 发布/读取顺序复现,保留停止已等待时不得转发批准的断言,区分夹具发布竞态和产品 runner 行为后再修复;不在模型开关 PR 内扩大改动范围。
Contributor guide
Research direction
Start with packages/maker-core/src/agents/pi/__tests__/cindySubagentRunner.test.ts and the failing `refuses to forward an approval once a stop is already waiting` test; rerun it in the Windows job. Trace the deterministic control publication and read order alongside the Pi runner's stop and approval handling. Done means distinguishing fixture visibility from runner behavior, fixing the appropriate scope, and retaining the stopped-state assertion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100