dsh-restart

DSH PLUGIN会话与消息

仓库 machine202502/dsh-restart

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-restart 是 machine202502 维护的 会话与消息 类 DSH 可安装插件, 仓库为 machine202502/dsh-restart,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-restart 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-28 创建于 2026-10-27
README 12.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:machine202502/dsh-restart
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdsh-pluginnodejsplugin-managementrestartwatchdog

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-restart当前 L5 · 运行验证通过 低风险 0 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方machine202502仓库 dsh-restart · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-27 · 2026-10-28最后推送 2026-10-28
本站收录2026-10-30首次进入本站目录的时间

README 全文

12.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-restart

Перезапуск DeepSeek Harness из интерфейса или инструментом агента — с возможностью
продолжить ту же сессию после старта.

Что делает

Возможность Где
Кнопка «Перезапустить» футер сайдбара, рядом с аккаунтом (иконка питания)
Подтверждение модалка с двумя кнопками, без лишних опций
Инструмент агента dsh_restart({ fake }) — только для разработки расширений
Продолжение сессии рестарт инструментом открывает сессию и пишет [auto.continue]

Как работает рестарт

Перезапускающий процесс не может быть потомком приложения: taskkill /T убивает всё
дерево вместе с ним. Поэтому плагин:

  1. пишет маркер %LOCALAPPDATA%\dsh-restart\pending.json;
  2. создаёт одноразовую задачу планировщика DSH-Restart (Windows) с helper-скриптом;
  3. helper ждёт 1.5 с, закрывает дерево процесса приложения, ждёт 1.8 с, запускает .exe
    и удаляет задачу.

На macOS/Linux используется отдельный sh-процесс (kill + open/запуск).

Автопродолжение

После старта клиент читает маркер через локальный мост 127.0.0.1:49233:

GET  /claim      → { marker } — атомарно: маркер получает только один клиент
POST /restart    → записать маркер и перезапустить
GET  /health     → признак живого хоста для сторожа
GET  /settings   → текущие переопределения
POST /settings   → сохранить переопределения (без перезапуска)

Маркер забирает ровно одна загрузка страницы, поэтому двойная инициализация не даёт
двух сообщений. Рестарт инструментом возвращает сессию сообщением [auto.continue]:
клиент открывает ту же сессию, дожидается готовности композера, вставляет текст и
отправляет его кнопкой отправки (Enter — запасной вариант). Кнопка в футере сайдбара
маркер не создаёт и сессию не продолжает.

Черновик пользователя не теряется: если в поле уже есть текст, он временно
откладывается в localStorage, отправляется [auto.continue], после чего текст
возвращается в поле ввода (без отправки). Очередь сообщений — состояние сессии,
плагин её не читает и не меняет.

Инструмент

Инструмент нужен для разработки и отладки самого DSH: плагин, cordis.patch.yml, профиль.
Он не предназначен для обычной работы, «обновления состояния» или вызовов без изменения
кода/конфигурации, которое требует свежего процесса.

dsh_restart { fake: true }
→ Preflight passed; fake restart requested, nothing was restarted.

Без fake инструмент перезапускает приложение и возвращает сессию сообщением
[auto.continue]. Флаг fake прогоняет все проверки, но ничего не перезапускает —
для тестов. Если инструмент отключён, вызов из старой памяти падает с
unknown tool "dsh_restart".

Настройки плагина

На странице Plugins → Restart → Configure:

Настройка По умолчанию Что делает
Команда dsh_restart доступна агенту включено при выключении инструмент исчезает; вызов из старой памяти падает с unknown tool "dsh_restart"
Сторож активен включено при выключении рестарт просто закрывает и открывает приложение, без отката профиля
Ожидание сторожа, сек 10 сколько ждать признака живого старта перед откатом (1–120)

Переопределения хранятся в %LOCALAPPDATA%\dsh-restart\settings.json; значения из
cordis.patch.yml остаются умолчаниями. Сохранение настроек не требует перезапуска:
инструмент регистрируется и снимается на лету.

Когда инструмент отказывает

dsh_restart доступен агенту только в «тихом» режиме — когда перезапуск никому не помешает:

Проверка Отказ
Вызов из подагента dsh_restart is only available to the main agent: a subagent cannot restart the app; do not retry, report the need to the parent agent instead
Режим доступа не Full access dsh_restart requires the Full access permission preset (current: …)
Другая сессия или подагент ещё работает dsh_restart refused: N other session(s) or subagent(s) are still working (…)
Есть работающая фоновая задача dsh_restart refused: N background job(s) are still running (…)

Проверки идут через ctx.permissionPresets.current(agent.session), ctx.agents.list()
и ctx.jobs.list(agentId); статус «работает» — running либо непустая очередь входа агента.
Признак подагента — exec.agent.options.subagentDepth (плюс exec.parent).

Кнопка в интерфейсе эти проверки не выполняет: пользователь сам решает, когда перезапускать.

Ограничения

  • пункт в трее и в нативном меню Application плагином добавить нельзя:
    трей и меню живут в процессе Electron main, а плагин — в дочернем host-процессе;
  • перезапуск выполняется через Планировщик задач Windows; если политика запрещает
    создание задач, рестарт не сработает;
  • воркспейс-сессии, которые в этот момент выполняют ход, будут прерваны (как и
    предупреждает модалка).

Кнопка и инструмент ведут себя по-разному

  • dsh_restart (агент) — всегда открывает сессию и пишет [auto.continue]
    (или [auto.continue.failed], если сторож откатил профиль).
  • Кнопка «Restart DeepSeek Harness» в сайдбаре — просто перезапускает приложение:
    маркер не создаётся, сессия не продолжается, авто-сообщение не отправляется.

Куки и «Web authentication failed»

Каждый запуск Desktop Host занимает новый порт и ставит куку dsh-auth-
для 127.0.0.1. Chromium хранит куки по хосту, а не по порту, поэтому старые куки
не заменяются и копятся. Замерено на живой установке: около 122 таких куки дают
заголовок Cookie примерно на 17.5 КБ, он перестаёт влезать в лимит (16 КБ),
приветственный запрос получает 431, и приложение падает с
desktop welcome: Web authentication failed. Дополнительно срок жизни этих куки
ограничен в профиле: connection.cookieMaxAgeDays: 7.

Перед каждым запуском (после убийства приложения, до Start-Process) helper
запускает src/cookie-clean.py и удаляет только строки dsh-auth-* для
127.0.0.1/localhost. Остальные куки не трогаются.

Если приложение всё же упало именно на приветствии (лог падения содержит
Web authentication failed), сторож не откатывает профиль и не отключает
плагины: он чистит куки, запускает приложение ещё раз и ждёт здорового старта.

Привязка сторожа к рестарту

Каждый рестарт получает токен:

dsh_restart → marker { token, sessionId } + watchdog.json { token }
сторож  → перед откатом сверяет токен в watchdog.json
старт   → хост удаляет watchdog.json (токен аннулирован)

Поэтому сторож срабатывает только для того рестарта, который его запустил, и не может
тронуть приложение, поднятое позже или другим рестартом.

Перед откатом сторож сравнивает SHA-256 файлов package.json, cordis.patch.yml,
cordis.yml с сохранёнными в момент запроса. Если файлы изменились вручную, откат
не выполняется — считается, что правки взял на себя человек.

Файлы профиля пишутся без BOM (WriteAllText + UTF8Encoding(false)), иначе хост
не может прочитать package.json.

Известное ограничение: задача подагента после его завершения

Если подагент запустил фоновую задачу и завершил ход, DSH удаляет запись об этой
задаче вместе с агентом, хотя сама задача продолжает работать. Проверка перед
рестартом такую задачу не увидит и рестарт не отклонит.

Что покрыто:

Владелец работы Отказ
Своя фоновая задача да
Подагент или чужая сессия ещё работают да
Их задачи, пока владелец жив да
Задача подагента после завершения его хода нет

Почему так: реестр задач ctx.jobs ключуется по id агента и очищается при его
уничтожении; обёртка jobs.start видит только задачи, запущенные через этот путь, а
подагент запускает их иначе. Детект по дочерним процессам ненадёжен: рядом постоянно
появляются и исчезают служебные процессы приложения. Решение отложено.

Установка

npx --yes github:machine202502/dsh-restart

Или вручную:

"dsh-restart": "github:machine202502/dsh-restart#main"

и добавить dsh-restart в dsh.profile.bundles.

После установки нужен перезапуск приложения (можно кнопкой, когда она появится).

Проверка

node tests/smoke.mjs                   # инструмент, проверки, fake, мост
node tests/load-client.mjs client.js   # клиентский модуль грузится и отдаёт apply

Лицензия

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-restart 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:machine202502/dsh-restart` 即可。

dsh-restart 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-restart 安全吗?

低风险。

dsh-restart 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-restart 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

machine202502 的其它插件

4 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。