## 由 Sourcery 生成的摘要
更新关卡活动处理逻辑以消费新的 StageActivityV2 格式,将丰富的小游戏元数据暴露给工具箱 UI,并在助战选择、线索发送、GPU
检测、原生互操作以及 DLL 劫持防护方面增强可靠性和安全性。
新功能:
- 从新的 `StageActivityV2.json` 格式中解析丰富的小游戏条目,并将其绑定到 WPF 工具箱,以实现小游戏的动态配置。
缺陷修复:
- 修正快速编队助战干员完成逻辑,用于跟踪已填充的干员分组,避免将未勾选的干员误标记为缺失。
- 提高基础设施线索发送时的重试次数,以提升可靠性。
- 确保变更日志窗口在已打开时被激活,而不是新建一个窗口。
- 修复 Windows 配置管理器 GPU 查询逻辑,使其正确使用 span 和缓冲池,避免缓冲区误用和泄漏。
- 扩展启动 DLL 白名单,以降低 WPF GUI 中的 DLL 劫持风险。
增强改进:
- 调整活动关卡解析,以支持分组的支线故事,以及为关卡和小游戏提供活动时间元数据。
- 重构助战列表处理,改为使用以 `InstHelper` 为基础的辅助类,提供更清晰的日志记录,并将实际选中的助战干员名称返回给编队逻辑。
- 改进战斗编队中对缺失干员和注入助战单位的处理,通过跟踪是哪个分组被填充,避免对未选择的干员错误标记为缺失。
- 现代化 MaaService 中 MaaCore 的原生互操作绑定,改用源生成的 `LibraryImport` 和显式封送属性。
- 为 `LocalizationHelper` 添加查找辅助方法,以安全检查键是否存在,并在获取字符串失败时不抛出异常。
- 以更安全的顺序初始化依赖的单例对象,确保 `StageManager` 在依赖它的视图模型之前可用。
- 将助战列表内容仅记录到日志中,而不再通过额外的回调负载对外发送。
- 在夜间 OTA 工作流的 WPF 发布步骤中加入与架构相关的平台选择。
- 将小游戏列表刷新与本地日期/关卡更新联动,使 UI 能反映当前的活动配置。
构建:
- 提升用于 macOS 签名与配置以及 GitHub Releases 的 GitHub Actions 版本,并更新 CMake
生成器/工具脚本和文档,以引用更新后的 Visual Studio 工具集。
持续集成(CI):
- 更新 CI 发布流程,在夜间 OTA 工作流中为 WPF GUI 构建传递平台相关的配置。
文档:
- 刷新多语言开发文档,以引用更新后的 Visual Studio 版本和新的 CMake 生成器参数。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update stage activity handling to consume the new StageActivityV2
format, expose rich mini-game metadata to the toolbox UI, and tighten
reliability and security around support selection, clue sending, GPU
detection, native interop, and DLL hijack prevention.
New Features:
- Parse rich mini-game entries from the new StageActivityV2.json format
and bind them to the WPF toolbox for dynamic mini-game configuration.
Bug Fixes:
- Correct quick formation support-operator completion logic to track
filled operator groups and avoid mislabeling unchecked operators as
missing.
- Increase retry count when sending infrastructure clues to improve
reliability.
- Ensure the changelog window is activated when already open instead of
creating a new window.
- Fix Windows configuration manager GPU queries to use spans and pooled
buffers correctly, avoiding buffer misuse and leaks.
- Extend startup DLL whitelist to reduce DLL hijack risk in the WPF GUI.
Enhancements:
- Adjust activity-stage parsing to support grouped side stories and
activity time metadata for stages and mini-games.
- Refactor support list handling to use an InstHelper-backed helper with
clearer logging and to return actual chosen support operator names to
formation logic.
- Improve battle formation handling of missing operators and injected
support units by tracking which group was filled and avoiding incorrect
missing flags for unselected operators.
- Modernize MaaCore native interop bindings in MaaService to use
source-generated LibraryImport and explicit marshalling attributes.
- Add lookup helpers to LocalizationHelper for safe key existence checks
and non-throwing string retrieval.
- Initialize dependent singletons in a safer order so StageManager is
available before view models that depend on it.
- Log support list contents only to the logger instead of emitting extra
callback payloads.
- Include architecture-specific platform selection in WPF publish steps
of the nightly OTA workflow.
- Wire mini-game list refresh into local date/stage updates so UI
reflects current activity configuration.
Build:
- Bump GitHub Actions versions for macOS signing and provisioning and
for GitHub Releases, and update CMake generator/tooling scripts and docs
to reference the newer Visual Studio toolset.
CI:
- Update CI publishing to pass platform-specific configuration for WPF
GUI builds in nightly OTA workflow.
Documentation:
- Refresh multi-language development docs to reference the newer Visual
Studio version and updated CMake generator arguments.
</details>
新功能:
- 暴露从新的 `StageActivityV2.json` 格式中解析出的丰富小游戏条目,并将其绑定到 WPF
工具箱中,以支持动态配置小游戏。
漏洞修复:
- 修复快速编队补充助战干员时的逻辑,确保正确追踪已填充的干员分组,并防止未勾选的干员被错误标记为“缺失”。
- 通过增加重试次数,提高基建线索接收与发送的可靠性。
- 当变更日志窗口已打开时,确保正确激活该窗口,而不是新开一个窗口。
- 在通过 Windows 配置管理器 API 查询 GPU 相关设备属性时,避免缓冲区误用和内存泄漏。
- 通过扩展启动时检查的 DLL 列表,防止 DLL 劫持问题。
<details>
<summary>Original summary in English</summary>
## 由 Sourcery 生成的摘要
更新关卡活动处理逻辑以消费新的 StageActivityV2 格式,将丰富的小游戏元数据暴露给工具箱 UI,并在助战选择、线索发送、GPU
检测、原生互操作以及 DLL 劫持防护方面增强可靠性和安全性。
新功能:
- 从新的 `StageActivityV2.json` 格式中解析丰富的小游戏条目,并将其绑定到 WPF 工具箱,以实现小游戏的动态配置。
缺陷修复:
- 修正快速编队助战干员完成逻辑,用于跟踪已填充的干员分组,避免将未勾选的干员误标记为缺失。
- 提高基础设施线索发送时的重试次数,以提升可靠性。
- 确保变更日志窗口在已打开时被激活,而不是新建一个窗口。
- 修复 Windows 配置管理器 GPU 查询逻辑,使其正确使用 span 和缓冲池,避免缓冲区误用和泄漏。
- 扩展启动 DLL 白名单,以降低 WPF GUI 中的 DLL 劫持风险。
增强改进:
- 调整活动关卡解析,以支持分组的支线故事,以及为关卡和小游戏提供活动时间元数据。
- 重构助战列表处理,改为使用以 `InstHelper` 为基础的辅助类,提供更清晰的日志记录,并将实际选中的助战干员名称返回给编队逻辑。
- 改进战斗编队中对缺失干员和注入助战单位的处理,通过跟踪是哪个分组被填充,避免对未选择的干员错误标记为缺失。
- 现代化 MaaService 中 MaaCore 的原生互操作绑定,改用源生成的 `LibraryImport` 和显式封送属性。
- 为 `LocalizationHelper` 添加查找辅助方法,以安全检查键是否存在,并在获取字符串失败时不抛出异常。
- 以更安全的顺序初始化依赖的单例对象,确保 `StageManager` 在依赖它的视图模型之前可用。
- 将助战列表内容仅记录到日志中,而不再通过额外的回调负载对外发送。
- 在夜间 OTA 工作流的 WPF 发布步骤中加入与架构相关的平台选择。
- 将小游戏列表刷新与本地日期/关卡更新联动,使 UI 能反映当前的活动配置。
构建:
- 提升用于 macOS 签名与配置以及 GitHub Releases 的 GitHub Actions 版本,并更新 CMake
生成器/工具脚本和文档,以引用更新后的 Visual Studio 工具集。
持续集成(CI):
- 更新 CI 发布流程,在夜间 OTA 工作流中为 WPF GUI 构建传递平台相关的配置。
文档:
- 刷新多语言开发文档,以引用更新后的 Visual Studio 版本和新的 CMake 生成器参数。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update stage activity handling to consume the new StageActivityV2
format, expose rich mini-game metadata to the toolbox UI, and tighten
reliability and security around support selection, clue sending, GPU
detection, native interop, and DLL hijack prevention.
New Features:
- Parse rich mini-game entries from the new StageActivityV2.json format
and bind them to the WPF toolbox for dynamic mini-game configuration.
Bug Fixes:
- Correct quick formation support-operator completion logic to track
filled operator groups and avoid mislabeling unchecked operators as
missing.
- Increase retry count when sending infrastructure clues to improve
reliability.
- Ensure the changelog window is activated when already open instead of
creating a new window.
- Fix Windows configuration manager GPU queries to use spans and pooled
buffers correctly, avoiding buffer misuse and leaks.
- Extend startup DLL whitelist to reduce DLL hijack risk in the WPF GUI.
Enhancements:
- Adjust activity-stage parsing to support grouped side stories and
activity time metadata for stages and mini-games.
- Refactor support list handling to use an InstHelper-backed helper with
clearer logging and to return actual chosen support operator names to
formation logic.
- Improve battle formation handling of missing operators and injected
support units by tracking which group was filled and avoiding incorrect
missing flags for unselected operators.
- Modernize MaaCore native interop bindings in MaaService to use
source-generated LibraryImport and explicit marshalling attributes.
- Add lookup helpers to LocalizationHelper for safe key existence checks
and non-throwing string retrieval.
- Initialize dependent singletons in a safer order so StageManager is
available before view models that depend on it.
- Log support list contents only to the logger instead of emitting extra
callback payloads.
- Include architecture-specific platform selection in WPF publish steps
of the nightly OTA workflow.
- Wire mini-game list refresh into local date/stage updates so UI
reflects current activity configuration.
Build:
- Bump GitHub Actions versions for macOS signing and provisioning and
for GitHub Releases, and update CMake generator/tooling scripts and docs
to reference the newer Visual Studio toolset.
CI:
- Update CI publishing to pass platform-specific configuration for WPF
GUI builds in nightly OTA workflow.
Documentation:
- Refresh multi-language development docs to reference the newer Visual
Studio version and updated CMake generator arguments.
</details>
</details>
## Summary by Sourcery
发布维护更新,包含基础设施线索处理改进、新的外部通知支持、日志优化,以及若干 UI/UX 调整。
新特性:
- 新增钉钉作为可配置的外部通知提供方,并支持访问令牌(access token)和密钥(secret)设置。
- 在任务队列 UI 中引入专门的下载日志展示,并通过新的更新方法对外提供。
缺陷修复:
- 确保在不需要更新的情况下清除下载进度时,能够正确关闭“正在下载”状态。
增强改进:
- 优化日志行为,可通过 `DEBUG.txt` 文件切换调试日志开关,并调整异常日志的元数据。
- 改进接待室线索处理逻辑,以支持新增的“快速插入”和“快速发送重复线索”按钮,并相应更新核心逻辑和多语言文档。
- 简化并集中下载进度日志记录,通过 `TaskQueueViewModel` 统一处理,而不是直接操作日志集合。
- 明确战斗编队逻辑中的支援单位使用说明注释,并在编队未发生变化时抑制多余的编队设置操作。
- 在显示警告对话框时记录检测到的非法注入模块。
文档:
- 更新所有受支持语言的基础设施管理文档,说明新的接待室线索发送行为及相关术语变更。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Release maintenance update with infrastructure clue handling
improvements, new external notification support, logging tweaks, and
UI/UX adjustments.
New Features:
- Add DingTalk as a configurable external notification provider with
access token and secret settings.
- Introduce dedicated download log display in the task queue UI and
expose it via a new update method.
Bug Fixes:
- Ensure download progress clearing correctly disables downloading state
when no update is needed.
Enhancements:
- Refine logging behavior to allow debug logging to be toggled via a
DEBUG.txt file and adjust exception logging metadata.
- Improve reception room clue handling to support newly added quick
insert and quick send duplicate clue buttons, updating core logic and
multi-language documentation accordingly.
- Simplify and centralize download progress logging by routing it
through TaskQueueViewModel instead of manipulating log collections
directly.
- Clarify support unit usage comments in battle formation logic and
suppress redundant formation setup when unchanged.
- Log detected bad injected modules when displaying the warning dialog.
Documentation:
- Update infrastructure management documentation in all supported
languages to describe new reception room clue sending behavior and
terminology changes.
</details>
## Summary by Sourcery
通过更新游戏内容数据,并打磨小游戏、肉鸽玩法、工具链和 CI 行为,为各端与各平台准备 v5.28.4 版本。
New Features:
- 基于所选游戏客户端类型,动态加载小游戏任务选项。
- 为最新活动和 UR 关卡新增关卡、任务与地块位置数据。
Bug Fixes:
- 当小游戏选择为空或未知时,显示专用提示,而不是静默失败。
- 将未知的“两位字母-数字”形式的关卡视作已过期活动关卡,而不是常驻关卡。
- 在包括 txwy 在内的所有客户端上允许幻影肉鸽难度 15。
- 通过放宽匹配模式,改进 MacGui 问题自动打标签的 issue 检查器配置。
- 避免在 lldb 中包装冒烟测试,从而使脚本能在没有调试器的环境中运行。
Enhancements:
- 扩展小游戏提示,覆盖更多小游戏变体,例如 HoneyFruit 对决频道。
- 调整资源、CLI 二进制文件与模板的优化设置,以匹配新版本内容。
Build:
- 调整冒烟测试工作流的权限,只请求对仓库内容的只读访问。
CI:
- 简化 CI 中调用冒烟测试脚本的方式,改为直接运行测试二进制文件,而不附加调试器。
Tests:
- 更新冒烟测试工具和日志,以便在新版本内容下运行面向各客户端的自动化检查。
Chores:
- 刷新多类游戏数据资源文件(战斗、基建、物品、关卡、任务以及本地化)以适配新版本。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare v5.28.4 by updating game content data and polishing minigame,
roguelike, tooling, and CI behavior across clients and platforms.
New Features:
- Load minigame task options dynamically based on the selected game
client type.
- Add new stage, task, and tile-position data for the latest activities
and UR stages.
Bug Fixes:
- Handle unknown or empty minigame selections by showing a dedicated tip
instead of failing silently.
- Treat unknown two-letter dash numeric stages as expired activity
stages instead of permanent ones.
- Allow Phantom roguelike difficulty 15 on all clients, including txwy.
- Improve MacGui issue auto-labeling by broadening the matching patterns
in the issue checker configuration.
- Avoid wrapping smoke tests in lldb so the script can run in
environments without the debugger.
Enhancements:
- Extend minigame tips to cover additional minigame variants such as
HoneyFruit duel channel.
- Refine resources, CLI binary, and template optimization settings to
align with the new release content.
Build:
- Adjust smoke testing workflow permissions to only request read access
to repository contents.
CI:
- Simplify the smoke testing script invocation in CI to run the test
binary directly without debugger attachment.
Tests:
- Update smoke testing tooling and logs for running client-specific
automated checks with the new release content.
Chores:
- Refresh multiple game data resource files (battle, infrastructure,
items, stages, tasks, and localization) for the new release.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
通过更新游戏内容数据,并打磨小游戏、肉鸽玩法、工具链和 CI 行为,为各端与各平台准备 v5.28.4 版本。
New Features:
- 基于所选游戏客户端类型,动态加载小游戏任务选项。
- 为最新活动和 UR 关卡新增关卡、任务与地块位置数据。
Bug Fixes:
- 当小游戏选择为空或未知时,显示专用提示,而不是静默失败。
- 将未知的“两位字母-数字”形式的关卡视作已过期活动关卡,而不是常驻关卡。
- 在包括 txwy 在内的所有客户端上允许幻影肉鸽难度 15。
- 通过放宽匹配模式,改进 MacGui 问题自动打标签的 issue 检查器配置。
- 避免在 lldb 中包装冒烟测试,从而使脚本能在没有调试器的环境中运行。
Enhancements:
- 扩展小游戏提示,覆盖更多小游戏变体,例如 HoneyFruit 对决频道。
- 调整资源、CLI 二进制文件与模板的优化设置,以匹配新版本内容。
Build:
- 调整冒烟测试工作流的权限,只请求对仓库内容的只读访问。
CI:
- 简化 CI 中调用冒烟测试脚本的方式,改为直接运行测试二进制文件,而不附加调试器。
Tests:
- 更新冒烟测试工具和日志,以便在新版本内容下运行面向各客户端的自动化检查。
Chores:
- 刷新多类游戏数据资源文件(战斗、基建、物品、关卡、任务以及本地化)以适配新版本。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare v5.28.4 by updating game content data and polishing minigame,
roguelike, tooling, and CI behavior across clients and platforms.
New Features:
- Load minigame task options dynamically based on the selected game
client type.
- Add new stage, task, and tile-position data for the latest activities
and UR stages.
Bug Fixes:
- Handle unknown or empty minigame selections by showing a dedicated tip
instead of failing silently.
- Treat unknown two-letter dash numeric stages as expired activity
stages instead of permanent ones.
- Allow Phantom roguelike difficulty 15 on all clients, including txwy.
- Improve MacGui issue auto-labeling by broadening the matching patterns
in the issue checker configuration.
- Avoid wrapping smoke tests in lldb so the script can run in
environments without the debugger.
Enhancements:
- Extend minigame tips to cover additional minigame variants such as
HoneyFruit duel channel.
- Refine resources, CLI binary, and template optimization settings to
align with the new release content.
Build:
- Adjust smoke testing workflow permissions to only request read access
to repository contents.
CI:
- Simplify the smoke testing script invocation in CI to run the test
binary directly without debugger attachment.
Tests:
- Update smoke testing tooling and logs for running client-specific
automated checks with the new release content.
Chores:
- Refresh multiple game data resource files (battle, infrastructure,
items, stages, tasks, and localization) for the new release.
</details>
</details>