Skip to content

Deeptask 9.2.8

Choose a tag to compare

@kurzcraft kurzcraft released this 28 Oct 09:38
· 10 commits to main since this release

Deeptask 9.2.8

功能与修复

  • 中断恢复:子代理终态结果持久化、去重回传、取消不重启。
  • 父中断保活:父代理中断不再取消仍在运行的子代理;resume 等待 inbox 落盘终态,并用最终 tool_result 替换中断占位。
  • 关窗重启:子代理完成消息落盘即写父 inbox,不依赖同进程 runPromise;重启后从历史恢复子代理身份,父点继续才注入终态。
  • 工作区:工具绑定隔离源码目录;兼容依赖默认复用,避免共享安装写入。
  • 合并:临时树预检后发布到实际目标分支及检出目录,保留无关修改,冲突返回错误。
  • 命令:超过两条物理行立即拒绝,要求改用脚本及持久日志。
  • 长上下文压缩:增量续跑状态,禁止复述上一轮开场白或嵌套 Previous Conversation;15 秒本地快路径仍保留最新用户请求。

追加资源优化

  • 辅助HTML转义缓存按UTF-16载荷估算限制总预算1MiB、单项64KiB;大文本完整返回但不驻留缓存,不裁剪历史或工具结果。
  • Shiki仅预加载当前界面使用的两种主题,其余主题按需加载;保留语言/主题兼容和失败重试。
  • 重叠全量状态请求合并为执行批次及共享尾批,保留最新状态、等待语义、错误传播和释放边界。
  • fork子进程消除同一快照的成对重复IPC;不删除独立状态事件和父端控制流程。
  • 工作区领取与释放使用原子变更和owner校验,避免并发覆盖及旧实例释放新实例占用。
  • 只去除宿主生成的重复进度/命令规则、紧凑化MCP schema空白;不删用户规则,不降低上下文窗口或修改压缩阈值。

受控验证结果

基线提交:3ff6c51d845e55861261ba4ec4570276db46bf6b。运行环境:Linux、Node v20.20.0。

  • 最终综合回归:主扩展20个文件346项通过、12项既有pending;前端2个文件8项通过;无失败、未新增跳过项。此前专项回归另覆盖真实Git合并、占用生命周期和提示词分支。
  • 主扩展、agent-runtime和webview三个受影响包类型检查通过;变更文件按包级配置lint通过,git diff空白检查通过。
  • 独立Node进程中,对1500个大文本逐项校验完整转义输出,累计90004890字符一致;GC后堆增量34.50MiB降至0.16MiB。该数据只表示此缓存测试,不是Chromium、扩展宿主或整机内存降幅。
  • 快照压力测试:100002次请求构造2次,最终最新状态正确;100000对IPC事件发送200000次降为100000次,完整状态保留。事件次数不代表峰值内存。
  • 固定系统提示词样例以o200k_base计数11663降至11439,减少224 tokens;不是供应商实际计费,也不是所有任务固定降幅。

验证边界

  • 不主动重启当前VSCodium;安装文件校验不等于现有扩展宿主已加载新代码,重载前仍可能运行旧版本。
  • 未完成用户手动中断父对话后的现场恢复验证,未完成重载后的长期运行与灰屏复现验证;不声称永久消除灰屏、所有功能零回归或零缺陷。
  • 不调整内存告警阈值、不扩大heap、不杀外部进程、不删除会话历史。
  • 版本继续为用户指定9.2.8,源码普通fast-forward推送;既有发布标签不强制改写。

后续结构审计修复

  • 普通取消关闭新的历史写入入口,保留已经捕获的最终快照;分支替换仍可使旧排队快照失效,避免迟到回调把空历史写回。
  • 流式工具解析状态按Task隔离;提供商仅维护当前请求的工具标识,防止同进程并发任务互相污染。
  • MCP监听按服务名与配置来源共同归属;重复配置更新保留有效监听,删除和异步迟到回调遵守释放边界。索引扫描和服务代际分别释放自有ignore监听。
  • fork启动握手排队,已经就绪的任务仍并行;失败、超时、取消和重复恢复均有回归。停止后保留进程归属直到真实exit,终态只结算一次,并回收终止计时器。
  • 原生工具参数不再套用legacy HTML解码,XML兼容保留;命令预检对Bash做非执行语法检查及输入大小限制,不为正常长时任务添加隐式运行截止时间。

本轮联合验收(2026-10-28)

  • 主扩展43个测试文件901项通过、16项既有跳过;前端2个文件8项通过;无失败、未新增跳过项。变更文件lint与格式检查、主扩展/agent-runtime/webview类型检查通过。
  • 进程测试使用模拟子进程;Git工作区测试使用受控临时仓库。上述测试不等于用户现场中断、跨平台全覆盖或长时灰屏验收。
  • 修复前现场采样约44.93分钟、269个样本:系统OOM kill计数未增加;扩展宿主RSS约642至669MiB,峰值约702MiB;文件监听进程约1311至1868MiB。另一个未明确归属进程继续增长,尚不能归因到具体插件对象。
  • 没有告警同步堆快照、灰屏现场及同负载前后对照,不能据此声称内存泄漏已经全部消除。安装核验只证明磁盘文件,运行宿主加载状态与重载后长时表现仍须分别验证。

面板堆持有链(2026-10-28 追加)

  • 90% 告警来自 webview totalJSHeapSize / jsHeapSizeLimit,不是整机 RAM。现场证据显示历史行仍订阅完整扩展状态,流式 messageUpdated 会带动整棵翻译树和已渲染行重绘。
  • 设置与转录拆成独立 context:ChatRow / TranslationProvider 只订设置;列表元数据一次预计算,previousTodos 作为 props 传入,不再每行反向扫描全文。
  • 最后一行才接收 lastModifiedMessage 与 isStreaming;历史行保持原有 checkpoint、浏览器动作配对和 todo 对比语义。
  • 专项回归:chatRowListMeta、ChatRow 错误行、TranslationContext、ExtensionStateContext 共 4 文件 21 项通过。未完成重载后的长期灰屏现场验收。

保真优先的收敛版本(2026-10-29)

  • 两套代码块高亮采用请求级失效标记:旧请求在新输入或卸载后不再继续生成结果或覆盖新内容;保留高亮、原文复制、纯文本回退和滚动行为。
  • 统计 token 用量时跳过与用量无关的终端/MCP 文本合并,避免克隆完整转录;checkpoint 和任务元数据遵循同样规则,不改变展示合并。
  • 图片清洗仅在确实需要转换时新建对应条目;支持图片或无图片的历史复用原对象,不删减消息或改写存储。
  • 初始化配置缓存不重复持有透传历史,公开读取和导出接口仍返回原有字段;状态快照复用已获取的设置,todo 查询以反向遍历替代数组复制。
  • 未纳入无法证明信息等价的候选:同路径旧文件/同命令旧输出/历史截图删除、终端新增固定截断、弱指纹省略全文、同步惰性历史及子进程身份配置清除。候选源码与补丁完整保存在本地审计备份,不作为已发布优化。
  • 联合回归:52个主扩展测试文件1006项通过、16项既有跳过;11个前端文件61项通过,无失败。三个包类型检查、所有变更TypeScript文件lint和格式检查通过。
  • 高亮受控延迟初始化测试中31次分词缩减为1次;这是调度工作量,不是Chromium堆占用百分比。
  • 尚未取得本次安装重载后的长时同负载对照或灰屏同步堆快照,不能保证灰屏已根治;不主动重启编辑器,不调整告警阈值。

命令共存与取消恢复(2026-10-29 追加)

  • DeepTask补全与提交消息命令使用独立命名空间;原Kilo扩展存在时不抢占其旧命令,单独安装保留兼容别名,注册失败回滚本组资源。内部调用、快捷键上下文与建议接受回调同步隔离。
  • 命令已结束后,对可能阻塞在未完成next上的迭代器清理设置有界等待;不限制正在运行的正常长任务,不额外裁剪输出。
  • 取消恢复以点击代际启动,迟到输出不再解除或推迟取消保护;切换会话清除旧恢复状态,压缩事件按当前任务标识隔离。
  • 最终定向回归:主扩展14文件383项通过、12项既有跳过;前端2文件42项通过、12项既有跳过。两包类型检查、变更文件零警告lint及diff检查通过;测试运行器仍报告既有动态导入URL警告。
  • 原文保真审计覆盖实际Bash执行、Unicode、反斜杠和实体文本;未复现新增反转义缺陷,不增加猜测性解码。
  • 以上不证明长期灰屏已根治;未重启当前编辑器、不调高告警阈值、不缩减模型必要信息。

历史命令输出展示截断(2026-10-29 追加)

  • 宿主向 webview 投影历史命令输出时只发送短预览,磁盘存储与模型 I/O 仍保留全文;最后一条流式命令保持完整输出。
  • 被截断的历史行默认折叠,不挂全文 CodeBlock;展开后按消息时间戳从存储取回原文,任务切换会丢弃已取回全文。
  • 专项回归:core projectCommandOutput 5 项通过;webview CommandExecution 32 项通过,覆盖截断、末条流式全文、展开取回与身份切换。
  • 以上仍不证明长期灰屏已根治;不改存储、不裁剪模型必要信息、不主动重启编辑器。

代理管理页缓存回收(2026-10-29)

  • 独立代理管理页在宿主权威列表及远端列表均移除会话后,清空已订阅atom并移除消息、版本、草稿、图片、todo及状态机的缓存键;连续IPC快照读取同一store当前列表,避免陈旧闭包漏删。
  • 完成、停止、报错和切换会话不会触发此回收;本地或远端任一列表仍保留时,正文、图片和草稿不变。重开同ID可由完整宿主快照恢复,不改持久历史或模型输入。
  • 同一8557条、16309704字节真实转录,12轮创建/加载/删除后强制GC实际已用堆:旧页278.491MiB,修复页22.614MiB;旧页逐轮增长,修复页每轮回落到22.3至22.9MiB。双方覆盖历史索引0至8180,输入交互通过、页面异常0。该结果是隔离生产页面的删除后滞留对照,不是整机内存降幅或长期灰屏验收。
  • 最终定向证据:宿主14文件383项通过、12项既有跳过;界面18文件294项通过、12项既有跳过,包含代理管理全套252项与聊天控制42项。宿主测试后源码摘要未变,界面联合重跑;类型及变更文件lint通过。
  • 证据:EXTRA/output/928_manager_ab.log、928_manager_delivery_inventory.log、928_delivery_verify.log。没有删除用户会话、扩大堆上限、降低告警敏感度或重装依赖。

长任务上下文腐化修复(2026-10-30 追加)

  • 清洗未配对 native tool_use 时保留交错文本,不再把工具调用前后的助手说明整段丢掉。
  • 压缩摘要只在出现嵌套 Previous Conversation 章节时压平,避免下一轮把开场白当聊天复读;非结构化摘要保持原样。
  • 原生历史只接受真正的 tool_use / mcp_tool_use,防止把普通文本块误当成工具调用。
  • 专项回归:nativeStreamText、nativeAssistantHistory、condense/index、rewind-after-condense、condense.spec 共 5 文件 91 项通过、3 项既有跳过。
  • 以上仍不证明长期灰屏已根治;不改存储、不裁剪模型必要信息、不主动重启编辑器。

安装后内存采样与溢出边界(2026-10-30)

  • 已安装并核验 deeptask-9.2.8.vsix(sha256 a1413789…c4ded538,1891 个已装文件一致)。安装瞬间整机最高 RSS 约 4652MiB,归属 VSCodium zygote/编辑器进程,不是 DeepTask 单独堆。
  • 重载后传感器(约 2236 条消息、webview 已水合且有根节点):扩展宿主 RSS 约 769–1089MiB,webview 堆约 290–435 / 359–489MiB。更早现场扩展宿主约 642–702MiB,文件监听进程约 1311–1868MiB。采样期间系统 OOM kill 计数未增加。
  • 90% 告警来自 webview totalJSHeapSize / jsHeapSizeLimit,不是整机 RAM 耗尽。灰屏是水合前空壳,不是渲染进程被杀。本版削减的是长会话克隆和面板持有链,不能保证永不溢出。
  • 下一轮只动展示层:聊天列表虚拟化、webview 按窗口懒取、非焦点任务只留磁盘索引、按 pid 拆分 watcher RSS。禁止裁剪模型必要信息、禁止靠调高堆上限或关掉告警来“解决”内存。