dsh-phoenix
kdreamelf/dsh-phoenix
In-process crash guard: takes over the fatal-error handlers that would exit DSH, names the responsible plugin from the stack, and disables only that row in the home patch layer, leaving the profile and the provider config inside it untouched. The crash page offers retry, keep-disabled or uninstall, and opens a temporary safe-mode session when no culprit can be named (CLI and web launches only).
Installer
dsh plugin --profile web add github:kdreamelf/dsh-phoenixREADME
dsh-phoenix · 不死鸟
一个插件坏了,不该让你整个 DSH 都坏掉。
它解决什么问题
用 DSH 的人迟早会装插件。装得越多,出事的概率越大——不是谁有恶意,很多时候就是作者写错了一行代码,或者两个插件撞在了一起。
出事之后通常是这样:界面打不开,或者报一段看不懂的英文堆栈,或者干脆一片空白。你不知道哪里错了,也不敢乱动,最后只能把插件全删了重来——连带着你辛苦配好的模型、接口地址、密钥,一起没了。
不死鸟就是为了这件事存在的。
出事时你看到的就是这个——它告诉你是哪个插件、什么错,以及三个都通向「能继续用」的选择:

它怎么保护你
出事的样子不一样,它管的方式也不一样。三种情况,三种应对。
判断标准只有两条:进程是不是要死了,以及能不能指出是哪个插件干的。
一、进程要死,而且查得出是谁
DSH 有个未捕获的异常,按默认行为会直接退出。不死鸟会拦住,不退出,然后给你一个页面,告诉你:
- 是哪个插件出的问题(名字、图标、版本、装在哪里、是干什么的)
- 具体什么错(完整技术细节全在)
- 然后给你三个按钮
| 按钮 | 大白话 |
|---|---|
| 给个机会 | 把刚才临时停用的那个插件恢复回来,直接重启,看看是不是运气不好 |
| 停职 | 保持禁用,其它都留着,然后重启 |
| 开除 | 保持禁用,并且下次启动后把它彻底卸载干净 |
这里要说实话:为了让你不论点哪个都起得来,抓到这个插件的那一刻它就已经被临时停用了(写在 home 层,不动你的 profile)。所以「给个机会」不是什么都不做——它的作用正是把这个临时停用撤销,让插件照原样加载。三个按钮都不会让插件停在「被禁但没人知道」的状态。
然后 DSH 自己换一个新的干净进程重新跑起来。你点完按钮,等几秒,就能接着用。
注意它做了什么:它只动那一个出问题的插件。你的模型配置、你的接口地址、你另外十几个没问题的插件——一个字节都不碰。
二、进程要死,但查不出是谁
有时候错误深得离谱,栈里根本没有插件的信息,指不出是谁干的。
注意,这时候「查是哪个插件干的」这件事并没有放弃 —— 它只是在这一刻做不完。所以它不硬猜,也不乱禁,把两个选项摆给你:
| 按钮 | 大白话 |
|---|---|
| 再试一次 | 重启看看,也许这次就好了 |
| 进入复活模式(让 AI 查) | 相当于安全模式:这一次启动不加载第三方插件,进去以后把原始报错丢给 AI,让它反查 |
这种时候长得是这样——注意它不假装知道是谁,而是把原始错误原样摆出来交给 AI:

三、进程活着,但你什么都干不了
这一种最阴——界面还在,可你发不出消息、建不了新会话。DSH 自己只会弹一句它的报错,然后你就卡在那儿了。
不死鸟会把这句报错换成它自己的对话框(是对话框,不是那种一闪就没的小提示):报错原文一字不改地摆在里面,下面两个按钮,和上面一样:

| 按钮 | 大白话 |
|---|---|
| 再试一次 | 刷新页面。也许真的只是抽风 |
| 进入复活模式 | 相当于安全模式:这一次启动不加载第三方插件,进去以后把报错丢给 AI |
复活模式到底是什么
一句话:相当于 Windows 的安全模式。
开机的时候只加载最基本的组件,让你能进去把出问题的那颗驱动卸了;卸完了正常重启,一切照旧。
它有四个性质,每一个都不是可选的:
- 只这一次。 它不改你的 profile,也不改你的设置。关掉重开,就回到正常启动——不需要任何"退出来"的操作。
- 不碰你的供应商。 你的接口地址、密钥、模型列表,一个字节都不动。所以进去以后 AI 是活的、能回话,你才能让它帮你查。
- 不禁用它自己。 一个丢了监护仪的安全模式,第二次出事就没人救了。
- 只停第三方插件。 官方组件照常加载。停的是"你装的那些",因为按目前的证据,嫌疑只可能落在它们身上。
有一种情况供应商会消失:供应商是某个插件在运行时注册的。 那它跟着插件一起退场——这是插件自己的移除,不是不死鸟删的,而且只可能发生在插件被停用之后。你在设置里配的那些不在这个范畴。
进了复活模式,你就能正常对话了。把问题丢给 AI,让它帮你查。
这才是它真正的底气:不管 DSH 坏成什么样,你至少永远有一个能说话的地方。
为什么叫「不死鸟」
传说里的凤凰会烧成灰,然后从灰烬里重新站起来。
不是不会受伤,而是受伤之后还能活。
这个说法最早在路由器刷机圈里传开——机器刷坏了、变砖了,要有一层东西能把它救回来。后来大家就懂了:不是防止出事,是出事了不至于死。
DSH 现在的做法是反过来的。一个插件出事,它的处理方式是"把所有第三方插件全禁掉,把配置备份走,然后给你一个光秃秃的壳"。这能起来,但代价是你失去了一切。
不死鸟认为这个代价不该由你承担。
装了之后要做什么
什么都不用做。
放那儿就行。它自己会守着,平时完全不打扰你,不弹窗、不占资源、不影响任何正常使用。
它只在出事的时候出现一次。
标准复活流程
这是它存在的全部理由,一句话:
无论 DSH 坏成什么样,你至少要能开一个新会话,让 AI 帮你修。
具体是这样:
- 出事了。界面卡住、报错、或者干脆一片空白。
- 不死鸟把报错换成它自己的对话框——原来的错误一个字都不改,原样摆在里面。
- 对话框上有两个按钮:
- 再试一次 —— 刷新页面。也许只是抽风。
- 进入复活模式 —— 相当于安全模式:这一次启动不加载第三方插件,你的供应商和它自己都留着。
- 进了复活模式,你能正常对话。把问题丢给 AI,让它帮你查是哪个插件惹的祸。
- 查完、处理完,关掉重开,就回到正常启动。
为什么要你点按钮,而不是自动跳? 因为可能是误判。自动跳过去会消耗你的 token,也让你莫名其妙换了个界面。选择权在你手里——这也是它敢接管报错显示的原因。
复活模式为什么能救你? 它这一次只加载官方组件,所以第三方插件的问题不存在了;但你的模型、接口地址、密钥都还在,所以 AI 是活的、能回答的。这就是"能开一个新会话,让 AI 帮你修"的完整含义。
适合谁
给刚玩 AI 的人 —— 你不太懂什么是"插件冲突"、"未捕获异常",你只想安安静静地用。装它,然后忘掉它。真出事的时候,它会把选择摆在你面前,而且每个选项都能让你继续用下去。
给爱折腾的老手 —— 你知道 fail-loud 是什么意思,你也不想因为一个社区插件写错一行代码就把整个 profile 赔进去。它给你的是可归因、可撤销、可审计——所有判断都写进日志,每一次隔离都能一条命令撤回。
什么时候它会救不了你
诚实地说,有些情况任何插件都救不了:
- 进程被系统直接杀掉(原生模块崩溃、内存耗尽)—— 那时 JS 已经不在运行了
- 出问题发生得太早(在任何一个插件加载之前)—— 那是它还没上岗
- 配置文件本身坏了、解析不了 —— 那种情况它自己都读不到配置
这些情况它不会假装能处理。它会把能记录的都记下来,留给你或者 AI 去查。
还有一个限制要说清楚:桌面版(Desktop)里,复活模式不能自动帮你另开一个窗口。 桌面版的 profile 由应用自己管理,CLI 也不能替它启动。所以在桌面上点那个按钮,它会老实告诉你「请手动关掉再重新打开」,而不是假装成功。
它也不会偷偷替你做决定。 唯一的自动动作是:抓到肇事插件时先把它临时停用(否则你连崩溃页都刷不出来),而这个动作会在页面上明写出来,并且可以用「给个机会」一键撤销。除了这一个,它不改你的配置、不动你的供应商、不卸载任何东西——那些都要你点按钮。
安装
dsh plugin --profile <你的 profile 名> add github:KDreamelf/dsh-phoenix
桌面端(Desktop)的 profile 由应用自己管理,命令行不能直接改,需要在应用内的插件管理界面安装。
装完重启一次 DSH 就生效了。不需要任何配置。
出事了怎么办
如果你看到了那个崩溃页面,说明它已经在工作了。
拿不准选哪个,就选**「停职」**——它最安全:只禁用出问题的那个,其它一切都不动。之后你想恢复,随时可以:
dsh-phoenix restore --all
想知道更多
许可
MIT
Plugins associés
deepseek-harness
deepseek-ai/deepseek-harness
dsh-market
dsh-market/dsh-market
dsh-web (dsh-plugin-manager)
zhu1090093659/dsh-web
dsh-web
zhu1090093659/dsh-web