复审 p2-1items(tip cc6904b)要求的三处,逐条: 1) SQL 双引号改单引号(唯一返工项): - preinsert_store.go 的 revertMergedSQL:`merged_into = ""` → `''`。今天功能等价, 但靠的是 SQLite「双引号标识符解析不到 ⇒ 回退成字符串字面量」的 legacy 行为; 这是一条**改数据**的语句,还被 RevertMerged 与整理侧回滚共用,不该依赖回退。 - retention_migration_test.go 的 `WHERE retention_tier = ""` 一并统一成 `''`, 并在原位留下「为什么」。 2) 两处过期注释: - retention_schema.go:「反过来(先自举、后迁移)也成立」是**假结论**,改为 「生产顺序成立;反向顺序在 0019 处即失败(duplicate column name: status,既有问题)」。 - store.go 的 ExpiresAt:「本字段目前只写不读」已半过期(Add 现在会把最终落库 时刻回填到返回值),改成「读回语义是半开的」:Add 返回的条目有值,从库里读回的 恒为零值。 3) 人工路径(塔裁定「人工动作默认应为 long」):包内的 `RememberManual`(「记住 X」) 显式钉 `RetentionTier = long`,留存规则因此不许把人工明确要求记住的东西降成临时层 (extract_test.go 加断言)。面板网关那条(adminAddMemory 直调 Add、不传档位) 按塔的口径不在本片、留给后续切片 —— 本片对它的唯一影响见回报。 不动(按塔的裁定):preinsert.go 514 行(dev 既有 tech debt)、 design/03 §10.5 与 design/23 §18 的章节(塔的账)、gateway 人工路径。 回归:go build ./... + go vet ./... + go test -count=1 ./internal/runtime/memory/... ./internal/db/... 全绿,内存包 -race 亦绿。
- 只翻注释/文档字符串:820 增 / 820 删 严格 1:1;剥掉整行注释与行尾注释尾巴后, 逐文件与 HEAD 比对「代码部分差异 = 0」;裁决/design 编号计数逐项与 HEAD 一致 - 保留可执行 SQL 样例、SQLite 报错原文、pgvector/HNSW/ANN/BLOB 等技术词原文 - 复核:go build 绿 + memory/projectindex/vector 三包测试绿;gofmt 仅剩 2 个既有未格式化文件(改动前即如此,未顺手修)