## Sourcery 总结
改进平台相关的栈基址检测逻辑,调整 UI 日志与关卡显示行为,更新 v6 的安全支持策略,并为新的测试版刷新游戏/资源数据。
Bug 修复:
- 通过处理 `GetModuleHandleExA` 调用失败的情况,改进 Windows 模块基址获取。
- 使用 `dladdr` 并在失败时以更安全的方式扫描 `/proc/self/maps` 作为回退方案,使 Linux 基址解析更加健壮。
- 始终使用关卡提供的显示字段和数值字段,防止对不支持的关卡进行错误标记。
- 在下载日志更新中通过传递字符串并在同一处构建 WPF 提示框(tooltip),修复提示信息的处理问题。
- 改进在助战角色选择以及助战列表更新中的错误日志记录,使诊断信息更加清晰。
功能增强:
- 在助战角色选择中允许更多重试次数后再判定失败,以提高健壮性。
- 通过改用基于字符串的提示信息而不是 UI 元素类型,简化任务队列下载日志的 API。
文档:
- 更新 SECURITY.md,说明只有最新的 v6 稳定版本会获得安全支持。
日常维护:
- 为多个地区刷新战斗、物品、召集、任务以及版本资源文件,以支持 v6.0.0-beta.2 版本发布。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refine platform-specific stack base address detection, adjust UI logging
and stage display behavior, update security support policy for v6, and
refresh game/resource data for the new beta release.
Bug Fixes:
- Improve Windows module base retrieval by handling GetModuleHandleExA
failures.
- Make Linux base address resolution more robust using dladdr with a
safer fallback that scans /proc/self/maps.
- Prevent incorrect stage labeling for unsupported stages by always
using stage-provided display and value fields.
- Fix tooltip handling in download log updates by passing strings and
constructing WPF tooltips in one place.
- Improve error logging in support-role selection and support list
updates for clearer diagnostics.
Enhancements:
- Increase robustness of support-role selection by allowing more retries
before failing.
- Simplify task queue download log API by using string-based tooltips
instead of UI element types.
Documentation:
- Update SECURITY.md to state that only the latest v6 stable release
receives security support.
Chores:
- Refresh battle, item, recruitment, task, and version resource files
for multiple regions for the v6.0.0-beta.2 release.
</details>
* docs: Auto Generate Changelog of Release v6.0.0-beta.2
* docs: Refactor v6.0.0-beta.2 changelog following patch version conventions (#15024)
* Initial plan
* docs: Refactor v6.0.0-beta.2 changelog following project conventions
- Add Highlights section with bilingual content
- Merge beta.1 and beta.2 sections following patch version format
- Include beta.2-specific fixes in Highlights
- Add detailed changelog sections for both versions
- Follow historical format from previous beta releases
Co-authored-by: ABA2396 <99072975+ABA2396@users.noreply.github.com>
* Remove fixes section from CHANGELOG.md
Removed fix section for version 6.0.0-beta.2 and above from CHANGELOG.md.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ABA2396 <99072975+ABA2396@users.noreply.github.com>
* docs: Update .NET version in documentation to 10
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ABA2396 <99072975+ABA2396@users.noreply.github.com>
## 由 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>