全部插件

DSH / BUNDLE / CLIENT-UI

dsh-self-restart

v0.1.0deadbushxw / dsh-self-restart6d290e5b12

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-self-restart

DSH Host + Client plugin: restart the application from a tool call and continue in the same conversation, plus the page-reload entry point the packaged desktop build does not have.

README / ZH

插件文档

目录摘要

DSH Host + Client plugin: restart the application from a tool call and continue in the same conversation, plus the page-reload entry point the packaged desktop build does not have.

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **仅限 Windows。** 优雅关闭是一串 Windows 消息,强杀路径是 `taskkill`;这里没有 macOS 或 Linux 的等价实现。 - **优雅关闭依赖 Electron 一个可能变化的既有行为。** 向壳主窗口投递 `WM_ENDSESSION` 会让 Electron 发出 `session-end` 事件,而这正是 DSH 自己收尾路径的开关。如果将来的 Electron 不再这么做,优雅这一步就只会超时,然后由强杀接管。这也正是它写成「优雅优先、强杀兜底」 而不是「优雅关闭」的原因。 - **没有设置页,也没有 Schemastery 的 `Config` schema。** 声明 schema 就意味着 import `@deepseek-ai/schemastery`;而插件解析的是自己的 import——那些 `@deepseek-ai/*` 运行时包 从 DSH 安装目录解析,而不是从 profile 安装的插件解析,所以 import 它们会绑上**第二份** 模块实例,它的常量与 `instanceof` 判断和正在运行的宿主并不一致。因此本插件用 `ctx.tools.register` 直接接受的普通对象形态注册工具,并自己校验配置。代价是真实的: 配置是文件,不是表单。 - **宿主半侧无法主动申请权限升级。** DSH 的升级辅助函数位于一个 profile 插件解析不到的随附 包里,所以插件会尝试,失败后**如实说明没有申请升级**,而不是假设已经批准。该调用依然受会话 自身的权限模式约束,而「不要结束别人的回合」这条护栏是独立强制的。 - **被重启的会话是用用户消息接回来的,不是系统消息。** 这是刻意的——它可见、可反驳、可审计 ——但也意味着对话里会有一条用户没打过的内容。 - **每次启动最多投递一次。** 「已接受」的意思是会话控制器收下了这条消息,不代表模型已经开始 回答,因为唤醒 agent loop 是异步的。 - **刷新入口是两个,不是四个。** 页面可以由工具调用刷新,也可以由侧边栏底部、设置按钮旁边的 那个按钮刷新。没有快捷键,也没有状态条:快捷键需要通过一个本包并不依赖的客户端服务注册, 而一个静默注册失败的键位比一个从没承诺过的键位更糟。设计里入口集合本来就是未定的, 这里是「不靠猜私有 API 就能做出来并验证」的那个子集。 - **强制重启可能截断上一轮。** 执行体会说明、回执会说明、续跑消息也会说明。DSH 在恢复会话时 会自己收尾一个被中断的回合,所以日志始终是完整的——但那段从没被写下来的尾巴是真的没了。 - **子进程依然会死。** 这个插件让 DSH 的关闭变成优雅的,而不是保持服务存活;这是两件事。 任何必须活过重启的东西,都得在 DSH 之外启动。 - **它不是崩溃守护。** DSH 自己崩了不会触发任何重启;插件只在 agent 要求它动手时才行动。 ---