Skip to content

fix: 增强启动失败兜底识别与组件冲突解析 - #99

Closed
yaojin3616 wants to merge 1 commit into
mainfrom
fix/plugin-recovery-fallback-enhancement
Closed

fix: 增强启动失败兜底识别与组件冲突解析#99
yaojin3616 wants to merge 1 commit into
mainfrom
fix/plugin-recovery-fallback-enhancement

Conversation

@yaojin3616

Copy link
Copy Markdown
Contributor

变更背景

当安装的部分第三方插件(如 @deepseek-harness-tui/dsh-tui)由于组件定义冲突引发 duplicate loader entry id: storage 等错误时,Cordis 内核日志中并未输出具体的插件包名,导致此前的恢复界面无法识别出具体插件(提示“无法定位到具体插件”且无法一键卸载),从而造成重启后仍然持续报错。

主要修复与增强

  1. 第三方插件兜底检测机制src/main/index.ts & src/main/state/plugin-recovery.ts):
    • 当启动错误日志中未包含明确的插件包名时,自动扫描 profiles/web/package.json 中已安装的第三方插件(排除官方内置核心包)。
    • 自动将已安装的第三方插件列为修复目标,恢复界面可直接提供一键卸载/清理操作。
  2. 组件冲突原因智能解析src/main/plugin-recovery-view.ts):
    • 增加对 duplicate loader entry id: <entry> 冲突类型的自然语言解析(展示为“插件注册了重复的服务组件”),向用户清晰展示冲突根因。
  3. 彻底清理与重置src/main/state/plugin-recovery.ts):
    • 卸载插件时同步清理同 scope 残余包,并重置 cordis.patch.yml 为纯净状态,避免卸载后残留补丁配置导致二次报错。
  4. 单元测试验证
    • 更新 test/plugin-recovery-view.test.tstest/plugin-recovery.test.ts,新增对应错误解析与第三方插件扫描用例。
    • 全部 24 个测试套件(136 个单元测试)100% 通过。

…lugin name and support component conflict explanation
@yaojin3616 yaojin3616 closed this Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant