## 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>
## Summary by Sourcery
改进交易订单处理、配置保存和小游戏元数据,同时新增一个小游戏任务定义。
新功能:
- 为新的 PF 小游戏添加配置和任务定义。
错误修复:
- 在配置保存时使用带有适当异常处理的信号量,以避免竞态条件,并确保在应用程序释放时可靠地进行最终保存。
- 通过重试、验证和失败上报来保护交易订单变更,减少制造状态不一致的情况。
- 调整小游戏显示和提示解析逻辑,优先采用 API 提供的值,防止本地化文本不正确或缺失。
改进:
- 简化 MuMu 外部渲染器加载的日志输出。
- 精简最终配置保存的日志,以清晰表明成功或失败。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve trade order handling, configuration saving, and mini‑game
metadata while adding a new mini‑game task definition.
New Features:
- Add configuration and task definitions for a new PF mini‑game.
Bug Fixes:
- Make configuration saving use a semaphore with proper exception
handling to avoid race conditions and ensure reliable final save on
application release.
- Guard trade order changes with retry, verification, and failure
reporting to reduce inconsistent manufacturing state.
- Adjust mini‑game display and tip resolution to prefer API‑provided
values, preventing incorrect or missing localized text.
Enhancements:
- Simplify MuMu external renderer load logging output.
- Streamline final configuration save logging to clearly indicate
success or failure.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
改进交易订单处理、配置保存和小游戏元数据,同时新增一个小游戏任务定义。
新功能:
- 为新的 PF 小游戏添加配置和任务定义。
错误修复:
- 在配置保存时使用带有适当异常处理的信号量,以避免竞态条件,并确保在应用程序释放时可靠地进行最终保存。
- 通过重试、验证和失败上报来保护交易订单变更,减少制造状态不一致的情况。
- 调整小游戏显示和提示解析逻辑,优先采用 API 提供的值,防止本地化文本不正确或缺失。
改进:
- 简化 MuMu 外部渲染器加载的日志输出。
- 精简最终配置保存的日志,以清晰表明成功或失败。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve trade order handling, configuration saving, and mini‑game
metadata while adding a new mini‑game task definition.
New Features:
- Add configuration and task definitions for a new PF mini‑game.
Bug Fixes:
- Make configuration saving use a semaphore with proper exception
handling to avoid race conditions and ensure reliable final save on
application release.
- Guard trade order changes with retry, verification, and failure
reporting to reduce inconsistent manufacturing state.
- Adjust mini‑game display and tip resolution to prefer API‑provided
values, preventing incorrect or missing localized text.
Enhancements:
- Simplify MuMu external renderer load logging output.
- Streamline final configuration save logging to clearly indicate
success or failure.
</details>
</details>
## 由 Sourcery 提供的总结
使配置保存使用基于异步和信号量的机制,并确保最终保存时采用一致的锁定方式。
错误修复:
- 通过统一使用基于信号量的 `Save` 实现,防止在保存配置文件时可能出现的竞态条件和不一致的锁定问题。
增强内容:
- 重构配置的 `Save` 方法,使其异步化并使用异步文件 I/O,在需要的地方将调用方更新为以同步方式调用该方法。
- 从配置工厂中移除未使用的 WPF 命名空间导入。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
通过切换为基于信号量的保护机制来统一配置保存时的加锁方式,并将其一致地应用于同步保存和发布时(release-time)的保存。
Bug Fixes:
- 通过使用与其他地方相同的信号量来保护同步保存操作,防止配置保存时的竞态条件。
Enhancements:
- 优化配置保存逻辑,在使用信号量时采用 try/catch/finally 结构,并将保存成功或失败的日志记录逻辑集中化。
- 从配置工厂中移除未使用的 WPF 命名空间引用。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Unify configuration save locking by switching to semaphore-based
protection and apply it consistently to synchronous and release-time
saves.
Bug Fixes:
- Prevent configuration save race conditions by guarding synchronous
saves with the same semaphore used elsewhere.
Enhancements:
- Refine configuration save logic to use try/catch/finally around
semaphore usage and centralize logging of save success or failure.
- Remove an unused WPF namespace import from the configuration factory.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
通过切换为基于信号量的保护机制来统一配置保存时的加锁方式,并将其一致地应用于同步保存和发布时(release-time)的保存。
Bug Fixes:
- 通过使用与其他地方相同的信号量来保护同步保存操作,防止配置保存时的竞态条件。
Enhancements:
- 优化配置保存逻辑,在使用信号量时采用 try/catch/finally 结构,并将保存成功或失败的日志记录逻辑集中化。
- 从配置工厂中移除未使用的 WPF 命名空间引用。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Unify configuration save locking by switching to semaphore-based
protection and apply it consistently to synchronous and release-time
saves.
Bug Fixes:
- Prevent configuration save race conditions by guarding synchronous
saves with the same semaphore used elsewhere.
Enhancements:
- Refine configuration save logic to use try/catch/finally around
semaphore usage and centralize logging of save success or failure.
- Remove an unused WPF namespace import from the configuration factory.
</details>
</details>
</details>
## Summary by Sourcery
更新 copilot、paradox 和任务处理逻辑,以跟踪每个 copilot 的独立 ID、改进阶段导航和 OCR
的稳健性,并通过强类型事件将子任务消息接入 WPF UI,同时为更多任务添加截图插件并改进工具和文档。
New Features:
- 在核心任务和 WPF 模型中支持按 copilot 区分的 ID,以更好地跟踪和操作特定的 copilot 条目。
- 在 WPF 层将子任务消息暴露为强类型事件,并在相关的设置视图模型中进行消费。
- 为 copilot 条目新增独立的视频 URL 字段和存在标记,而不是复用 copilot URL 字段。
Bug Fixes:
- 修复在缺少提交作者或使用 web-flow 时的变更日志生成问题,通过在 PR 或提交中解析作者登录名来解决。
- 通过使用双精度累积来提高掩码模板匹配的数值稳定性,以避免灾难性消除。
- 修正模拟器自动启动逻辑,并在测试模拟器路径时增加校验。
Enhancements:
- 重构 copilot 阶段导航,使用图像分析和 OCR 更可靠地定位和确认阶段,包括重试和对图表的处理。
- 在子任务的额外信息消息中包含 copilot ID,使 UI 能将结果与选中的条目进行关联。
- 为奖励、商店、仓库、战斗启动、基建开始和干员仓库进入等任务添加截图采集插件,以获得更好的诊断能力。
- 通过用事件机制替换静态分发器来简化任务子消息的传播。
- 对文档中的 copilot 协议命名进行轻微措辞调整,并更新若干资源和本地化内容。
Documentation:
- 在主 README 和中文 README 中将 copilot 协议描述由「自动抄作业协议」重命名为「自动战斗协议」。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update copilot, paradox, and task handling to track per-copilot IDs,
improve stage navigation and OCR robustness, and wire subtask messages
into the WPF UI via strongly typed events, while adding screenshot
plugins to more tasks and refining tooling and docs.
New Features:
- Support per-copilot IDs through core tasks and WPF models to better
track and act on specific copilot entries.
- Expose subtask messages as strongly typed events in the WPF layer and
consume them from relevant settings view models.
- Add a dedicated video URL field and presence flag for copilot entries
instead of overloading the copilot URL.
Bug Fixes:
- Fix changelog generation when commit authors are missing or web-flow
by resolving author logins via PRs or commits.
- Improve masked template matching numerical stability by using double
precision accumulation to avoid catastrophic cancellation.
- Correct emulator auto-start logic and add validation around testing
the emulator path.
Enhancements:
- Rework copilot stage navigation to use image analysis and OCR to
locate and confirm stages more reliably, including retries and plot
handling.
- Include copilot IDs in subtask extra info messages so the UI can
correlate results with selected items.
- Add screenshot capture plugins to award, mall, depot, fight startup,
infrastructure begin, and operator box enter tasks for better
diagnostics.
- Simplify task submessage propagation by replacing the static
dispatcher with an event-based mechanism.
- Minor wording updates in documentation for the copilot protocol naming
and various resource and localization updates.
Documentation:
- Rename the copilot protocol description from "自动抄作业协议" to "自动战斗协议" in
the main and Chinese READMEs.
</details>
- close#17032
@MaaAssistantArknights/i18n-dev
## Summary by Sourcery
为理智药剂使用添加详细的报告和 UI 处理,包括按药剂的使用信息,并重构处理该子任务消息的位置。
新特性:
- 在理智药剂使用的 `SubTaskExtraInfo` 消息中加入按药剂的使用详情,并在任务队列日志中展示这些信息。
增强:
- 将药剂使用子任务的处理从 `AsstProxy` 移动到
`FightSettingsUserControlModel`,并扩展以展示当前使用的药剂信息,同时保留成就追踪功能。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add detailed reporting and UI handling for sanity medicine usage,
including per-medicine information, and refactor where this subtask
message is processed.
New Features:
- Include per-medicine usage details in SubTaskExtraInfo messages for
sanity medicine usage and surface them in the task queue logs.
Enhancements:
- Move medicine usage subtask handling from AsstProxy into
FightSettingsUserControlModel and extend it to show currently used
medicine information while preserving achievement tracking.
</details>