# v0.4.4 — 修复思源锚点内容过期 发布日期:2026-11-01 思源里「我是谁」只显示 27 字,不是锚点本身短,而是镜像状态指向了旧的截断文档: - 本地 `锚/我是谁.md` 是 **2063 字节**(约 719 个中文字符),不是 2063 字; - 镜像状态里 `self` 的 hash 已更新,但 `docId` 还指向一篇 27 字的旧文档; - `syncAnchors` 看到 hash 相同就跳过了,导致思源一直停在旧内容。 ## 修复 - `syncAnchors` 现在每次都核对 hpath 对应的**实际思源文档 id**;状态里的 docId 与实际不一致时强制重建, 不再只信本地 hash; - 重建了「我是谁」锚点文档:思源正文现在约 710 字,覆盖完整锚点; - 其余三个锚点保持正常。 ## 说明:锚点长度是设计缺口 最初规划有**注入预算**(锚点渲染默认 ≤520 字、`memory_anchor` 读取 ≤1200 字、总注入 ≤4000 字), 但没有对**锚点文件本身**做长度上限或压缩生命周期;`writeAnchorSafe` 只做版本递增/追加。 所以「我是谁」会随着夜梦不断追加「卷·日期」,越写越长——这是当时没有补上的部分,不是迁移造成的。 ## 升级 拉取后重启 DSH;镜像状态会在下一次同步时核对 docId。若想立刻刷新,发一次 `/cyrene 同步`。 ## 验证 - 202 项测试通过;`npm run check` 生成一致。 - 思源 SQL 核对:「我是谁」正文块合计约 710 字。