docs(tasks): accept the report density fix and brief the database test repair
Acceptance of a12f2c0d against TASK-report-density-fix-20260923: F1 to F6
all pass. On the fixture the fact tables are 130 rows across 600 visible
cells with no engine key, no array index and no long decimal, and every
sourcePath resolves back into the packet. The first major period reads 18
years. Python and TS appendix cleaning are byte-identical. Removing the
writer table guard turns four of its six tests red. Under Node 22 the
frontend goes from 3,730 tests / 26 failing to 3,748 / 26 with an identical
list; the Python quick gate goes from 946 passed / 1 failed to 948 / 0.
One thing still fails: the database test for the report snapshot passes a
428,557-byte SQL string to psql as a single argument, past Linux's 131,072
byte limit, so it dies with E2BIG before reaching Postgres. The snapshot row
has never run against a real database. Recorded as BUG-1011 with a fix brief.
The real-person checklist the executor's tool refused to write is added here.
Privacy scan on this tree before push: zero findings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a12f2c0d26
commit
88e89e10d9
@@ -13425,3 +13425,19 @@
|
||||
- 相关记录:BUG-1008、BUG-1009;`TASK-report-density-fix-20260923.md` F2
|
||||
- 复发自:无;既有扫描正确触发,缺的是已核实碰撞的精确登记。
|
||||
- 修复版本:缺陷引入 `bbd96d3b`;F2 工作树修复待验证,未确认部署。
|
||||
|
||||
## BUG-1011 | 快照落库的数据库测试把 42 万字节 SQL 当一个命令行参数,Linux 上启动即失败
|
||||
|
||||
- 状态:investigating(根因已复现,修复待执行;数据库层从未真跑过)
|
||||
- 首次发现:2026-09-23
|
||||
- 最近更新:2026-09-23
|
||||
- 影响面:`frontend/tests/database-personal-report-sections.test.ts` 中报告密度快照一例;`backend-quality-gate` 的数据库测试步骤。生产写入走 RPC 请求体,不经命令行,不受影响。
|
||||
- 用户现象:无用户界面现象。门禁在含该测试的提交上变红;报告快照行在真实 Postgres 里的写入、幂等与越权隔离从未被验证。
|
||||
- 触发条件:在 Linux 上以 Docker 跑 `npm run test:db`(即门禁环境)。
|
||||
- 根因:`tests/helpers/postgres-fixture.ts` 的 `psql` / `psqlAs` 用 `psql -Atc <sql>` 把整段 SQL 作为单个 argv 元素传给 `docker compose exec`。该测试把整份快照(含 374,097 字节的附录 Markdown)内联进 SQL,单个参数 428,557 字节,超过 Linux 单参数上限 `MAX_ARG_STRLEN` 131,072 字节。验收时用同一段 SQL 以同样方式调用 `/bin/true`,稳定得到 `spawn E2BIG`。执行方两轮都因 Docker 地址池耗尽未跑数据库测试,验收机无 Docker,因此一直没暴露。
|
||||
- 修复:待执行,见 `TASK-report-density-fix2-20260923.md`。
|
||||
- 验证:待执行。
|
||||
- 防复发:数据库测试辅助函数不得把 SQL 放进命令行参数,一律经标准输入或文件传入;新增一条断言覆盖超过 131,072 字节的 SQL。
|
||||
- 相关记录:BUG-1005、BUG-1009
|
||||
- 复发自:无
|
||||
- 修复版本:—
|
||||
|
||||
Reference in New Issue
Block a user