Local Postgres not() only handled eq/cs, so archived=1 threw and the sidebar archive view returned 500. Compile is not null/true/false instead of inequality.
31 lines
1.7 KiB
Markdown
31 lines
1.7 KiB
Markdown
# PROGRESS · 会话列表重建验收修复单(2026-09-21)
|
||
|
||
工作树:`.worktrees/session-list-rebuild-fix-20260921`
|
||
分支:`codex/session-list-rebuild-fix-20260921`
|
||
基线:`origin/staging` @ `70d595e3`(修复单;代码基线 `e71e4f92`)
|
||
|
||
## 任务状态
|
||
|
||
| 任务 | 状态 | 说明 |
|
||
| --- | --- | --- |
|
||
| F1 兼容层 `not(col,"is",…)` BUG-990 | 完成(实现) | `isNot` → `is not null/true/false`;未改 `applyArchiveFilter` |
|
||
| F2 归档空咨询 fixture | 完成 | 归档视图不返回已归档的空咨询;两视图互斥且对上 `cloudListIncludesSession` |
|
||
| F3 记录 | 完成 | BUG-990 先标 investigating,等 `test:db` 或门禁转绿再 resolved |
|
||
|
||
## 实现要点
|
||
|
||
- `LocalPostgresQueryBuilder.not()` 增加 `operator === "is"`,新 filter kind `isNot`。
|
||
- `compileUnaryIsClause` 编译 `is [not] null|true|false`;其余取值 throw。不走 `<>`。
|
||
- `database-session-list-visibility.test.ts` 原断言保留,另加已归档空咨询一行。
|
||
|
||
## 测试
|
||
|
||
| 项 | 结果 |
|
||
| --- | --- |
|
||
| `tsc --noEmit` | 0 错 |
|
||
| `npm run lint` | 0 error / **119 warning**(未增) |
|
||
| 定向 | `local-postgres-not` / `local-postgres-or` / `chat-session-authority` / `session-list-filter` 通过 |
|
||
| `npm test` | **3600** 条,**3512** 通过 / **88** 失败。较本机上次 `e71e4f92` 全量(3598 / 3509 / 89)净增 2 绿(`local-postgres-not` 两条)。失败仍是本机 Windows Docker 网段 + symlink/chmod/脚本,不是本单新逻辑。 |
|
||
| `npm run test:db` | Docker 网段耗尽,**未跑通**。见 `BLOCKED.md`。BUG-990 保持 investigating,最终验证交给门禁。 |
|
||
| `next build` | 本轮未跑(Windows skill symlink EPERM 已知缺口,与本单无关) |
|