Independent Staging Quality Gate run 2683 唯一失败: database-consultation-session-capacity 期望 false:session_missing, 实际是 f:session_missing。夹具把 boolean::text 的 false 规范成 psql -A 的 f。 五处期望值对齐既有合同;无 Docker 源码合同锁住 false→f。
36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
# PROGRESS · staging 门禁容量合同 `false:` / `f:` 失配(2026-09-16)
|
||
|
||
工作树:`.worktrees/session-capacity-bool-assert-20260916`
|
||
分支:`codex/session-capacity-bool-assert-20260916`
|
||
基线:`origin/staging` @ `8cb1877e`(最近门禁路径 SHA `1e3570b4`,Gitea run `2683` failure)
|
||
修复提交:推送 `HEAD:staging` 后回填 40 位 SHA。
|
||
|
||
本机 Windows。无 Docker。未改生产 SQL、未改 `.gitea/workflows/**`、未 bump Skill、未动 `page.tsx`。
|
||
|
||
## 做了什么
|
||
|
||
- `database-consultation-session-capacity.test.ts` 五处期望值:`false:` → `f:`(`session_missing` / `invalid_question_message` / 三处 `session_full`)。`true:null` 与权限位 `true:f:f` 未动。
|
||
- `postgres-fixture.ts` 的 false→f 规范化保留,补一行说明:`boolean::text` 是 `false`,`psql -A` 是 `f`。
|
||
- `consultation-session-capacity.test.ts` 新增无 Docker 源码合同(BUG-739):夹具必须保留该 replace;真实库合同必须写 `f:`、禁止 `"false:session_*"`。
|
||
- Bug 历史 **BUG-739**,关联 BUG-732。
|
||
|
||
## 既有断言变更(AGENTS.md §7.3)
|
||
|
||
| 文件 | 原值 | 新值 | 原因 |
|
||
| --- | --- | --- | --- |
|
||
| `database-consultation-session-capacity.test.ts` 会话不存在 | `"false:session_missing"` | `"f:session_missing"` | `fixture.psql()` 把 `false` 规范成 `f`;CI 实测 actual 即此 |
|
||
| 同上,超长提问 | `"false:invalid_question_message"` | `"f:invalid_question_message"` | 同上,第一条炸后未跑到 |
|
||
| 同上,额度/物理/条数满员 ×3 | `"false:session_full"` | `"f:session_full"` | 同上 |
|
||
|
||
## 测试
|
||
|
||
| 命令 | 结果 |
|
||
| --- | --- |
|
||
| `./node_modules/.bin/tsc --noEmit` | 0 错 |
|
||
| `eslint --max-warnings 0` 本单三个测试文件 | 0 error / 0 warning |
|
||
| `npx tsx --test tests/consultation-session-capacity.test.ts` | **7 passed / 0 failed**(含新增 BUG-739 源码合同) |
|
||
| `npx tsx --test tests/database-consultation-session-capacity.test.ts` | **1 skipped**(`docker unavailable on this host`),不得写成通过 |
|
||
| `npm run test:db` | **blocked**:本机无 Docker |
|
||
|
||
门禁重跑证据写在推送之后。
|