## Summary by Sourcery
改进 Windows 更新程序的鲁棒性、实例协调机制以及 CI/发布工作流程,以支持 v6.12.2 版本发布。
New Features:
- 允许 Windows 更新程序接收一个可选的命名互斥量参数,在更新期间阻止新的应用实例启动,并与 WPF 启动器使用的互斥量进行协调。
- 在 Windows 更新应用程序失败时,自动回滚已备份的文件。
Bug Fixes:
- 通过重试、强制删除和原子安装策略加固 Windows 更新程序的文件操作,以更好地处理被锁定或正在使用的文件。
- 确保 POSIX 命令运行器在无法在给定超时时间内建立套接字连接时,会超时并干净地杀死子进程。
- 在应用新更新之前,清理上一次中断更新遗留的待删除文件。
Enhancements:
- 调整备份和回收逻辑,在回收站操作失败时回退到强制删除。
- 改进关于 MuMu 渲染器库加载路径的日志记录,以提升诊断能力。
- 优化 CI 中并发组(concurrency group)的处理,并保护某些工作流不在 fork 的拉取请求上运行。
- 重构 WPF 引导程序中的互斥量/实例键处理逻辑,以便其他组件(如更新程序)复用。
- 将 Windows CI 和打包工作流切换为使用 `windows-2025-vs2026` 运行器镜像。
CI:
- 通过使用显式环境变量、适当引用(quoting),并将执行限制在非 fork PR 上,加固发布准备和 PR 自动打标签工作流。
- 通过环境变量对标签/更新日志生成以及标签合并步骤进行参数化,使 GitHub Actions 脚本更加健壮。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve Windows updater robustness, instance coordination, and
CI/release workflows for the v6.12.2 release.
New Features:
- Allow the Windows updater to take an optional named mutex parameter to
block new app instances during updates and coordinate with the WPF
launcher mutex.
- Add automatic rollback of backed-up files when the Windows update
application fails.
Bug Fixes:
- Harden Windows updater file operations with retry, force-delete, and
atomic install strategies to better handle locked or in-use files.
- Ensure the POSIX command runner times out and cleanly kills child
processes if a socket connection cannot be established within the given
timeout.
- Clean up stale pending-delete files from previous interrupted updates
before applying a new update.
Enhancements:
- Adjust backup and recycle logic to fall back to force deletion when
recycle bin operations fail.
- Improve logging around MuMu renderer library loading paths for better
diagnostics.
- Refine concurrency group handling in CI and guard certain workflows
from running on forked pull requests.
- Refactor mutex/instance-key handling in the WPF bootstrapper for reuse
by other components like the updater.
- Switch Windows CI and packaging workflows to the windows-2025-vs2026
runner image.
CI:
- Harden release-preparation and PR auto-tag workflows by using explicit
environment variables, quoting, and restricting execution to non-fork
PRs.
- Parameterize tag/changelog generation and tag merge steps via
environment variables for more robust GitHub Actions scripting.
</details>
- release-preparation.yml: bind PR_TITLE/PR_URL/TAG_NAME via env instead of inlining expressions in run blocks; add fork guard to both jobs
- pr-auto-tag.yml: bind EVENT_NAME/PR_TITLE/INPUT_TAG/TAG_NAME via env; replace bash inline expression with [ ] test
- ci.yml: bind CONCURRENCY_GROUP via env instead of inlining github.head_ref in run block
## Summary by Sourcery
调整多协作助手任务中的阶段导航颜色阈值参数和 OCR 调试输出。
Enhancements:
- 在 `MultiCopilotTaskPlugin` 中,用 `special_params` 代替 `bin_threshold`
来配置阶段颜色阈值。
- 将阶段检测的阶段图像预处理从灰度转换为 HSV 颜色空间。
- 扩展 OCR 调试绘制,在分数旁边同时显示识别到的文本。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Adjust stage navigation color thresholding parameters and OCR debugging
output for multi-copilot tasks.
Enhancements:
- Use special_params instead of bin_threshold for stage color threshold
configuration in MultiCopilotTaskPlugin.
- Switch stage image preprocessing from grayscale to HSV color space for
stage detection.
- Extend OCR debug drawing to include recognized text alongside the
score.
</details>