Skip to content

feat(installer): preserve Explorer context menu selections - #456

Open
WilliamWang1721 wants to merge 25 commits into
Kuddev:mainfrom
WilliamWang1721:codex/issue-218-explorer-shell-selection
Open

WilliamWang1721 wants to merge 25 commits into
Kuddev:mainfrom
WilliamWang1721:codex/issue-218-explorer-shell-selection

Conversation

@WilliamWang1721

@WilliamWang1721 WilliamWang1721 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Result / 用户结果

Addresses #218:安装向导提供 Explorer 集成总开关、普通 Pebrel 入口及逐 WSL 发行版选择。重新运行安装器即可增删对应入口;升级和静默安装保留选择,总开关关闭时保留逐项偏好。沿用 main 已有的 WSL 子菜单,普通入口继续使用默认 shell。

Design / 设计边界

注册和选择由现有 Inno 安装器拥有;复用 Lxss 发现及 WSL 注册/归属机制。选择存入 HKCU\Software\Pebrel\ExplorerMenu;首次迁移保留原有全部入口,保存后新发行版默认不勾选。取消选择只删除精确归属的注册项,外部命令和未知子树保留,冲突注册显式报错。决策见 architecture/notes/packaging/2026-10-03-explorer-menu-selection.md。

范围为 Inno 安装渠道;不新增应用内设置或其他本地 shell 动词,不更改 MSIX/Scoop。旧 Inno 卸载日志中既有的 uninsdeletekey 记录没有重写。

Evidence / 验证依据

完成两轮代码与周边流程自审。新增隔离 HKCU fixture 覆盖选择往返、双注册根、升级顺序变化、新发行版、增删/总开关及外部项保留;原生输入 fixture 操作实际 checklist 的鼠标/键盘路径并保存截图。所有测试、编译、格式和架构验证仅在 GitHub Actions。

当前 head:f559d14032050adbdce60b796037af1852acdebd,正在重新验证。此前 d74d66b1 的绿 CI 不计作当前 head 通过。

独立审查发现 WSL 归属判断未检查动词及 command 下未知子树,递归删除可能丢失用户内容。修复将普通入口、WSL 子菜单动词和旧平铺动词统一到结构检查:仅有 command 子键,且其下无子树;未知内容保留,重建冲突显式失败。

  • before 负例:原生产 head d74d66b1 + 新增回归 fixture;两个隔离 HKCU 根、两层未知子树、四条路径的 16 个场景全部失败,证据为 issue218-wsl-structure-before-d74d66b1/wsl-structure-result.txt。
  • after 当前 head:同样 16 个场景全部 PASS,60 项选择检查、117 项既有迁移检查、完整安装器语法编译及实际鼠标/键盘选择/禁用/恢复全部通过。下载审查六张当前 head 截图通过;artifact issue218-wsl-structure-after-f559d140 包含 source-head.txt 和逐场景 wsl-structure-result.txt。workflow commit 7493a8d8 checkout 完整 PR source head,无 regression overlay。
  • 当前 head 的 上游 architecture-contracts、lint、pr-size 已通过;原生矩阵 仍在运行。

验收边界:注册表测试只使用隔离根,原生输入操作生产 checklist。未执行完整真实安装渠道升级、Explorer 菜单实际启动或历史 Inno 卸载日志迁移。

AI assistance: GPT-6.1 SOL, reasoning effort high.

Required Review / 必须确认

  • 已阅读贡献、架构及工程约束;不抬预算、不删除测试。
  • 注册保持单一权威,保留兼容菜单和命令;安装器文案使用 Inno 英文/简中 CustomMessages。
  • 当前 head 的架构门禁与已选原生平台检查通过。
  • 当前 head 的隔离注册表、原生鼠标/键盘与 checklist 截图验收通过。
  • Maintainer / Code Owner review;完整渠道安装与 Explorer 实际启动验收边界见上文。

@WilliamWang1721
WilliamWang1721 marked this pull request as ready for review October 3, 2026 09:04
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.

2 participants