一键重启服务并自动续聊,截断时补发继续
25.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Nasbaye/dsh-launcher该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 71 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 16 处,展示前 16 条)
- 写入本地文件lib/index.js:33
try { appendFileSync(logFile(), '[launcher ' + new Date().toISOString() + '] ' + msg + '\n'); } catch {} - 读取本地文件lib/index.js:61
if (!existsSync(RESUME_FILE)) return; - 读取本地文件lib/index.js:62
const data = JSON.parse(readFileSync(RESUME_FILE, 'utf8')); - 删除本地文件lib/index.js:63
unlinkSync(RESUME_FILE); - 写入本地文件lib/index.js:109
if (running.length > 0) writeFileSync(RESUME_FILE, JSON.stringify({ text: RESUME_TEXT, sessions: running }), 'utf8'); - 读取本地文件lib/index.js:110
else if (existsSync(RESUME_FILE)) unlinkSync(RESUME_FILE); - 删除本地文件lib/index.js:110
else if (existsSync(RESUME_FILE)) unlinkSync(RESUME_FILE); - 执行外部命令来自配置/变量lib/index.js:114
const child = spawn(process.execPath, [worker, String(port()), logFile()], { - 写入本地文件lib/restart-worker.js:18
try { appendFileSync(logFile, '[launcher-worker ' + new Date().toISOString() + '] ' + msg + '\n'); } catch {} - 执行外部命令固定命令lib/restart-worker.js:23
execFileSync('netstat', ['-ano'], { encoding: 'utf8', windowsHide: true }) - 读取本地文件lib/restart-worker.js:37
return existsSync(join(profileRoot, 'node_modules', rel)) || existsSync(join(engineRoot, rel)); - 读取本地文件lib/restart-worker.js:41
if (existsSync(pkgPath)) { - 读取本地文件lib/restart-worker.js:42
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')); - 执行外部命令固定命令lib/restart-worker.js:47
const r = spawnSync('pnpm', ['--dir', profileRoot, 'install'], { stdio: 'ignore', windowsHide: true, timeout: 600000 }); - 执行外部命令固定命令lib/restart-worker.js:71
execFileSync('taskkill', ['/F', '/PID', pid], { stdio: 'ignore', windowsHide: true }); - 执行外部命令固定命令lib/restart-worker.js:103
const ps = spawn('powershell.exe', ['-NoProfile', '-NonInteractive', '-WindowStyle', 'Hidden', '-Command', psCommand], {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 一键重启服务
- 重启后续跑
- 截断自动继续
DeepSeek Harness 一键重启插件:状态圆点、可靠 worker(预检 + 健康检查)、重启后续跑、token 截断自动继续
README
由 DeepSeek 最新模型翻译生成dsh-launcher
DeepSeek Harness web profile 插件:一键重启服务 + 前端状态徽标 + 重启续聊 + 截断自动继续。
- GET /api/launcher/status — 服务状态(JSON)
- POST /api/launcher/restart — 重启服务(返回 202,实际由后台 worker 完成:预检依赖 → 杀掉端口上的旧监听进程 → 等端口释放 → 重新拉起 node <dsh>/lib/bin.js web → 健康确认)
- UI:会话头部(或新建会话模式选择器)旁的状态点,点击可确认重启;重启完成后页面自动刷新
- 重启前自动检测「正在进行」的会话,重启后向它们发送 因 DeepSeek Harness 重启导致对话中断,请继续,让 agent 接着干活
- 模型输出撞到 token 上限被截断时(前端显示「已达到输出 token 上限」)自动补发 继续,让模型接续输出(带防循环保护)
目录结构
dsh-launcher/
├── lib/
展开完整文档(README 剩余 1 节)
dsh-launcher
DeepSeek Harness web profile 插件:一键重启服务 + 前端状态徽标 + 重启续聊 + 截断自动继续。
- GET /api/launcher/status — 服务状态(JSON)
- POST /api/launcher/restart — 重启服务(返回 202,实际由后台 worker 完成:预检依赖 → 杀掉端口上的旧监听进程 → 等端口释放 → 重新拉起 node <dsh>/lib/bin.js web → 健康确认)
- UI:会话头部(或新建会话模式选择器)旁的状态点,点击可确认重启;重启完成后页面自动刷新
- 重启前自动检测「正在进行」的会话,重启后向它们发送 因 DeepSeek Harness 重启导致对话中断,请继续,让 agent 接着干活
- 模型输出撞到 token 上限被截断时(前端显示「已达到输出 token 上限」)自动补发 继续,让模型接续输出(带防循环保护)
目录结构
dsh-launcher/
├── lib/
│ ├── index.js # 插件主体:状态/重启 API、状态点、续聊、截断自动继续 │ └── restart-worker.js # 重启 worker:依赖预检、杀进程、拉起、健康确认 ├── cordis.patch.yml # 组合补丁(向 web profile 插入一行) └── package.json
安装
在 profile 里安装本插件(路径按实际位置调整)
pnpm --dir %USERPROFILE%\.dsh\profiles\web add file:D:/path/to/dsh-launcher
然后把 @dsh-external/dsh-launcher 加入 %USERPROFILE%\.dsh\profiles\web\package.json 的 dsh.profile.bundles:
"dsh": {
"profile": {
"bundles": [ "...", "@dsh-external/dsh-launcher" ]
}
}
完整重启 DeepSeek Harness 即生效(GUI 状态点 + API 立即可用)。
功能
1. 状态点与一键重启
- 状态点显示在会话头部的 Agent 预设标签(「标准模式」等)右侧;新开会话页则显示在模式选择器旁。绿=在线,黄=重启中,红=离线。每 5 秒轮询。
- 点击状态点 → 确认 → POST /api/launcher/restart,worker 在后台完成重启。
- 重启完成后页面自动刷新一次(检测到后端离线并恢复后),确保拿到最新前端。
2. 重启 worker 的可靠性
restart-worker.js 自带三道保险:
| 保护 | 说明 |
| 依赖预检 | 重启前检查 profiles/web/package.json 的 bundles 是否都已安装(profile
node_modules + 引擎嵌套 node_modules 两处);缺包先自动 pnpm install,装不上则 中止重启、旧服务继续跑 |
| 健康确认 | 拉起后轮询端口最多 90 秒,成功/失败写入 dsh-web.log |
| 无控制台弹窗 | worker 与子进程均使用 windowsHide,Windows 下不弹黑色窗口 |
日志以 [launcher-worker ...] 前缀写到 dsh-web.log。
3. 重启续聊(resume-after-restart)
重启前(调用 restart() 时)枚举所有 agent,按未完成工作信号筛选会话:
- status === 'running'(执行中,含等待子代理返回);
- inbox.hasPending(队列里还有待处理消息);
- phase.kind === 'maintenance'(正在压缩等维护操作)。
命中的会话 id 写入 .dsh-launcher-resume.json(一次性,消费即删);新进程启动后通过引擎的 sessions.prompt 通道向每个会话发送一条用户消息 因 DeepSeek Harness 重启导致对话中断,请继续 —— 与浏览器发消息完全同路径, agent 会自动恢复并继续执行。失败自动重试(每会话最多 5 次,间隔 3 秒)。
4. 截断自动继续(auto-continue)
监听 session/event,命中 turn/end 且 reason.kind === 'max-tokens'(即前端「已达到输出 token 上限,回答被截断」提示)时,自动向该会话发送用户消息 继续,模型接着输出。防循环保护:
- 每会话连续自动「继续」最多 3 次;
- 同会话 5 秒冷却;
- 任何非 max-tokens 的轮次结束会重置计数;
- 只处理顶层会话(子代理暂不自动继续)。
日志:[launcher] auto-continue #N sent to <sessionId>。
日志
所有插件行为写入服务日志(默认 D:\deepseekharness\dsh-web.log):
- [launcher-worker ...] — 重启流程(预检/杀进程/拉起/健康确认)
- [launcher ...] — 续聊、自动继续、状态点相关
可选:Windows 无弹窗补丁(引擎侧)
本插件自身的子进程都带 windowsHide,但 DeepSeek Harness 引擎的 dsh-subprocess-local 默认未设置该项:当 web 服务以无控制台方式启动时,每次工具调用(pwsh/bash 等)都会弹出可见控制台窗口。可在引擎文件中追加:
dsh-subprocess-local/lib/index.js 的 spawn() 选项里加 windowsHide: true (两个 execFileSync 辅助调用同样加)。这是引擎侧补丁,随引擎更新可能丢失。
License
MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Nasbaye/dsh-launcher
一键重启服务并自动续聊,截断时补发继续
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目