Skip to content

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 10:24
· 1 commit to main since this release

Added

日记:第二套记忆。 新增 diary_read / diary_write,正文落在 <DSH_HOME>/diary/YYYY-MM-DD.md。

记忆与日记的差别不在存储,在写的时候记什么:记忆记「从中得出了什么」(准入判据是有用性),日记记「今天发生了什么」(没有准入判据)。memory_save 那套判据对「他说手麻了」这类经历本来就失效——那不是事实,是经历。

  • 一天一个文件,按 ## HH:MM 分段;同日多场对话是追加,不覆盖。
  • 日记正文不经过 ctx.storage:那条路是 writer per process and last-write-wins,日记不该被另一个实例的「读—改—写」周期吃掉。
  • 不参与检索、不占常驻注入预算;注入里只有一行指针(目录 + 最近日期)。
  • 指针在距上次写日记超过 6 小时后附带一句提醒,同一次挂载只出现一次。

Config schema(schemastery)。 本包此前只有 TS 接口 MemoryConfig,没有可被 loader 识别的配置 schema,因此在插件页里是空白。现在导出 Config,并把 diary.enabled 标 .volatile()——表单由 loader 依 schema 自动构成,写进 profile 的 cordis.patch.yml,本包不另设存储文件。

边界

  • 关闭日记后两个工具拒绝执行而不是被注销:动态注销要响应式状态,而插件配置改动走 cordis 的 entry 重跑——为一次开关把注册生命周期做成可变的,代价大于收益。拒绝信息里写明「已有日记不会被删」。
  • 提醒搭在指针行上而不是 agent/pre-step 的消息:后者要引入 dsh-llm 的 createUserMessage 与三个 peer 依赖,而效果只是从「system prompt 里一句话」变成「对话里一条消息」。
  • 除 diary 外的配置字段一律透传(schemastery 字段默认可选),不加 .default():它们的默认值依赖运行时($DSH_HOME、平台路径),schema 里硬填一个会顶掉 MemoryConfig 的 ?? 默认 解析。