Repository navigation
摘要升级前我按文档把两个可选 bundle 从
同一签名上一次也出现过(2026-11-12,rc.1 → rc.2,当时是 rc.1 的 bundle 在 rc.2 上加载失败)。这次即使先禁用也没能避免,因为迁移把禁用状态还原了。 复现步骤
期望
实际
证据(时间线,本机)
补充: 影响
建议修复
环境
|
Replies: 3 comments
|
两件事可以分开看:bundle 列表被补回,和首启装依赖的竞态。 bundle 列表的自动合并逻辑在 首启 临时处置:升级后先完整退出再启动一次;想守住禁用状态,除了从 这段可以交给 AI,让它按你 profile 里的实际列表核对;如果这条解决了你的问题,可以标成 answer,后面遇到同样问题的人更容易找到。 |
|
macOS / Desktop 0.2.2-rc.3 这边印证了「停用状态不持久」:手动把 7 个第三方 bundle 全部停用( 不过想补充一个可能要分开看的点:我这边首启的
判据可以是「完全退出后重启是否恢复」:能恢复更像竞态,不能恢复就去看 |
|
补充与更正(原帖作者): 复盘后发现有两点归因错了,先向维护者致歉,也把真实根因补上。 更正 1:14:01 对 package.json 的改动不是应用迁移做的。 更正 2:根因不是安装/启动竞态,而是 profile 内 rc.2 包遮蔽内核包。 关键细节:只从 修复动作(可复现)
旁证 建议(与 #13385 合并看)
|

两件事可以分开看:bundle 列表被补回,和首启装依赖的竞态。
bundle 列表的自动合并逻辑在
packages/boot/plugin-manager/src/operations.ts:100-125:包操作完成后,会把这次"新出现的依赖"里带 bundle 元数据的名字补进dsh.profile.bundles(:117-122);插件页的开关只改列表本身(packages/boot/plugin-manager/src/index.ts:1294-1296)。没有"用户禁用"这个持久标记,所以从列表里移除之后,下一次包操作就可能把它当成待补齐的 bundle 重新写回来。至于升级迁移具体在哪一步写回,我这边没能从树里定到唯一路径,这点标记为推断。首启
sessionController不可用是安装和启动的竞态:依赖安装(14:01:22)和第一次挂载在同一分钟,核心 bundle 还没落齐;你第二次启动全部 active,说明加载本身没问题。临时处置:升级后先完整退出再启动一次;想守住禁用状态,除了从
dsh.profile.bundles移除,也把对应包从package.json的dependencies里去掉,这样 reconcile 没有可补回的来源。这段可以交给 AI,让它按你 profile 里的实际列表核对;如果这条解决了你的问题,可以标成 answer,后面遇到同样问题的人更容易找到。