msilita/dsh-graceful-restart
msilita★ 0JavaScript最后同步: 2026-08-16
—
README 摘要
dsh-graceful-restart DeepSeek Harness(dsh)的优雅重启 / 关闭 / 启动守护插件。 用户启动方式完全不变 ( dsh web )。插件自动"套壳":第一代进程阻止自身启动(占用非正式端口)并拉起正式实例(继承同一控制台),随后常驻为 隐形 launcher ——负责重启时的换代、启动失败的自动回滚,以及向正式实例传递重启 / 关闭请求。 无常驻看门狗(第一代只响应显式请求)、无外部工具、无轮询、无多余常驻进程。 做了什么 1. 优雅重启(等当前轮次结束) restart harness 工具或 /restart 命令触发后,插件不会立刻杀进程,而是等待 所有 agent 轮次结束 (当前回复完整落盘)再优雅退出,由第一代在同一控制台拉起新一代—— 不丢工作 。 2. 重启后自动唤醒继续 重启前把活跃会话 id 写入 marker;新一代启动后轮询等待会话恢复,然后自动 steer() 唤醒智能体继续之前的工作 。唤醒时的继续提示优先级: 3. 关闭与撤销 - shutdown harness / /shutdown :等轮次结束后关闭整个进程树(第一代一并退出),不重启 - cancel harness action : 撤销 已安排但尚未执行的重启 / 关闭(触发后发现不需要了,随时改变主意) 4. 启动守护:失败自动回滚(核心,v0.3.0 纯指针模型) 每次 spawn 前记录 插件清单快照 (profile package.json 的 dependencies),按时间排序成链; 唯一指针 current (时间戳键值)指向当前生效的快照: - 启动扫描 :实际清单 vs current 指向快照求差集 - 差集为空 → 不变化( current 不动) - 差集非空 → 先 删除比 current 新的条目 (回滚遗留的失败尝试),再 新建快照 , current 指向新快照(向前移动=修改快照链) - 正常启动 (存活超 20s 宽限期)→ 不再操作快照,只清空 stderr log、追加日志 - 启动失败 (退出码非 0 / 宽限期内退出): 1. 错误 独立记录 ( errors 数组,只保留最新一条,不记在快照条目里;历史错误在 dsh-graceful-restart.log ) 2. current 向 更早移一条 (不修改快照链) 3. 对差集做 逆操作 (官方 CLI):新增包 → 卸载;版本变化 → 卸载后重装基线版本;被卸载的包 → 装回( pkg@spec ) 4. 重试,循环直到成功或 没有更早快照 (无限回滚,无次数上限) - stderr 捕获 :第二代 stderr 经 pipe 写入 每次重试独立文件 ( dsh-graceful-restart-stderr- .log …
在 GitHub 查看完整 README →分类
🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video — real files, HTML/PDF/PPTX/MP4 export. 🤖 Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.
★ 87,083
volcengine/OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
★ 28,512
titanwings/colleague-skill将冰冷的离别化为温暖的 Skill,欢迎加入数字生命1.0!Transforming cold farewells into warm skills? It's giving rebirth era. Welcome to Digital Life 1.0. 🫶
★ 22,575