更新日志(Changelog)

September 9, 2026 · View on GitHub

本仓库所有版本变更记录,按日期倒序排列。

English


2026-09-09

修复

  • 「Memory Evolve 设置」里勾选「记忆写入看门狗」保存后刷新即失效MemoryQueueView.saveConfig() 手工拼了一个固定 patch 对象发给宿主,键列表是手写的——perTurnWriteGuard(看门狗开关)与 writeGuardThreshold(阈值)有控件、draft 绑定也在(勾选立即变化),却没进 patch,于是 POST body 里根本没有这两个键,宿主 updateRuntime() 收不到、plugin-state.json 不落盘,刷新后 GET 回显仍是默认 false;因为界面读的是本地 draft,保存瞬间还显示「配置已保存」,问题只在刷新后才暴露。修复:把两个键补进保存 payload(TS 源码 + 构建产物 lib/client.js 同步重建),并新增回归测试 tests/client-config-save.test.js 钉住「面板 draft 绑定键 ⊆ saveConfig 发送键」这条契约(同时断言源码与产物键集合一致,防「改了源码没重建」),已验证还原修复后该测试必失败。

2026-09-08

修复

  • 记忆 Tab 子导航被 DSH 宽度手柄遮挡、部分元素无法点击(issue #40):DSH 0.1.2-rc 起会话列两侧渲染「拉宽」用的宽度手柄(absolute 全高、z-index 8、拦截点击的 col-resize 竖条,元素带 data-width-handle,宽度 min(40px, (100% - --dsh-chat-content-width)/2 - 48px))。插件的管理 Tab 是占满整列宽的面板(不随 --dsh-chat-content-width 收窄),把对话框拉宽后手柄条正好压住顶部子导航行(指南 / 全局规则 AGENTS.md …),元素被遮挡、点击被手柄拦截。修复思路与 DSH 官方对全宽 overlay 视图的先例一致(官方在 ConversationRoot.module.css.root:has([data-conversation-composer-overlay]) .widthHandle{display:none} 关掉手柄),插件侧新增 [data-phase]:has(...) [data-width-handle] { display: none }一次覆盖全部 11 个 Tab 的根容器.mt-panel 记忆/技能/待办/设置/模型/同步、.me-panel UI 设置/版本/指南、.coi-root COI、.bb-pane 广播、.pm-root 提示词、.bm-panel 书签)——任一插件 Tab 挂载期间隐藏手柄,切回会话等视图自动恢复;拉宽偏好(--dsh-chat-user-width)本身不受影响,回会话 Tab 仍可拖拽。选择器用 [data-phase] 属性而非 CSS-module 哈希类名(.root 被哈希化选不中),该属性在 DSH 里非唯一但其它持有者不含上述根容器,不会误伤。
  • 子代理快照不再注入 dtodo 收尾提示(issue #43)snap.todoHint(「收尾时调用 dtodo list 检查到期……有到期未完成项就在回复末尾提醒用户」)是面向真人会话的职责——子代理不向用户直接交付(结果回父会话),也不该替父会话提醒待办,注入只会诱导它多调一次 dtodo 白烧 token。同一函数内 review 计数、写入看门狗、收尾标题、写入文案早已按 isSubagent 降级,唯独此处漏了豁免。补齐后子代理快照不含任何 dtodo 收尾指导(头部工具清单的事实陈述保留:dtodo 工具对子代理确实注册可用)。新增回归测试,已验证「还原修复后测试必失败」。
  • review 每回合报「turn-stopping 处理失败:Cannot read properties of undefined (reading 'length')」(issue #42):DSH 0.1.2-alpha.4+ 的 Session 不再暴露 .events 数组,旧代码读取得到 undefined 后取 .length 抛 TypeError,经 turn-stopping 的 serial dispatch 冒泡,被插件的 try/catch 隔离成一条不影响回合的告警。改用 agent.session.ownEvents?.() ?? agent.session.events ?? [] 三档兜底(老宿主回退 .events)。该修复此前只存在于开发轨,本版本首次随发布交付——只更新到上一个发布 tag(v26082401)的用户仍会看到这条报错。
  • headless profile 无法加载:依赖仅 web 运行时提供的 workspaceRegistry 服务(issue #35):该服务从硬性 inject 列表移除,改为 ctx.get 按需读取 + 局部注入,headless profile 不再因缺服务加载失败。
  • 会话书签星标在 DSH 0.1.1-rc.2+ 全站失效(issue #39):官方重构了 data-chat-anchor-keynode:{seq}{kind.length}:{kind}{id},key 不再携带 seq),星标注入/列表/跳转/分支全链路失效。改为按锚点原文通用切分 kind/id(不硬编码 kind 名)+ 会话事件日志反查 {seq, turn},旧记录按 seq 回退兼容;顺带修复 fork seed 的 seq 空洞越界(seq≠数组下标导致中间轮分支退化为全量复制)。
  • 全盘 dir 搜索卡死(外部 PR #32):WALK_IGNORE 补 Windows 系统目录、maxFiles 截断后清空 pending 队列(防数千微任务级联)、defaultRoots 盘符去重。
  • Windows 下技能采纳跨盘失败memoryDir(D:)与 skillDir(C:)跨盘时 renameSync 抛 EXDEV,降级为 cpSync + rmSync,其余错误照抛。
  • 移动端「Memory Evolve 设置」页长文本/控件溢出(issue #31):配置说明等无空格长串加 overflow-wrap: anywhere、控件加 max-width: 100% + box-sizing: border-box(不依赖移动通道,普通移动浏览器同样修复),并补上移动通道漏掉的 .me-todo-select 全宽规则。

新增

  • MEMORY.md / USER.md 页签支持手动新建记忆条目(issue #30):此前各文件页签中只有项目关键记忆 KEY.md 有手动添加框,用户最想随手记的长期记忆(MEMORY.md)与用户档案(USER.md)是纯只读——想让 AI 记住某条偏好/环境只能靠反复口头交代或等自动沉淀。新增 POST /memory-evolve/api/memory/memory/memory-evolve/api/memory/user 端点(与 KEY 同款 store.add 盖戳追加,日期前缀由程序生成),前端 MEMORY.md / USER.md 页签顶部渲染同款添加框,草稿按文件分桶(切页签不丢内容),保存后清空草稿、刷新列表并提示。

本版本还包含 2026-09-04 记录的「记忆写入看门狗」与「广播投递即唤醒(wake 参数)」两项新增(见下)。


2026-09-04

新增

  • 记忆写入看门狗(长会话防遗忘,吸收 PR #37 特性一):长会话中模型对「每轮收尾写 daily/project」的固定提示词逐渐失效(指令稀释),连续多轮不写记忆且程序侧毫无反馈,遗漏被静默吞掉。新增程序侧合规追踪:按会话统计「连续完成多少个用户回合未写任何 daily/project 记忆」(writeGapCounteragent/turn-stopping 计数、subagent 不计、进程内存态),缺口达到阈值(writeGuardThreshold,默认 2,可在「Memory Evolve 设置 → 配置」调整)时快照注入置顶 ⚠️ 提醒,粘性直到下一次成功写入即消(key 轨确认队列不算——看门狗只盯每轮进展日志)。提醒文案刻意静态(不嵌实时计数)+ 按实际启用的写入轨参数化(单轨关闭不命令写已关轨)。独立开关 perTurnWriteGuard,默认关(用户拍板 2026-09-04:根源是模型指令遵循能力,强遵循模型不需要;打开才启用)。
  • 广播投递即唤醒(de_broadcast send wake 参数,吸收 PR #37 特性二):研究「为什么广播有时能唤醒会话、有时不能」——根因在 DSH 核心的投递原语:广播投递一律用 inject(不唤醒),接收方 running 时同回合可见(像被唤醒)idle 时消息停在收件箱直到下次自然驱动(没动静)offline 直接跳过——三种状态三种观感。新增 wake: true(send 可选参数,默认 false 行为不变):idle 接收方改走 followup 唤醒(投递到下一回合并启动驱动,等价替用户发消息,与 de_session wake / COI wakeOnComplete 同款机制;消息体带「发送方唤醒了你」标记);running 接收方仍 inject(不打断);offline 跳过(收件箱 + 回来补投兜底)。回执始终附「已唤醒 N 个空闲接收方」计数(含 0)。投递按接收方独立容错 + Set 去重(房间/项目/显式接收者重叠不重复投递、单点失败不中断)。经 Codex 独立评审与本地 DSH 0.1.2 源码实锚验证(Agent.followup/status/wakeDriver 语义成立)后合入。

2026-08-17

修复

  • Code Mode 启用提示词管理器后整轮失败(issue #13)de_prompts 工具参数说明不再携带宿主可解析的双花括号语法——工具 Schema 被序列化进 tools:sdk 系统提示词段后,说明文字中的 date/time 模板示例会被误当作未注册的 prompt variable,触发 unknown prompt variable "{{date}}" 并阻断后续所有回合。说明改为单花括号写法(功能不变:用户提示词正文中的 {{date}}/{{time}} 展开不受影响)。同批清理 de_session 工具描述中的同类残留({{model}} 示例改为纯文字)。新增回归测试确保模型可见的工具 Schema 不再泄漏该语法。

2026-08-14

修复

  • 版本更新后「当前版本」显示旧版本号:更新成功的设备重启后,版本页出现「当前版本」仍为旧版、状态却显示「已是最新」的冲突。根因是更新事务的 fetch 使用 --no-tags(新 tag 只进私有引用、不落本地 refs/tags),而本地版本标识依赖 git describe 只能找到最近可达的旧祖先 tag。现已改为按 commit SHA 判定:HEAD 精确匹配任一发布 commit 时直接取该 commit 的发布 tag(开发轨已包含发布版本时显示最新 tag),不再信任 describe 结果;更新事务检查点同步落盘新版本号与「已是最新」状态。
  • 更新成功后远端复核失败会误留更新红点:checkout 成功后的远端重检失败不再把状态回退为 outdated(本地版本关系已由 SHA 核验确定,重检失败只记录错误信息)。
  • 缓存期内手动切换版本/恢复开发轨状态陈旧:24h 检测缓存命中时增加本地 HEAD 校验,本地提交变化立即失效重检,不再出现最长 24 小时的状态错报或假「等待重启」提示。
  • 旧缓存版本号自动自愈:已带错误版本号缓存的设备,升级后打开版本页立即显示正确版本,无需等待自动重检。

2026-08-13

新增

  • 无限画板:把散落各处的文件/文本/图片/音视频集中到一块无限画布上陈列的素材工作台。本地路径引用(文件留原地)、单板+视角筛选(会话/项目/全局 + 归属徽标)、无限平移缩放(LOD/虚拟化/GPU 合成性能底座)、三种上板入口(路径/便签/真实本地搜索)、画板内直接预览/复制/引用、卡片自由拖拽与右下角缩放、AI 双向(de_canvas 工具:按 id 查/读、往画板中央区放便签,不注入上下文)、整板 rev 乐观锁防多会话覆盖。独立子模块 canvasEnabled 开关,存储 <memoryDir>/canvas/boards.json
  • web 站内通知de_notify / de_channel_send 新增 web 渠道——通知直达网页右上角铃铛,支持未读徽标、弹窗列表、全文查看、附件缩略图、一键跳转对应会话。
  • COI 任务列表分页:GUI 任务子 Tab 分页浏览,任务记录多时不再一次性全部渲染。

变更

  • 临时信息(scratch)模块移除:画板内便签(markdown/纯文本节点,内容存画板内)已覆盖其能力,删除「临时信息」Tab、scratchEnabled 开关与 /api/scratch 路由;已有 scratch.md 内容保留在记忆目录,未自动迁移。

改进

  • 通知机制重构——快照不再被其他模块反复拉动重注入:COI 任务(已发起/完成)、工作区公告板(并行开始/结束/成员变化)、会话广播(新消息/房间动态)全部从上下文快照移出,改为独立消息投递(不打断正在进行的回合);快照只保留身份、记忆与纪律等稳定内容。各模块变化不再连带整段快照重复注入,上下文更干净。
  • COI 完成通知只给状态与日志路径:任务完成/启动消息不再附带日志截取摘要(长日志时截取落在正文中段、看不出结论),直接给出完整日志文件路径,AI 用 read 读取全量输出;de_coi_status 只查状态/取路径。
  • 工作区公告板防抖:只在真实状态变化时通知(并行开始/结束、成员变化、备注变化),会话正常运行期间不再反复刷新。
  • 记忆同步改为纯 GUI 操作:移除 /memory_sync 命令与快照同步状态行——同步完全由你在「记忆同步」Tab 手动触发,AI 不再参与同步执行。
  • 版本检测启动即触发:插件启动后后台自动检测一次新版本,设置 Tab 红点不再依赖手动打开版本页。
  • 通知铃铛全面打磨:SVG 图标、位置避让、移动端适配;弹窗优化(标题颜色 / 会话名称显示 / 长文大弹窗);列表分行布局 + 已读按钮 + 标题跳转;邮件式去重、空行折叠、拖拽吸附、配色统一。
  • 兼容 DSH 0812 内测版:适配核心服务名改名(workspace→workspaceRegistry、httpServer→webServer),对外行为不变。

修复

  • 记忆归档安全:归档改为「先写入归档文件、成功后再删除主轨」——归档写入失败时主记忆原样保留,不再丢数据。
  • 待确认建议序号对齐:建议队列按热度排序后采纳/拒绝仍按原始序号处理,不再误操作其他条目(误采纳/误拒绝)。
  • 记忆同步可靠性:冲突解决可安全重试(git 失败不再残留半完成状态、不重复写入条目);远端身份校验更严格(远端分支存在但身份文件缺失/损坏时拒绝合并)。
  • 会话切换不再串台:记忆 Tab 的文件列表与页签选择按会话隔离,切换会话后不再显示上一个会话的内容。
  • 待办逾期判定:改用本地日期(东八区晚上「今天」的截止不再被误标为逾期)。
  • 共享记忆库地址回显:不再误显示主代码仓库地址(避免把共享库配置改成代码仓)。
  • 模型设置入口:关闭「支持思考」后仍可重新打开编辑器(不再无路可回)。
  • 手机端工具栏:加号/模型按钮不再因增强未就绪而永久消失。
  • COI 任务恢复:重启后不再残留「会话忙」假锁;长任务输出扫描缓冲设上限,不再无限吃内存。
  • 会话评审:总闸关闭后停止后台每秒轮询(重开自动恢复);重置评审员时旧评审结果不再写入已清空的新会话。
  • 工具描述与实际行为对齐:工作区锁的保留时长描述修正(30 秒 TTL)、提示词与广播参数说明修正(重复键不再覆盖语义)。
  • 通知详情截断:点开通知总是拉取全文,修复 200~8KB 中长通知显示不全。
  • 会话评审开关体系advisorEnabled 改为模块总闸(设置 Tab 关闭即整体停用);修复会话级开关刷新页面后丢失;各会话默认关闭(opt-in),总闸开启后需在悬浮面板手动启用。

2026-08-12

新增

  • 会话评审(Advisor)模块:每个会话挂独立评审员,实时观察用户输入与回复,按 info / nit / concern / blocker 四级给出反馈;支持五层约束(系统提示词 / 全局 / 项目 / 会话 / 评审会话);管理面板含约束 / 实时 / 记录 / 设置四个 Tab,可指令问答、查看评审员上下文规模、一键恢复默认提示词。
  • 版本检测与更新:自动检测远端新版本(git tag),设置 Tab 新增版本页(当前版本 / 最新版本 / 更新按钮 + 红点提醒)。
  • 任务完成自动唤醒de_coi_dispatch 新增 wakeOnComplete 参数——任务完成后自动唤醒派单会话投递完成摘要,无需用户手动触发。

改进

  • 完成唤醒无次数限制:用户显式要求的唤醒每次都生效,与 de_session wake 同语义。
  • COI 输出可追溯de_coi_status / de_coi_wait 输出开头直接给出完整日志文件路径,无需自行搜索。

修复

  • 提示词注入快照不再被宿主渲染器拦截:注入正文含 {{date}}/{{time}} 等变量时,快照段渲染侧统一展开;正文里残留的任意 {{...}}(未知变量、malformed 引用)也一并去模板化——宿主 system-prompt 渲染器把段文本 {{...}} 当模板变量解析、未注册即报 unknown prompt variable 导致整轮注入失败的问题(issue #6)彻底兜底,旧版本遗留/手动编辑的注入数据同样安全。
  • 会话评审四项细节:实时流清空、悬浮窗默认隐藏、tool-call 按序显示、中文指南文案补齐。

2026-08-11

新增

  • 记忆同步(跨设备项目记忆共享):项目记忆一键同步到远端,多台电脑共享同一份记忆;三层启用开关(模块 / 项目 / 轨),逐项目 opt-in 默认关闭;条目身份证机制保证双设备合并对齐;GUI「记忆同步」Tab(状态卡片 / 初始化 / 同步 / 冲突逐条解决)。
  • 共享记忆仓库:一个私有仓库装所有项目的记忆,每个项目自动使用专属分支,互不干扰;老仓库自动识别、零迁移。
  • 统一单一模式:记忆远端模型合并——默认复用主代码仓库、也可指定共享记忆仓库,每项目一条专属分支;项目待办(TODOS.md)并入项目记忆轨同步。
  • 全局记忆轨:全局记忆 / 用户档案 / 每日日志 / 待办四轨可跨设备同步(仅共享记忆仓库可用),每轨一条独立分支。
  • 图片链路五大能力:输入框图片直发 IM 渠道(sessionImage / attachmentId 来源);COI 派单带图(codex / kimi / grok / hermes);de_session 支持 Agent 预设;de_models 展示模型图片输入能力;会话广播图片附件(收件箱缩略图 + 延迟保留转发窗口)。

改进

  • 记忆同步 Tab 全面重排:三子 Tab 化(项目 / 全局 / 记忆远端)、统一推拉按钮、设备级启用开关、状态文案「未提交」改「未推送」+ ahead 统计。
  • 兼容 DSH 260810 快照dsh.client 配置迁移、Agent 预设挂载,新会话工具面完整。

修复

  • Windows 换行事故:Windows Git autocrlf 将记忆文件转为 CRLF 导致解析失败——新增 .gitattributes 强制 LF + 存量文件无损自愈,双设备同步恢复。
  • 全局轨数据安全加固:修复凭证泄漏、跨轨冲突数据风险、非法路径上传、假 dirty 重复提交等问题;全局推送被冲突拦截后可直接在界面逐条解决。
  • spawn / wake 工具面缺失:修复 DSH 260810 下新会话与恢复会话缺少 bash / read / write / edit 的问题。

2026-08-10

新增

  • memory 工具多轨批量写:一次调用同时写每日日志 + 项目日志,收尾合并为一次工具往返。
  • 情绪反馈记录:日志条目可携带用户情绪反馈(正面 / 负面 + 原话摘录),积累后可按任务分类分析满意度。

改进

  • 大文件保护:project / daily 无参数查询默认返回最近 50 条并附元数据,记忆 Tab 分页展示,消除长文件截断。

修复

  • 旧插件迁移引导:dsh-skills-manager 残留会导致 Web 整页不可用——补充醒目迁移文档与禁用列表自动迁移。

2026-08-09

新增

  • 工作区冲突协调:多会话并行时声明文件 / 服务占用(de_ws_declare / de_ws_status / de_ws_release),写前冲突检测、占用方定向通知、活动感知快照段。
  • 会话书签:每一轮可星标命名,独立列表一键跳回;从任意已完成轮创建官方分支。
  • 本地文件搜索内容检索memory_evolve_search_local_files 支持文件内容关键词检索(可选参数,默认行为不变);新增四档模式(文件名+内容 / 仅文件名 / 仅内容 / 关闭)。
  • DSH UI 设置模块:左侧会话列表默认只显示进行中的会话;对话区加宽(约 95%);消息气泡加宽(约 80%)。
  • 立即注入:提示词可「当前回合立即生效」注入(快照变更 + 插话),只注入一次,不受次数 / 间隔影响。
  • 会话编排模块(de_session):spawn 程序化创建标准会话、wake 唤醒、status / list 查询;me 查自身信息;rename 改会话名称 / 别名;新会话自动挂工作区分组。
  • 会话广播收件箱:未读 / 全部 / 已读筛选 + 搜索 + 分页;房间成员在线状态持久化(重启不丢失)。

修复

  • 内容检索漏搜:修复全盘上万文档时目标文件扫不到的问题。
  • 工作区协调实测迭代:活动段重复注入刷屏、会话删除后锁残留、显示完整会话 ID 等。

2026-08-08

新增

  • de_prompts 创建 / 修改:模型可自行创建 / 修改提示词,与 GUI 同一套校验。
  • de_prompts 多维过滤:按名称 / 分类 / 标签 / 简介过滤,未命中时明确提示是哪个条件没匹配。
  • 提示词简介与启用状态:每条提示词可填简介、可禁用;de_prompts 工具(列表 / 详情 / 注入)上线,AI 可选择合适提示词注入当前会话或作为子任务提示词。
  • memory 工具归档:AI 可直接归档记忆条目(memory / user / key 三轨)并查询归档内容,可逆。
  • 提示词管理器交互升级:一键预设注入(注入一次 / 持续注入 / 自定义);临时注入(不建提示词直接注入);次数 / 间隔自由输入。
  • 会话广播房间 / 项目群:多会话聊天室(成员跨工作目录)+ 项目公告群(按目录可见);30 天无活动自动清理;房间 / 项目消息保留 30 天供回看。
  • 会话广播管理面板:消息收件箱、房间管理、成员在线状态;踢人 / 解散自动发送系统通知;解散软删除可追溯。
  • 会话别名:给会话起友好名称(≤10 字),快照 / 面板 / 消息显示别名优先。
  • 会话搜索(de_session_search):搜索本机 Codex 历史会话(按项目 / 关键词,只读扫描、零常驻状态)。
  • 会话页 Tab 体系重构:记忆 / 技能 / 待办 / Memory Evolve 设置四个独立 Tab,每个 Tab 带中英双语指南。
  • 会话广播独立模块:从 COI 调度拆出独立开关与存储目录,互不影响。

修复

  • 注入文案去歧义:注入结果按实际行为显示(只注入一次 / 共 N 次 / 持续注入),不再误读。
  • 幽灵分类可管理:分类树中残留的旧分类可正常改名 / 删除(提示词自动迁移)。

2026-08-07

新增

  • 提示词管理器:提示词库 CRUD + 分类树 + 标签 + 搜索 + 使用统计;注入执行器(次数 × 间隔,支持无限 / 一次性 / 有限次);内置 13 个来自 GitHub 真实提示词库的完整范式。
  • COI 调度模块:统一调度 kimi / codex / grok / hermes 等外部 CLI——非阻塞后台任务、进度可视化、会话分层管理与恢复、跨 COI 接力、任务模板、用量统计、崩溃恢复;支持自定义 CLI 适配器。
  • 临时信息便签:会话页独立 Tab,持久化 Markdown 便签(跨重启保留)。
  • 本地文件搜索memory_evolve_search_local_files 按文件名搜索本机文档(默认只搜文档类型,全类型需显式开启)。
  • 每日待办可查过往dtodo list 支持 past / expired 查询历史;待办子 Tab 新增「过往」页签(含过期遗留)。
  • 记忆条目编辑:五轨记忆美观视图直接编辑保存(程序标记与分隔符受保护)。
  • 建议队列分类:记忆 / 待办 / 技能建议三个独立待确认 Tab;采纳时可改目标轨(记忆三轨之间)。

改进

  • 适配 DSH 08-06 profiles 架构:客户端注册改用 ctx.slots.inject,快照提示分区更清晰。

2026-08-06

新增

  • 技能管理并入:独立插件 dsh-skill-browser 整体合并——技能浏览 / 搜索 / 筛选 / 一键禁用启用 / 自定义目录;旧插件禁用列表自动迁移。
  • 四轨待办:生活 / 工作 / 项目 / 每日;四象限 + 截止 + 状态 tag;dtodo 工具(add / list / done / update / remove)与默认智能视图。
  • key 轨确认制:模型写入项目关键记忆先进待确认队列,用户采纳后才写入并注入。
  • 项目关键记忆归档:key 条目可归档至 KEY-archive.md,可逆(可移回主记忆)。
  • git 分支感知:记忆按分支注入与查询,日志自动带来源分支标记。

2026-08-05

新增

  • 初版发布:分层记忆与自我进化插件——全局事实 / 用户档案 / 项目记忆 / 每日日志四轨记忆。
  • 记忆审查机制:后台审查 + 建议队列(采纳 / 归档 / 拒绝,支持批量)。
  • Web 界面:设置面板「记忆管理」、会话页记忆 Tab(文件内联视图)。
  • 技能自我进化skill_manage 工具(严格创建门槛 + 待确认队列)。