Repository navigation
[Bug] 升级后可选插件遮蔽核心包,导致 workspace/session 服务全部不可用,界面表现为"会话全部丢失"(数据实际完好) #13385
Replies: 1 comment
|
同症状,macOS / Desktop 0.2.2-rc.3(rc.2 → rc.3),补充几点实测结论,尤其是「临时绕过」那段: 1. 只移走 2. 建议把 3. 还有一层独立的坑,容易让人以为没修好: Electron 的 4. 验证清单里建议加一条「亲手点一次新建会话」。 只看列表回来会漏掉上面那个半死状态;另外重启后 完整可回滚步骤(含只读体检命令、备份、验证、回滚)我整理在 #13389,可以直接照做。 |
Uh oh!
There was an error while loading. Please reload this page.
一、环境
二、现象
workspace create failed: gateway/service-unavailable:
typert gateway: workspace/create:
active Service "workspaceController" is unavailable
storages/workspace.json 也完好。数据从未丢失。
三、复现步骤
@deepseek-ai/dsh-storage-domain@<旧版本>。
pnpm 会把它提升到 profile 的:
profiles//node_modules/@deepseek-ai/
四、启动日志(关键部分)
dsh: disabling profile plugin row "storage-domain":
Plugin @deepseek-ai/dsh-storage-domain@0.2.2-rc.1 is incompatible
with dsh 0.2.2-rc.3: requirements {"@deepseek-ai/dsh-storage":"0.2.2-rc.1"}.
Running it may cause crashes or data loss.
dsh: warning: 6 entries did not activate
session-projection-cache: pending (waiting for service: storageDomain)
workspace: pending (waiting for service: storageDomain)
session-controller: pending (waiting for service: workspaceRegistry)
schedule: pending (waiting for service: storageDomain)
workspace-controller: pending (waiting for service: workspaceRegistry)
ui-deliverables: pending (waiting for service: sessionController)
注:应用从 Finder 启动,以上 stderr 用户完全看不到,只有把 profile 改名
用 CLI 引导才能复现出来。
五、根因分析
并被 pnpm 提升到 profile 顶层 node_modules。
@deepseek-ai/dsh-storage-domain 的那一行实际加载的是旧版本。
storageDomain 缺失 → workspace 永久 pending。
service-unavailable。用户看到的现象与"数据丢失"无法区分。
六、期望修复
或禁止 bundle 将核心包作为普通依赖装入 profile;
至少应在安装时拒绝把核心包 hoist 到 profile 顶层。
不兼容时明确提示并提供"以安全模式启动(停用插件)"选项,
而不是升级完直接进入不可用状态。
建议 core 服务在依赖缺失时报明确错误,
UI 提示"插件 X 不兼容",而不是显示"暂无会话"。
断言 0 pending、会话列表可用。
七、影响评估
没有任何指向"插件版本"的信息;应用内也没有安全模式入口。
安装第三方恢复工具,均无效且增加了误操作风险。
八、临时绕过(已验证)
删除 profile 内被 hoist 的旧核心包,使其回落到 App 自带版本,即可恢复:
rm -rf profiles//node_modules/@deepseek-ai/dsh-storage-domain
删除后重新引导:0 条目被禁用、0 pending,全部会话与 workspace 正常加载。
若要长期避免,需同时把 profile 里依赖该核心包的 bundle 升级到与 App 相同版本,
或直接卸载该可选插件。
All reactions