docs: record Claude acceptance of 1420471a (BUG-1015..1019 resolved)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
1420471ab1
commit
7da2e6ca8e
+10
-10
@@ -13476,7 +13476,7 @@
|
||||
|
||||
## BUG-1015 | 次级页「新建对话」没有新建意图,回首页打开旧对话
|
||||
|
||||
- 状态:blocked(本地修复及针对性回归通过;完整构建、部署与受控真人走查未完成,不提前标 resolved)
|
||||
- 状态:resolved(Claude 2026-09-24 于 Linux/Node 20 独立验收 `1420471a`:tsc 0 错、lint 0 error、全量 3807 条 / 56 红与改前基线(8902e484)失败名单逐条相同、`next build --webpack` 四路由标记与基线一致(`/` `/chart` `/ephemeris` ○,`/reports*` ƒ)、首屏 gzip 130,932 B 与基线相同;staging `/api/health` `deployment.gitCommit = 1420471a`;真机清单 `docs/testing/secondary-new-chat-20260923.md` 由产品走)
|
||||
- 首次发现:2026-09-23
|
||||
- 最近更新:2026-09-23
|
||||
- 影响面:星盘、星历、报告列表及详情页的只读侧栏新建入口与首页启动落点。
|
||||
@@ -13488,11 +13488,11 @@
|
||||
- 防复发:保持 BUG-744 单侧栏、BUG-745/927 共享外壳、BUG-989 首问前不落库/不写 c/列表无 draft;新增优先级、参数消费、激活顺序、本地创建与 reserved 恢复冲突测试。原合同只锁导航方式及无参数默认落点,没有连接“新建”意图,故未拦住本次问题;既有断言未删除或弱化。
|
||||
- 相关记录:BUG-744、BUG-745、BUG-927、BUG-989、BUG-705、BUG-995;`TASK-secondary-new-chat-intent-20260923.md`(D7 为本轮追加授权)。
|
||||
- 复发自:无;与 BUG-745 同入口但不同根因。
|
||||
- 修复版本:本次提交(执行分支 `codex/secondary-new-chat-intent-20260923`,基线 `1c95eb397`);2026-09-24 产品授权推 staging 供远程 review,精确 SHA 以实际推送及远端核对为准,部署尚待核验。
|
||||
- 修复版本:`8902e484`(含于 `1420471a`,staging 已部署、health 核对一致)
|
||||
|
||||
## BUG-1018 | 报告列表元信息直接显示英文深度与主题 id
|
||||
|
||||
- 状态:blocked(本地针对性回归通过;受控登录与部署未验证,不预写 resolved)
|
||||
- 状态:resolved(Claude 2026-09-24 于 Linux/Node 20 独立验收 `1420471a`:tsc 0 错、lint 0 error、全量 3807 条 / 56 红与改前基线(8902e484)失败名单逐条相同、`next build --webpack` 四路由标记与基线一致(`/` `/chart` `/ephemeris` ○,`/reports*` ƒ)、首屏 gzip 130,932 B 与基线相同;staging `/api/health` `deployment.gitCommit = 1420471a`;红线核对:无 `window.confirm` / 剪贴板、旧「导出报告(.md)」0 命中、下载只走 `downloadMarkdownReport`、抽屉零 fetch、新增断点只有 860;D5 逐字节锁与 `ordinaryOutputLeaks` 为空由 `report-export-blocks.test.ts` 锁住;真机清单 `docs/testing/report-chapter-export-20260924.md` 由产品走)
|
||||
- 首次发现 / 最近更新:2026-09-24。
|
||||
- 现象 / 触发:打开有报告的列表,元信息出现 standard、career 等内部 id,日期未按产品要求中文全写。
|
||||
- 根因:`rowMeta` 直接拼 `report.depth` 与 `report.themes`;已存在主题中文映射但此入口未复用,深度映射缺失。旧入口测试只锁状态 / 导出路径,没有执行元信息 formatter。
|
||||
@@ -13500,11 +13500,11 @@
|
||||
- 验证:真实 formatter 回归覆盖 standard / career、未知 id、空主题及无效日期;真实组件挂载显示中文。定向测试、类型与独立浏览器证据由本轮进度汇总,未以源码断言冒充真人。
|
||||
- 防复发:新增 `report-row-delete.test.tsx` 的元信息执行测试;既有报告 API 日期投影、列表 cardSummary 合同保留。
|
||||
- 关联:BUG-352(日期序列化 / 失败码)、BUG-574(列表字段查询);不是这两项复发,本轮不改路由。
|
||||
- 修复版本:未提交,`codex/report-chapter-export-20260924`,固定基线 `5ff43b47f`。
|
||||
- 修复版本:`1420471a`(staging 已部署、health 核对一致)
|
||||
|
||||
## BUG-1019 | 报告 DELETE 接口存在但列表没有删除入口
|
||||
|
||||
- 状态:blocked(客户端实现及针对性回归通过;真实持久化 / 部署未验证)
|
||||
- 状态:resolved(Claude 2026-09-24 于 Linux/Node 20 独立验收 `1420471a`:tsc 0 错、lint 0 error、全量 3807 条 / 56 红与改前基线(8902e484)失败名单逐条相同、`next build --webpack` 四路由标记与基线一致(`/` `/chart` `/ephemeris` ○,`/reports*` ƒ)、首屏 gzip 130,932 B 与基线相同;staging `/api/health` `deployment.gitCommit = 1420471a`;红线核对:无 `window.confirm` / 剪贴板、旧「导出报告(.md)」0 命中、下载只走 `downloadMarkdownReport`、抽屉零 fetch、新增断点只有 860;D5 逐字节锁与 `ordinaryOutputLeaks` 为空由 `report-export-blocks.test.ts` 锁住;真机清单 `docs/testing/report-chapter-export-20260924.md` 由产品走)
|
||||
- 首次发现 / 最近更新:2026-09-24。
|
||||
- 现象 / 触发:报告列表没有删除按钮,用户无法管理已完成、生成中或未完成记录。
|
||||
- 根因:owned DELETE API 已存在且有鉴权测试,但列表没有装配调用;旧测试只覆盖服务端删除,不检查用户可达入口。
|
||||
@@ -13512,7 +13512,7 @@
|
||||
- 验证:真实挂载覆盖取消不请求、HTTP / 网络失败保留、重复点击仅一个 DELETE、成功回调;整个 Center 挂载覆盖成功移除及旧 GET 返回仍不复活;独立 cache race 验证 reset / 新旧请求。服务端鉴权 / owned-delete 既有 API 回归保留;不声称受控账号删除持久化已验证。
|
||||
- 防复发:`report-row-delete.test.tsx` 动态交互与 race 锁;不用 window.confirm,不新增接口 / 数据库 / GET 字段。
|
||||
- 关联:BUG-154(报告列表入口)、BUG-574(列表查询);分块导出是功能变更另记 CHANGELOG,普通投影继续遵守 BUG-999 / 1003。
|
||||
- 修复版本:未提交,`codex/report-chapter-export-20260924`,固定基线 `5ff43b47f`。BUG-1016 / 1017 由并行星盘任务预留,本分支不抢号。
|
||||
- 修复版本:`1420471a`(staging 已部署、health 核对一致)
|
||||
|
||||
## BUG-1014 | 输入框源码合同未跟上已删除人物的发送限制
|
||||
|
||||
@@ -13532,7 +13532,7 @@
|
||||
|
||||
## BUG-1016 | 星盘主盘等待句没有超时与登录出口,缓存异常路径留空
|
||||
|
||||
- 状态:blocked(本地动态回归、独立审查、首轮组合全量对比及隔离Chrome通过;完整构建、受控真人与部署未验收,不提前标resolved)
|
||||
- 状态:resolved(Claude 2026-09-24 于 Linux/Node 20 独立验收 `1420471a`:tsc 0 错、lint 0 error、全量 3807 条 / 56 红与改前基线(8902e484)失败名单逐条相同、`next build --webpack` 四路由标记与基线一致(`/` `/chart` `/ephemeris` ○,`/reports*` ƒ)、首屏 gzip 130,932 B 与基线相同;staging `/api/health` `deployment.gitCommit = 1420471a`;红线核对:`chart-skeleton-breathe` 仅 CSS 一处声明一处引用、骨架只在 chart-page 组件、无 Python / 路由 / 并发改动;真机清单 `docs/testing/chart-page-skeleton-20260924.md` 由产品走)
|
||||
- 首次发现 / 最近更新:2026-09-24
|
||||
- 影响面:星盘首屏 hook、共享快照缓存、fetch JSON 读取、盘位等待渲染。
|
||||
- 现象 / 触发:请求不返回时一直显示等待句;401 跳转前仍为空;初始请求失败而缓存刚由其它路径补齐时 state 仍 null。
|
||||
@@ -13542,11 +13542,11 @@
|
||||
- 防复发:BUG-716 / 966「不得骨架」条款由 2026-09-24 D1 仅限星盘盘位推翻;其它页面、表格和 spinner 禁令不动。首屏共享期限从预取起计时,旧身份完成或异常不得覆盖新缓存,读响应体同样受期限约束。
|
||||
- 相关记录:BUG-715、716、717、723、966、996;TASK-chart-page-skeleton-wait-20260924。
|
||||
- 复发自:BUG-966 的同一等待链覆盖不足;旧测试仅检验静态壳、缓存与无动画,未模拟挂起请求和后到缓存。BUG-996 的账户指纹与旧响应防线保留并追加旧异常回归。
|
||||
- 修复版本:基线 5ff43b47f 上的本地工作树 codex/chart-page-skeleton-wait-20260924,未提交 / 未推送 / 未部署。
|
||||
- 修复版本:`1420471a`(staging 已部署、health 核对一致)
|
||||
|
||||
## BUG-1017 | 分盘与按需层失败仍永久显示等待句
|
||||
|
||||
- 状态:blocked(本地动态回归、独立审查、首轮组合全量对比及隔离Chrome通过;完整构建、受控真人 / 部署待验收)
|
||||
- 状态:resolved(Claude 2026-09-24 于 Linux/Node 20 独立验收 `1420471a`:tsc 0 错、lint 0 error、全量 3807 条 / 56 红与改前基线(8902e484)失败名单逐条相同、`next build --webpack` 四路由标记与基线一致(`/` `/chart` `/ephemeris` ○,`/reports*` ƒ)、首屏 gzip 130,932 B 与基线相同;staging `/api/health` `deployment.gitCommit = 1420471a`;红线核对:`chart-skeleton-breathe` 仅 CSS 一处声明一处引用、骨架只在 chart-page 组件、无 Python / 路由 / 并发改动;真机清单 `docs/testing/chart-page-skeleton-20260924.md` 由产品走)
|
||||
- 首次发现 / 最近更新:2026-09-24
|
||||
- 影响面:星盘 varga、Chara、西洋、七政按需数据与失败投影。
|
||||
- 现象 / 触发:引擎忙、按需请求失败或抛错后 pending 清除,却无失败出口;分盘一直「这一分盘还没拿到」。
|
||||
@@ -13556,7 +13556,7 @@
|
||||
- 防复发:层失败不能经 null 投影丢失;只有完整成功层可进入 loaded;失败不自动重试,显式点原 Tab/chip 重试,不增加入口。BUG-715/723 的429独立档及 BUG-717 按需、并发红线保留。
|
||||
- 相关记录:BUG-715、716、717、723、966、996、1016。
|
||||
- 复发自:BUG-715/723 的失败分档未覆盖按需层投影与组件出口;旧测试仅验主盘错误和端点不可用说明,未串联真实 busy 层响应到 hook。
|
||||
- 修复版本:基线 5ff43b47f 上本地工作树,未提交 / 未推送 / 未部署。
|
||||
- 修复版本:`1420471a`(staging 已部署、health 核对一致)
|
||||
|
||||
## BUG-1020 | CRLF 普通报告下载保留图盘 JSON 围栏
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-secondary-new-chat-intent-20260923.md` | `PROGRESS-secondary-new-chat-intent-20260923.md` | **次级页「新建对话」落到最近一次对话**:`/chart` `/ephemeris` `/reports` 的侧栏没有 `controls`,「新建对话」只是 `href="/"` 的回首页链接;首页无参启动的落点是 `nextSessions[0]`(最近更新那条),只有最近一条是校正会话才改落空咨询。BUG-745 修过同一入口的「慢」,没修「回到哪」。产品 09-23 拍板:链接改 `/?new=1`,首页看到 `new` 就本地建空咨询并 `replaceState` 抹掉参数;`new` 胜过 `c` 与登录返回存根;沿用 BUG-989 不落库不写 `?c=`;页脚与品牌行的 `/` 不改;刷新无参 `/` 仍落最近对话属既有设计。红线:`/` 保持 Static、不得用 `useSearchParams`;解析与生成只在 `chat-session-url.ts` 一处。BUG-1015;执行中追加 D7:保留旧任务恢复但不抢新建落点。 | 待验收(本地定向通过;构建/真人缺口) | 本次提交(`codex/secondary-new-chat-intent-20260923`);09-24 授权推 staging 供 review,远端 SHA 以交付回报为准,部署待核验 |
|
||||
| `TASK-secondary-new-chat-intent-20260923.md` | `PROGRESS-secondary-new-chat-intent-20260923.md` | **次级页「新建对话」落到最近一次对话**:`/chart` `/ephemeris` `/reports` 的侧栏没有 `controls`,「新建对话」只是 `href="/"` 的回首页链接;首页无参启动的落点是 `nextSessions[0]`(最近更新那条),只有最近一条是校正会话才改落空咨询。BUG-745 修过同一入口的「慢」,没修「回到哪」。产品 09-23 拍板:链接改 `/?new=1`,首页看到 `new` 就本地建空咨询并 `replaceState` 抹掉参数;`new` 胜过 `c` 与登录返回存根;沿用 BUG-989 不落库不写 `?c=`;页脚与品牌行的 `/` 不改;刷新无参 `/` 仍落最近对话属既有设计。红线:`/` 保持 Static、不得用 `useSearchParams`;解析与生成只在 `chat-session-url.ts` 一处。BUG-1015;执行中追加 D7:保留旧任务恢复但不抢新建落点。 | 已验收(Claude 09-24:tsc/lint/95 定向/全量失败名单同基线/Static/gzip 同基线;BUG-1015 resolved) | `8902e484`,含于已部署 `1420471a`;真机清单欠 |
|
||||
| `TASK-chat-message-authority-20260901.md` | — | 消息服务端权威化 | 已验收 | `b6989c3e`(BUG-464) |
|
||||
| `TASK-session-url-20260901.md` | — | 会话 URL 化 | 已验收 | `924f4202` |
|
||||
| `TASK-cloud-truth-convergence-20260901.md` | — | 本地/云端双份真相收敛 | 已验收 | `ce6a8a7e`(BUG-466) |
|
||||
@@ -171,7 +171,7 @@
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-report-chapter-export-fix-20260924.md` | `PROGRESS-report-chapter-export-20260924.md` | **CRLF图盘JSON残留(BUG-1020)**:旧剥离器只匹配LF;建议D5对错误围栏残留作有限例外,D13不构成该授权。 | 待裁决(blocked,未执行) | 组合候选未提交 |
|
||||
| `TASK-report-chapter-export-20260924.md` | `PROGRESS-report-chapter-export-20260924.md` | **我的报告:分块导出 + 中文元信息 / 状态色 / 行内确认删除(BUG-1018/1019)**。旧整篇按钮由抽屉取代;常用 / 全部正文保持 D5 逐字节,所有组全选另附盘和核对表。后续产品裁决 D13:分盘必须带安全 SVG,有限替代原无 SVG 约束;JSON 围栏及内部字段仍禁。原生底部 dialog、760px、70%、860 两列、零额外请求、保留打印 / 原始附录。 | 待验收(CRLF合同未通过;完整构建 / 受控真机缺口) | 已整合 `codex/chart-report-integration-20260924`,未提交 / 未部署 |
|
||||
| `TASK-report-chapter-export-20260924.md` | `PROGRESS-report-chapter-export-20260924.md` | **我的报告:分块导出 + 中文元信息 / 状态色 / 行内确认删除(BUG-1018/1019)**。旧整篇按钮由抽屉取代;常用 / 全部正文保持 D5 逐字节,所有组全选另附盘和核对表。后续产品裁决 D13:分盘必须带安全 SVG,有限替代原无 SVG 约束;JSON 围栏及内部字段仍禁。原生底部 dialog、760px、70%、860 两列、零额外请求、保留打印 / 原始附录。 | 已验收(Claude 09-24:同上;D13 SVG 与列表页删导出按钮均按产品口径;BUG-1018/1019 resolved;CRLF 见 fix 单) | `1420471a`(staging 已部署);真机清单欠 |
|
||||
| `TASK-report-density-20260922.md` | `PROGRESS-report-density-20260922.md` | **报告信息密度与原始附录(BUG-1003~1007)**:与源头仓 PL9 全量报告同资料实测:对照 847,632 字符 / 8,044 表格行,我方 309,357 / 1,478。缺口不在引擎——20 张分盘全表、KP 四表、Ashtakavarga 四类、Shadbala 六分量、Avastha、Sahams、年度都已算得出,但 `personal-report-contract.ts` 的 `REPORT_SECTION_KINDS` **没有表格类型**、`CHART_IDS` 只有 9 种,这些表在产品页报告里没有落脚字段。另测出对外原始附录泄漏 925 种 / 3,797 处工程标识符(`parameter_sensitive` 697、`cmd_full_reading` 68、`PyJHora`/`JHora` 35、`PL9` 页码 59),对照物同项为 0。**产品 2026-09-22 三点拍板**:层 1 按 8 组表 + 分盘扩到 16 张;层 2 原始附录直接给 C 端且先全显示;B 类大运族要显示。**决策记录已写明推翻 BUG-999 的两条红线**(专业参考不得作普通下载 fallback;`parameter_sensitive`/「参数敏感」命中整行剔除)——**仅限附录通道**,普通正文投影不动。硬红线:表格层服务端装配、writer 不得写表;对照物的替代大运族日期与 Shadbala 分量在源头仍未闭环(506 行 date mismatch、`production_tuning_allowed=false`),不得照搬升级。让步顺序与串行依赖(任务 3 → 任务 4 同改契约)见任务书 | **验收未通过**(2026-09-23):任务 1/2/4/5 通过;任务 3 事实表在普通报告里显示 447 个引擎键路径(P1);隐私门新增失败(任务书自身写入真实出生资料 BUG-1008 已清 HEAD,fixture 数值碰撞待登记);当时 BUG-1003~1007、PROGRESS、testing 清单缺失;F3 现已补前两项,testing 新建受工具边界阻塞仍缺。Node 22 前端 0 新增失败、`/` Static、gzip +0.007% | 实现 `bbd96d3b`(原 `f968cb21`,09-23 为清除 BUG-1008 重写历史;已在 staging,未部署);修复单 `TASK-report-density-fix-20260923.md` |
|
||||
| `TASK-report-density-fix-20260923.md` | `PROGRESS-report-density-20260922.md` | **报告密度验收修复单(BUG-1009/1010 + 补写 1003~1007)**:F1 事实表改成真正的表(逐组规定列,普通报告可见格 0 个引擎键 / 0 个下标 / 最多 2 位小数,`sourcePath` 保留供回查;主运年数不得填出生剩余年数);F2 按既有机制登记 fixture 的数值碰撞(已独立重跑确认是虚构输入);F3 补 Bug 历史 / PROGRESS / 真人清单并更正「未提交推送」;F4 两份清洗规则只留一份(Python 版漏第三方页码);F5 writer 写表拦截补测试与提示;F6 事实表可打印。硬红线:不得弱化隐私扫描、不得强推或重写 staging(历史清除由产品负责人决定);Sade Sati 三轮日期是原任务书错误、不在本单 | **已验收,F1–F6 全部通过**(2026-09-23,`a12f2c0d`):事实表 130 行 / 600 格 0 引擎键 0 下标、主运年数 18、隐私门转绿、两份规则逐字节一致、写表拦截变异测试红→绿;Node 22 前端 3,748 / 26(名单与基线一致)、Python 948/0。剩数据库测试 E2BIG 另开 fix2(BUG-1011) | `a12f2c0d`(门禁 run 6294 红,未部署);真人清单 `docs/testing/report-density-20260922.md` |
|
||||
| `TASK-report-density-fix2-20260923.md` | `PROGRESS-report-density-fix2-20260923.md` | **快照数据库测试无法启动(BUG-1011)——staging 恢复部署前的唯一阻塞**:门禁 run 2857 为 3,762 / 1 fail,唯一失败即此。测试把 428,557 字节 SQL 作为单个 psql 参数,超过 Linux 131,072 上限 → `E2BIG`。**09-23 更正做法**:不得改共享 `psql`/`psqlAs`(29 文件 522 次调用依赖 `-c` 单事务语义,`selectAsAuthenticated` 的事务内 `set_config` 会失效);新增单事务 + 标准输入 + 显式 `maxBuffer` 的专用函数,只给本测试用。修通后若真实断言失败是产品缺陷,不得改断言 | **已验收并部署 staging** | `018b2b48`;run 2858 / validate 6349:3,764/3,764、0 fail/skip,名称无删除新增2;47个DB名称全过。migrate 2859、deploy 2860 成功,health 双 SHA 已核对;本机 Docker/Windows 缺口见 PROGRESS |
|
||||
@@ -196,7 +196,7 @@
|
||||
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-chart-page-skeleton-wait-20260924.md` | `PROGRESS-chart-page-skeleton-wait-20260924.md` | **星盘页骨架盘等待态 + 三个「永远还没拿到」死角**:「这一张盘还没拿到。」只代表 `view === null`,是唯一等待态,失败各有句子;但客户端无超时(A)、401 跳转前(B)、分盘层失败 / 429 后 `ChartVedicTab` 只看 `!selected` 不看 pending(C)三条路都让这句永远挂着。**产品 09-24 拍板推翻 09-18 方案一(BUG-966)**:星盘页盘位用骨架盘 + 呼吸动效(复用 `VedicChartSvg` 空模型,不复制几何;`prefers-reduced-motion` 静止),范围只限星盘页会出盘轮的位置,首页 / 侧栏 / 星历 / 报告的「不放骨架」合同不动;`AGENTS.md` §6 与 `DESIGN.md` §9 / §15 追加例外。三死角出口:客户端 25s 超时 → `timedOut` 句、401 先写失败体、按层失败态 `layerFailures`(429 独立档,BUG-715/723)。BUG-1016 / 1017 | 待验收(独立审查、隔离Chrome、全量对比完成;完整构建及受控真机缺口) | 已整合 `codex/chart-report-integration-20260924`,未提交 / 未推送 |
|
||||
| `TASK-chart-page-skeleton-wait-20260924.md` | `PROGRESS-chart-page-skeleton-wait-20260924.md` | **星盘页骨架盘等待态 + 三个「永远还没拿到」死角**:「这一张盘还没拿到。」只代表 `view === null`,是唯一等待态,失败各有句子;但客户端无超时(A)、401 跳转前(B)、分盘层失败 / 429 后 `ChartVedicTab` 只看 `!selected` 不看 pending(C)三条路都让这句永远挂着。**产品 09-24 拍板推翻 09-18 方案一(BUG-966)**:星盘页盘位用骨架盘 + 呼吸动效(复用 `VedicChartSvg` 空模型,不复制几何;`prefers-reduced-motion` 静止),范围只限星盘页会出盘轮的位置,首页 / 侧栏 / 星历 / 报告的「不放骨架」合同不动;`AGENTS.md` §6 与 `DESIGN.md` §9 / §15 追加例外。三死角出口:客户端 25s 超时 → `timedOut` 句、401 先写失败体、按层失败态 `layerFailures`(429 独立档,BUG-715/723)。BUG-1016 / 1017 | 已验收(Claude 09-24:红线全绿、+46 测试、失败名单同基线、四路由标记与 gzip 同基线;BUG-1016/1017 resolved) | `1420471a`(staging 已部署);真机清单欠 |
|
||||
| `TASK-smalltalk-test-stdout-mock-20260921.md` | `PROGRESS-smalltalk-test-stdout-mock-20260921.md` | **测试基础设施(BUG-995)**:`consultation-smalltalk.test.ts` 为验证「SDK 不得把私密文本写进日志」,用 `t.mock.method(process.stdout/stderr, "write", …)` 全局接管标准输出——而 `node:test` 的 TAP 报告也走 `process.stdout`,于是运行器自己的 `# Subtest:` / `ok` 行被吞进测试的 `logs` 数组。实测四次全量:`default Mastra adapter` 四条用例只上报 4 / 2 / 1 / 1 条(`Subtest` 声明本身就少,不是 grep 锚点问题),`# tests` 因此 ±3 抖;单跑该文件 33 条静态展开只报 30 条,仅循环最后一个 `provider_error` 稳定可见。**更要紧**:注入必失败探针后,`invalid_schema` / `bad_json` 只剩一行 `not ok 1 - <文件绝对路径>`,**没有用例名、没有断言消息**(退出码仍是 1,门禁不会漏掉失败,不夸大)。定位 BUG-987 时靠的就是从门禁日志 grep `not ok` 抓用例名,红在这三条上那条路会断。**决策**:mock 改为记录后**透传给原始 `write`**(保留隐私断言,不换报告通道,不改 `npm test` 脚本);F3 把「比用例名列表 diff、不比 `# tests` 总数」写进 `frontend/AGENTS.md`。全仓只此一个文件用了这个手法(已 grep 确认)| 待验收 | `2503c019` |
|
||||
| `TASK-frontend-optimization-20260828.md` | `PROGRESS-frontend-optimization-20260828.md` | 前端优化九条 | 待核对 | 分支 `codex/frontend-optimization-20260828` |
|
||||
| `TASK-frontend-followup-20260829.md` | `PROGRESS-frontend-followup-20260829.md` | 九条收尾 | 待核对 | — |
|
||||
|
||||
Reference in New Issue
Block a user