目录

v0.5.30:写入目标、向量覆盖与同步修复

在 GitHub 上查看源文件

本补丁版本发布 #398 至 #407。

  • 记忆写入 mnemon_remember 指定的空间(#405,issue #387)。
    • 之前:写入任务 Agent 把指定的记忆空间当作首选,可能写进描述更贴切的另一个空间,还会把它重新激活。
    • 现在:Host 在写入任务 Agent 启动前检查指定的空间,并用守卫把每一次写入和关联限制在这个空间。不存在、Provider 已关闭、不接受写入或未激活的空间会立即失败并说明原因。
    • 没有指定空间的写入不再激活任何空间,存入记忆也不会合并空间。
    • 结果中的 memoryBodyIds 取自 Source 回执。
    • 运行结束的写入任务 Agent 被 DSH 0.2.1 恢复后也不能再写入。
  • 每个记忆空间的向量(#399,issue #392)。
    • 之前:Mnemon Native 嵌入设置里的测试状态只统计 Mnemon 的一个默认 Store,可能显示 100%,而另一个空间缺少向量。
    • 现在:它列出每个 Native 空间及其数字,缺少向量的空间可以用补齐生成。补齐经由 Host 进行,使用 DSH 的存储根目录与嵌入设置,分步执行,期间其他记忆操作照常进行;完成后说明补齐了多少、还缺多少,或者嵌入服务没有返回向量。
  • 未生成向量的记忆会说明(#406,issue #388)。嵌入没有成功时,/mnemon remember、「存入记忆」与 mnemon_remember 的结果会加一行或附上提示:在「测试状态」中补齐向量之前,这条记忆不参与语义匹配。
  • Git 同步不再多出记忆空间副本(#398,issue #391)。合并空间会改写其中关联的值,补齐向量或保留记忆会改写记忆的更新时间;这些差异曾让下一次同步把分支上的版本另存为一个已激活的空间,现在不再参与比较。
  • Git 同步与未跟踪的文件(#401,issue #396)。同步镜像中遗留的 SQLite -wal 与 -shm 文件不再让每次同步和备份失败;*.db 这样的全局忽略规则也不再把数据库排除在分支之外。
  • 从 0.5.28 更新后的第一次同步(#404,issue #385)不再把上次同步后编辑过的项目档案变成两份。
  • 超出回合预算的召回(#402,issue #389)。同一回合第三次不同的召回不再执行,并说明这一点(notRun、budgetExhausted),而不是用上一次查询的证据作答。关联遍历与项目档案搜索也一样;/mnemon recall 与 /mnemon related 会说明查询没有运行。
  • 工具回答不再读成「什么都没有」(#407,issue #390)。
    • 被拒绝的 View id 会指向应当使用的工具或完整 id;被拒绝的遗忘会说明空间为何不可达。
    • 召回、项目档案搜索与关联遍历说明各自搜索什么。
    • 写入项目档案只返回写入的那份档案,不再带全部档案及其路径;状态合计说明统计范围。
    • 接口参考新增模型工具与 Mnemon CLI 命令的对照表。
  • 第二个运行时 Source(#400,issue #397)。Profile 在 Starter 的运行时 Source 旁挂载第二个时,mnemon_runtime_memory 恢复正常。
  • 委派任务带有固定的第一行(#403,issue #393),例如 [dsh-mnemon:delegated review],读取子会话的插件可据此区分 dsh-mnemon 的任务与用户的请求。

升级与兼容性

从 v0.5.22 可使用记忆系统 → 状态 → 检查版本 → 更新,完成后重启 DSH。安装精确版本:

sh
dsh plugin --profile web add dsh-mnemon@0.5.30

安装后重启正在运行的 DSH。新安装可在插件页选择立即启用。明确版本可避免 pnpm 发布后 24 小时的等待窗口选中较早版本。较早的桌面安装升级方式见兼容性与升级。

如果 Profile 独立维护记忆空间或分层策略,也请更新这些副本(dsh-mnemon-source-memory-spaces@0.5.20、dsh-mnemon-strategy-default-three-tier@0.5.9),或移除副本并使用 Starter 自带的组件。Starter 会自动锁定新版本。

无需迁移已有记忆。以下行为有意改变:

  • 同步同一仓库的每台机器都需要更新到本版本。 仍在较早版本的机器会继续自行添加记忆空间副本。较早版本产生的副本保持原样。
  • 缺少记忆空间数据库的分支,在每台机器上仍无法通过同步校验。 较早版本在 *.db 这样的全局忽略规则下可能发布这样的分支。请在远端删除该分支,或在高级中选择另一个目录,然后同步一次,发布完整的内容。
  • 写入指定了未激活的空间时。 模型指定未激活的空间会得到一个错误,说明要先激活它。用户在记忆空间页上选中的未激活空间,仍会随写入一起激活。所有空间都未激活时,/mnemon remember 与「存入记忆」不会保存任何内容,除非写入任务 Agent 新建一个空间。
  • 委派任务的第一行。 第一行现在是委派标记行,任务本身从第二行开始。原先在消息开头匹配空闲审查 Bounded completed checkpoint … 标题的读取方,应改为匹配新的第一行。

支持的宿主为 DSH 0.2.0-rc.2;下列检查也在 DSH 0.2.1-alpha.2 上通过。完整 Profile 使用 Node ^22.19.0 || >=24.0.0。插件 peer 下限及锁定的外部依赖版本不变。

变更的包

包 之前 现在
dsh-mnemon 0.5.29 0.5.30
dsh-mnemon-source-memory-spaces 0.5.19 0.5.20
dsh-mnemon-strategy-default-three-tier 0.5.8 0.5.9

其余 15 个组件版本不变。

验证

发布验收在全新的 DSH 0.2.0-rc.2 与 0.2.1-alpha.2 宿主上通过添加插件安装三个变更的包,检查状态页、运行时记忆、Native 空间与 CLI 和 WebUI 检索、实体页与检查版本,并更新一个 v0.5.29 安装。合并后的代码通过完整工作区校验,包括 2,000 项主包测试;在 DSH 0.2.0-rc.2 与 0.2.1-alpha.2 上,各通过 64 项使用两个宿主与临时 bare 仓库的真实 Git 同步检查。

各项改动另有前后对比记录:

发布流程会在创建 GitHub Release 前验证完整的锁定组合、Registry 安装及一次真实升级。

上一版本:v0.5.29。