dsh-quick-restart-desktop:DSH Desktop 快速重启插件

前言

DSH(DeepSeek Harness)采用插件化架构。在开发或调试过程中,重启 DSH Desktop 是应用配置更新或插件变更的常见需求。手动重启应用不仅效率低下,还可能中断当前的上下文会话。本插件旨在提供一套标准化的重启入口,覆盖命令行、设置面板以及 API 接口。

核心功能

该插件由 MicroWearld 维护,提供以下核心能力:

  1. 重启应用本体:保持当前 Profile 不变,重启 DSH Desktop 应用进程。
  2. 切换 Profile 并重启:支持切换至指定 Profile 并执行重启操作。
  3. 多入口支持:通过命令行、Web 设置面板、独立 Web 页面以及 API 接口提供统一操作入口。

安装与启用

在 DSH Desktop 终端(或任何 dsh CLI)中,针对 desktop profile 执行以下命令:

dsh plugin --profile desktop add "link:D:/workspace/dsh-quick-restart-desktop"

安装后需要重启 DSH Desktop,插件才会随下一次 Loader 组合激活。

典型用法

1. 命令行入口

插件注册了以下斜杠命令:

  • /desktop-restart:重启当前 Profile 的应用本体。
  • /desktop-restart <profile>:切换至指定 Profile 并重启。
  • /desktop-profiles:列出当前 Profile 与全部可发现 Profile。

2. 设置与 Web 入口

  • 设置页面:进入设置页面的「快速重启」面板,列表第一行为「重启 DSH Desktop」主按钮,其他行对应「切换并重启到此 profile」。
  • 独立页面:在浏览器中直接打开 http://localhost:<port>/desktop-restart,可查看完整的面板与操作按钮。

3. API 接口

插件提供基于 JSON 的 HTTP API,监听在 127.0.0.1:

  • 重启接口:POST /desktop-restart/api/restart
    • 请求体:{ profile?: string }。不传参数或参数为当前 Profile 时,重启本体;其他情况切换并重启。
    • 行为:立即返回「已受理」,不等待进程结束。
    • 限制:要求 JSON content-type,Body 超过 64 KiB 返回 413。
  • 状态查询接口:GET /desktop-restart/api/state
    • 返回:{ current, profiles[] }。

技术细节与安全

  • 协议依赖:重启本体依赖 desktopRuntime.requestRestart()(内部接口);切换 Profile 依赖 desktopProfiles.select()(官方契约)。
  • 安全边界:API 无鉴权保护,但 webServer 仅绑定回环地址(127.0.0.1),且重启请求强制要求 JSON content-type,有效防御跨源表单攻击。
  • 兼容性:在普通的 dsh web(无 desktopProfiles)环境中,插件会正常加载但不挂载任何功能,避免报错。

注意事项

  • 托盘菜单:DSH Desktop 托盘菜单已内置 Profile 切换功能,由 desktop-profiles 插件处理。本插件不注册托盘条目。
  • 依赖:本插件以当前 dsh 进程的权限运行。安装前建议检查源码与许可证(MIT)。

总结

该插件通过标准化接口解决了 DSH Desktop 的重启与 Profile 切换问题,适用于开发调试及自动化脚本场景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜