docs(memory): 修正三处仍把已删 CAS 当活的注释

9f7d91c2 删掉了 media.Store,但有三处注释还在说"向量存在 media.Store 里"、
"直接用于 media.Store 的稠密余弦检索"——留着会让读者以为那个包还在。

- internal/memory/vector/store.go:多模态稠密空间现用于**媒体块自带向量**的
  余弦召回,不再经 media.Store。
- internal/knowledge/knowledge.go:MediaRef 注释澄清字节作为条目自带数据
  落在条目目录的 File 上(Digest 只是内容派生身份,同内存无第二份)。
- internal/memory/migrate_blockdata.go:resolver 由调用方提供(迁移命令直读
  旧 CAS 冻结布局),sha256 校验也在那一侧做,不在这里重复。

纯注释,无行为变更。全仓生产编译 GREEN;memory/knowledge/vector 包测试通过。
This commit is contained in:
JianFeeeee
2026-10-12 16:55:40 +08:00
parent c620694084
commit 937164e515
3 changed files with 10 additions and 12 deletions

View File

@ -52,7 +52,8 @@ func (g *GraphDB) CountBlockDataBackfillCandidates() (int, error) {
// BackfillBlockData 把块负载从旧 CAS 回填到 data 列。
//
// resolve 按 payload_digest 取字节(通常包一层 media.Store.Get)。
// resolve 按 payload_digest 取字节(由调用方提供,如迁移命令直接读旧 CAS 的
// 冻结布局 blobs/<d[:2]>/<d[2:]>)。
// 单事务、全成功或全回滚。幂等:只处理 data 为空且 payload_digest 非空的块,
// 重复运行不会覆盖已回填的字节。
//
@ -60,9 +61,9 @@ func (g *GraphDB) CountBlockDataBackfillCandidates() (int, error) {
// 这是无法补救的既有数据损失(CAS 曾被清理过),不是迁移故障,不该阻断
// 其余块的回填。
//
// ★ 不校验「回填字节的 sha256 == payload_digest」:那是 CAS 的内部不变量,
// 已由 media.Store.Get 在读出时校验(见其 digest mismatch 检查)。这里
// 再算一次 sha256 对上万张图是纯浪费。
// ★ 不校验「回填字节的 sha256 == payload_digest」:那是旧 CAS 的不变量,
// 应由提供 resolve 的一方在读出时校验(homed-media-backfill 的 blobReader
// 就是这么做的)。这里再算一次 sha256 对上万张图是纯浪费。
func (g *GraphDB) BackfillBlockData(resolve BlockPayloadResolver) (BlockDataBackfillStats, error) {
var st BlockDataBackfillStats
if resolve == nil {

View File

@ -22,7 +22,7 @@ type Vectorizer interface {
// MultimodalEmbedder 是稠密多模态编码器的接口。
//
// 与 Vectorizer(稀疏词向量,供 TF-IDF/倒排检索)刻意区分:多模态模型产出的
// 是共享稠密空间,直接用于 media.Store 的稠密余弦检索,
// 是共享稠密空间,直接用于媒体块的稠密余弦召回(块自带向量),
// **不得**塞进文档/知识层的稀疏 vector.Store(会破坏倒排剪枝与 TF-IDF 语义)。
//
// 实现不限:可以是内嵌 ONNX,也可以是外部 HTTP 向量服务——