Skip to content

fix: preserve official optional bundles across restart - #665

Merged
yaojin3616 merged 1 commit into
mainfrom
codex/preserve-official-bundle-selection
Oct 8, 2026
Merged

yaojin3616 merged 1 commit into
mainfrom
codex/preserve-official-bundle-selection

Conversation

@yaojin3616

@yaojin3616 yaojin3616 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

启用原生 Plugins 页中的“自动化任务”后,Desktop 冷启动的 generation 投影会重建 dsh.profile.bundles,删除安装包提供但没有 Profile dependency 的可选 bundle,导致重启后重新显示关闭。

本改动将投影的增删范围限制到明确归属于 generation 的条目,保留其他 bundle 的用户选择。所有权来自已有 generationProjection 标记及历史 generation link;移除的 generation 在元数据发布时即清理,避免所有权标记消失后被误保留。原生管理页和加载协议保持现有实现。

影响普通 Profile 的组合阶段:读取 Profile manifest 和 generation registry,以 Profile/安装包的既有解析基准加载可选 bundle。Safe Mode 的独立组成不变;不删除用户配置、不自动开启被旧版本清除的未知选择。

验证:独立 worktree 基于 origin/main 51f9896;干净 npm ci(含完整 postinstall)、typecheck、git diff --check、npx electron-vite build 均通过。投影、Profile consistency 和 Plugin Manager switch 共 3 文件 / 35 项通过。新增回归覆盖冷启动和 manifest publication、重复投影、用户关闭、历史 ownership 清理,以及独立 Node 子进程通过 Harness Profile loader 加载自动化任务 bundle。

完整 npm run build / npm test 尚未通过:最新 main 的前置 office:prepare 下载固定 Python payload 时发生 TimeoutError,完整 build 退出 1。提前直接运行全量 Vitest 的结果为 175 文件通过、6 文件失败,涉及缺失的 Office/PPT 准备产物,不能算完整回归通过。PPT 准备随后已完成;Office 准备和正式 CI 仍待验证。此前旧 checkout 上 176 文件 / 1603 项全量通过,不作为当前 PR HEAD 的完整验收。

待验收:重建安装包后在原生 Plugins 页启用并重启、实际 Schedule 服务与 UI 激活,以及 Windows 安装包流程。本 PR 不表示当前已安装的 0.11.0 已更新。

@yaojin3616
yaojin3616 marked this pull request as ready for review October 8, 2026 14:56
@yaojin3616
yaojin3616 merged commit cbb22e4 into main Oct 8, 2026
9 checks passed
@yaojin3616
yaojin3616 deleted the codex/preserve-official-bundle-selection branch October 8, 2026 14:57
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