v0.5.30:写入目标、向量覆盖与同步修复
- 记忆写入
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 同步检查。
各项改动另有前后对比记录:
- 写入指定的记忆空间与未生成向量的记忆
- 每个记忆空间的向量覆盖率
- 合并之后的记忆空间副本、同步镜像中未跟踪的文件与从 0.5.28 更新后的第一次同步
- 超出回合预算的召回与工具回答
- 第二个运行时 Source与委派任务的第一行
发布流程会在创建 GitHub Release 前验证完整的锁定组合、Registry 安装及一次真实升级。
上一版本:v0.5.29。