# PROGRESS · 寒暄隐私测试 stdout mock 透传(2026-09-21 / 执行 2026-09-22) 工作树:`.worktrees/smalltalk-test-stdout-mock-20260921` 分支:`codex/smalltalk-test-stdout-mock-20260921` 基线:`origin/staging` @ `24795cbf`(任务书写 `a06829b3`;开工 fetch 后实际 head) ## 任务状态 | 任务 | 状态 | 说明 | | --- | --- | --- | | F1 mock 透传 | 完成 | 保存并 bind 原始 `write`,记录后原样转发,返回原始返回值 | | F1 单文件三次 | 完成 | 每次 `# tests 33` / `# fail 0` / `default Mastra adapter` 的 `ok` 行 = 4 | | F1 变异 | 完成 | `invalid_schema` / `bad_json` 的 `not ok` 含用例名和 `PROBE`;已撤回 | | F1 隐私探针 | 完成 | 写 sentinel 后三条均 `SDK must not log private text`;已撤回 | | F2 记录 | 完成 | BUG-995;状态板改待验收;无 CHANGELOG | | F3 `frontend/AGENTS.md` | 完成 | 比用例名列表 diff,不比 `# tests` | 未改既有断言,无三栏。未跑 `next build`(只动测试与文档,不碰 `frontend/src`)。 ## 开工复现 本机 Windows 单跑该文件三次(改前)已经是 4 条 `default Mastra adapter` / `# tests 33`,没有复现任务书在 Linux 主检出上看到的 1/4。仍按 D2 做透传:全仓只有这一处接管 `process.stdout.write`,且变异证明失败报告现在带用例名。 ## 变异输出片段(已撤回,未提交) `invalid_schema`: ``` # Subtest: default Mastra adapter protects privacy and usage on invalid_schema not ok 21 - default Mastra adapter protects privacy and usage on invalid_schema PROBE ``` `bad_json`: ``` # Subtest: default Mastra adapter protects privacy and usage on bad_json not ok 22 - default Mastra adapter protects privacy and usage on bad_json PROBE ``` 隐私探针(`process.stdout.write(sentinel)`):exit 1,`# fail 3`,三条均含 `SDK must not log private text`。 ## 测试 | 项 | 结果 | | --- | --- | | `tsc --noEmit` | 0 错 | | `npm run lint` | 0 error / 119 warning | | 单文件 ×3(改后) | 每次 33 / 0 fail / Mastra `ok` 4 | | 全量 `npm test` 本机 | `# tests 3603` / `# pass 3514` / `# fail 89`;Mastra `ok` 4。89 条为 Windows Docker/symlink/shell 既有缺口,与本单无关;Linux 门禁以推送后 run 为准 | | `npm run build` | 未跑(本单不碰 `frontend/src`) | ## 环境缺口 本机全量三次无法当作门禁证据:与基线相同量级的 89 条 Windows 失败(Docker 网段、symlink、chmod、shell)。本单验收看 Gitea `backend-quality-gate` 的该文件 TAP 与全量绿盘。