Aki2519/dsh-auto-continue

Aki2519★ 0JavaScript最后同步: 2026-08-15

在 GitHub 打开

README 摘要

dsh-auto-continue — 重启后自动继续任务 + 自动修复损坏会话 host + web client 插件。每次启动 DeepSeek Harness 时: 1. 自动修复 :扫描 $DSH HOME/sessions 下所有会话日志,发现被并发写入损坏的(重复/重叠事件段,即两个 dsh 实例同时写同一会话的痕迹)自动 无损修复 ——去重、裁剪重叠、保留全部唯一事件,原子写回并备份原文件。真缺口(事件确实丢失)不自动处理,记日志等人工。 2. 自动继续 :找到 最近一个 (或全部,见 onlyMostRecent )最后回合未正常完成的会话,按会话自己的模型配置与 agent 预设重建,注入"继续"消息让 agent 接着跑。 3. 可见提示 :Web UI 弹出横幅(「已自动恢复上次未完成的任务」+「打开会话」按钮)与系统通知。 安装 配置 配置写在插件 bundle 的 cordis.patch.yml 里(安装后随 bundle 层加载): 字段 默认 说明 enabled true 总开关 prompt 见 patch 注入的“继续”消息文本 continueOn [interrupted, error, max-tokens, aborted] 哪些结束原因算“未完成” skipSubagents true 跳过子代理/派生的会话 onlyMostRecent true 只恢复最近一个未完成会话 repairOnBoot true 启动时自动修复损坏的会话日志 repairMinAgeMs 60000 修复时跳过最近 N 毫秒内修改过的会话(可能正在被写入) logFile $DSH HOME/auto-continue.log 运行日志路径 行为 - host 启动、 loader 树沉降后执行(与 headless runner 同款时机),服务未就绪会短暂重试; - 自动修复 ( repairOnBoot ):遍历所有会话日志,用官方同款 zstd 帧扫描 + 记录解码检测损坏(重复事件段),无损重建文件,备份为 session.jsonl.zstd.bak-auto ;真缺口只记录不处理; - 判定“未完成”:事件日志里存在未配对的 turn/start (崩溃现场),或最后一个 turn/end 的 reason 落在 continueOn 里; - 归档会话一律跳过 (读 $DSH HOME/storages/workspace.json 的归档集合); - 本进程已经 live 的会话(API 网关刚恢复过)跳过,避免双驱动写同一个日志; - 恢复后注入一条 source: { kind: 'plugin', plugin: 'dsh-auto-continue' } 的用户消息,agent 自动跑完; - 全部会话…

在 GitHub 查看完整 README →
工具/开发dshdsh-pluginweb uiagent

分类