[Bug] One third-party plugin load failure aborts the entire app, with no self-repair path / 单个第三方插件加载失败导致整个应用无法启动,且无自修复路径 #5426
Young-Spark
started this conversation in
General
Replies: 2 comments 1 reply
|
放一個 pi 在旁邊比較快。 |
1 reply
|
应该有个doctor 之类的命令,能把这个事情Cover住。不过我自己打包的 dsh-desktop 是支持了修复的,毕竟这玩意还是个桌面程序。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
问题概述
profile 里装的第三方插件只要有一个加载失败,整个 dsh 就起不来——不是那个插件不能用,是整个应用直接 abort,界面都弹不出来。而且没有任何恢复入口。更尴尬的是,写 dsh 插件的人基本都拿 dsh 自己当主力 agent,dsh 挂了,连用它来修这个插件都做不到。
复现
dsh plugin --profile web add ./acme-dsh-browser-plugindsh web,起不来:插件挂在 ESM 链接阶段,代码一行都没跑到。装好的 bundle 又不会自动重编,之后每次启动都是同一个死法。目前只能手动去改 profile 的
package.json,把插件摘掉再重装。影响
期望的行为
一句话:第三方插件加载失败,不该拦住我进 dsh;进去之后我要能在 dsh 里直接看到哪些插件失败了、失败的原因是什么,并且能顺手把报错交给 agent 去修。
@deepseek-ai/*的包挂了照旧中止启动。这个没意见,核心的东西坏了本来就该起不来。dsh plugin --profile <name> quarantine [--clear <row>]),下次启动自动重试。环境
Summary
A single third-party plugin installed into a profile can make the whole
dshapplication unbootable. There is no isolation, no surfaced recovery path, and — for plugin developers whose only agent is dsh — no way to use dsh itself to diagnose and fix the very plugin that bricked it.Reproduction
dsh plugin --profile web add ./acme-dsh-browser-plugindsh web.Actual result — the entire application aborts before any UI comes up:
The plugin fails at ESM link time, before any of its code runs. Because installed bundles are not rebuilt in place, every subsequent launch aborts the same way. The only workaround is to hand-edit the profile's
package.json/ bundle list and reinstall.Why this hurts
Desired behavior
In one sentence: a failed third-party plugin must not keep me out of dsh — once inside, I should see which plugins failed and why right in the application, and be able to hand the error straight to the agent to fix.
@deepseek-ai/*plugins) keep aborting the boot exactly as today.dsh plugin --profile <name> quarantine [--clear <row>]), so that after updating or reinstalling the plugin, the next launch retries it.Environment
All reactions