## Summary by Sourcery
为 v6.13.0 更新发布通知和问题分析工作流。
新特性:
- 在 Discord 发布通知中新增分别针对 Windows x64/ARM 和 Linux x64/ARM 的下载链接。
增强:
- 修订 Discord 发布通知消息文案和嵌入样式。
- 将问题 AI 分析工作流从基于 Codex 的集成切换为基于 Claude 的集成,包括作业命名和输出引用。
CI:
- 更新用于 Discord 发布通知和问题 AI 分析的 GitHub Actions 工作流,以反映新的构建产物和 AI 提供商配置。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update release notification and issue analysis workflows for v6.13.0.
New Features:
- Add separate Windows x64/ARM and Linux x64/ARM download links to
Discord release notifications.
Enhancements:
- Revise Discord release notification message copy and embed styling.
- Switch the issue AI analysis workflow from Codex-based to Claude-based
integration, including job naming and output references.
CI:
- Update GitHub Actions workflows for Discord release notifications and
issue AI analysis to reflect new artifacts and AI provider
configuration.
</details>
## 由 Sourcery 总结
改进运行时语言切换、跨实例属性依赖处理和 OCR 可靠性,同时优化任务队列 UI 行为以及多处彩蛋流程。
新功能:
- 支持在多个 ViewModel 间进行跨实例和基于属性的依赖绑定,包括针对语言变化的全局刷新钩子。
- 引入可复用的 `LocalizedObservableList` 帮助类,用于集中管理本地化的选项列表,并在语言改变时自动刷新。
- 新增统一的非阻塞 `EasterEggDialog` 视图和辅助 API,用于在设置页和助理流程中展示脚本化对话框。
- 通过 `LocalizationHelper` 暴露运行时语言重载能力,提供 `LanguageChanged` 事件和
`CurrentCulture`,实现无需重启应用的热语言切换。
- 增强 `OcrPackNcnn` 中的 OCR 行为,以兼容 fastdeploy
的检测与识别流程以及空检测场景;在未检测到任何框时,将整张图片视作一行处理。
- 新增 GPU 选项视图模型封装(`GpuOptionItem`),以支持本地化的 GPU 选择并保持稳定的 `ComboBox` 绑定行为。
- 扩展成就系统,增加发布阶段元数据,包括本地化的工具提示和基于阶段的 UI 提示。
错误修复:
- 通过将 `LanguageChanged` 接入设置、任务队列、工具箱、计时器、关卡和多个设置面板,修复多处与语言相关的陈旧文本问题。
- 在临时 ViewModel 被释放时跟踪并清理跨实例属性依赖,防止内存泄漏和“僵尸”通知。
- 将 DWM 组合被禁用和拖放过程中的 COM 异常视为非致命错误,避免不必要的应用退出,同时仍然弹出错误对话框。
- 调整预处理、候选过滤和多边形评分,使其与 fastdeploy 行为一致,修复小 ROI 场景下的 OCR
误检问题,包括丢弃过于细长的检测框。
- 确保本地化的条目名称和关卡工具提示在语言更改时能够正确回退与重新加载。
- 修正肉鸽难度选择校验逻辑,并在主题特定限制变化时正确更新当前显示的难度。
- 改进对永久关卡阻塞后续关卡的处理,在配置会导致静默跳过后续关卡时对用户进行警告。
- 通过将显示文本与底层 `GpuOption` 值解耦,修复语言切换时的 GPU 选择与 `ComboBox` 刷新问题。
增强优化:
- 重构本地化处理逻辑,让更多设置与任务相关的 ViewModel 订阅集中式的 `LanguageChanged`
事件,并就地刷新缓存的显示字符串,而非依赖重启。
- 优化 Pallas 语言“醉酒/宿醉”彩蛋流程,避免强制重启,使用内部语言切换辅助工具,并在启动与退出时展示非阻塞对话框。
- 将多种对话框控件(文本输入、定时文本以及新的
`EasterEggDialog`)统一到重命名后的视图类下,并更新在任务队列和其他界面中的使用方式。
- 改进 `StageManager` 和 `StageInfo`,同时存储本地化键和值,使关卡名称、提示和小游戏入口在语言变更时可动态刷新。
- 使多个设置列表(连接配置、客户端类型、无人机使用模式、基础设施模式、更新通道、肉鸽主题、收容模式、战斗序列/重置模式等)现代化,统一使用
`LocalizedObservableList`,以实现更简洁、可热插拔的本地化方案。
- 收紧计时器、协作作战、工具箱、托盘图标、后置动作以及根视图在语言变化和启动流程中的行为,包括自动刷新标题与工具提示。
- 添加结构化的成就阶段发布日期映射,以支持更具信息量的成就 UI。
- 对日志作用域和若干 UI 绑定做小规模重构,包括语言切换后的非阻塞关卡/日期刷新以及废弃配置键的清理。
杂务:
- 更新多份游戏资源 JSON 文件(关卡、任务、物品索引、地块位置、版本清单),以适配最新内容与关卡布局,包括新的危机合约 v2
地块位置信息。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve runtime language switching, cross-instance property dependency
handling, and OCR robustness, while refining task queue UI behaviors and
various Easter egg flows.
New Features:
- Support cross-instance and attribute-based property dependencies
across ViewModels, including global refresh hooks for language changes.
- Introduce a reusable LocalizedObservableList helper to centralize
localized option lists that automatically refresh on language change.
- Add a unified non-blocking EasterEggDialog view and helper APIs for
showing scripted dialogs from settings and assistant flows.
- Expose runtime language reload via LocalizationHelper with a
LanguageChanged event and CurrentCulture, enabling hot language
switching without app restart.
- Enhance OCR behavior in OcrPackNcnn to handle fastdeploy-compatible
detection, recognition, and empty-detection cases, including treating
the whole image as a line when no boxes are found.
- Add GPU option view-model wrapper (GpuOptionItem) to support localized
GPU selection with stable ComboBox binding behavior.
- Extend achievements with release phase metadata including localized
tooltips and phase-based UI hints.
Bug Fixes:
- Fix multiple language-related stale-text issues by wiring
LanguageChanged into Settings, task queues, toolbox, timers, stages, and
various settings panels.
- Prevent memory leaks and zombie notifications by tracking and cleaning
cross-instance property dependencies when transient ViewModels are
disposed.
- Handle DWM composition disabled and drag-drop COM exceptions as
non-fatal, avoiding unnecessary application exits while still surfacing
error dialogs.
- Address OCR mis-detections on small ROIs by aligning preprocessing,
candidate filtering, and polygon scoring with fastdeploy behavior,
including dropping overly thin boxes.
- Ensure localized item names and stage tooltips fall back gracefully
and reload correctly when the language is changed.
- Correct roguelike difficulty selection validation and update of the
displayed difficulty when theme-specific limits change.
- Improve handling of permanent stages blocking later entries by warning
the user when configuration would silently skip subsequent stages.
- Fix GPU selection and ComboBox refresh issues when language changes by
decoupling display text from the underlying GpuOption value.
Enhancements:
- Rework localization handling so many settings and task-related
ViewModels subscribe to a central LanguageChanged event and refresh
cached display strings in-place instead of requiring restarts.
- Refine Pallas language "drunk/hangover" easter egg flow to avoid
forced restarts, use internal language switching helpers, and show
non-blocking dialogs on start and exit.
- Unify various dialog controls (text input, timed text, and new
EasterEggDialog) under renamed view classes and updated usages in
TaskQueue and other screens.
- Improve StageManager and StageInfo to store localization keys
alongside values, enabling dynamic refresh of stage names, tips, and
mini-game entries on language change.
- Modernize several settings lists (connection configs, client types,
drones usage, infrast modes, update channels, roguelike themes,
reclamation modes, fight series/reset modes, etc.) to use
LocalizedObservableList for cleaner, hot-swappable localization.
- Tighten timer, copilot, toolbox, notify icon, post-action, and root
view behaviors around language changes and startup flows, including
automatic title and tooltip refreshes.
- Add structured release date mapping for achievement phases to support
more informative achievement UI.
- Minor refactors to logging scopes and miscellaneous UI bindings,
including non-blocking stage/date updates after language changes and
cleanup of obsolete configuration keys.
Chores:
- Update multiple game resource JSON files (stages, tasks, item indexes,
tile positions, version manifests) for the latest content and stage
layouts, including new crisis v2 tile position data.
</details>
## Summary by Sourcery
错误修复:
- 在 `MultiCopilotTaskPlugin` 中遍历导航重试循环时,使用正确的最大重试配置。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- Use the correct maximum retry configuration when iterating the
navigation retry loop in MultiCopilotTaskPlugin.
</details>
## 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>
## 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>
## Summary by Sourcery
为版本 v6.11.1 准备发布元数据,而不引入任何功能性代码更改。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare release metadata for version v6.11.1 without introducing
functional code changes.
</details>
* docs: Auto Generate Changelog of Release v6.11.1
* Revert "docs: Auto Generate Changelog of Release v6.11.1"
This reverts commit aff4e4d5db.
* docs: bump changelog title to v6.11.1
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
## Sourcery 总结
更新宿舍干员选择、信用商店购买、账号切换和通知行为,并为 v6.11.0 版本新增协议、UI 和资源支持。
新功能(New Features):
- 在账号切换与启动配置中新增对 txwy(繁体中文)客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头。
- 支持使用基于文件的输入进行悖论模拟助手的批量识别。
- 为助手的“用户附加信息”弹出网格引入动态尺寸和对齐方式。
缺陷修复(Bug Fixes):
- 修复宿舍自动填充逻辑,更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选条件,并增强筛选开关的稳定性。
- 通过使用 OCR 等价处理、保留物品名称以及在点击前校验商品,改进信用商店物品识别与购买流程,避免买错物品。
- 确保任务完成后的检查仅在任务队列由 link-start 启动时才执行。
- 修正信用商店售罄检测与白名单排序逻辑,使其能基于结构化的 TextRect 结果而非裸矩形数据工作。
- 修复悖论模拟助手的识别逻辑,使其正确读取和引用悖论配置文件,而不是干员名称。
- 解决外部通知自定义 Webhook 配置相关问题,通过安全持久化请求头并在请求中正确应用。
- 明确并修正针对更多客户端类型和 OCR 设置的账号切换行为。
增强优化(Enhancements):
- 将宿舍选择状态重构为更清晰的选择阶段,并为信赖阈值和设施标签抽取常量。
- 收紧基建任务中的筛选菜单交互,确保“未进驻”和“全部设施”筛选条件能稳定应用和取消。
- 优化信用商店购买逻辑,更好地遵守“仅折扣”和“信用预留”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置和启动设置的 ViewModel 与 XAML 绑定,实现更清晰的行为与格式。
- 更新变更日志生成器和依赖下载脚本,以改善格式并跟踪最新 MaaDeps 版本。
构建(Build):
- 在下载辅助脚本中将 MaaDeps 依赖版本提升至 v2.11.0。
文档(Documentation):
- 扩展多语言的集成与启动文档,加入对繁体中文(txwy)账号的使用指南以及账号名匹配示例。
杂项维护(Chores):
- 刷新多项游戏数据与任务 JSON 资源,包括最新关卡与记忆关卡的地块坐标定义、物品与关卡索引以及本地化资源。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
准备 v6.11.0 版本发布,本次更新包括:改进宿舍自动填充逻辑、更安全且更精准的信用点商店购买、扩展悖论模拟器批量识别、增强外部
Webhook 通知、支持 txwy(繁体中文)账号、更新工具链,以及刷新游戏数据/资源。
New Features:
- 在账号切换与启动配置中,新增对 txwy(繁体中文)游戏客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头,并在发送请求时应用这些请求头。
- 支持使用基于文件的输入而非干员名称进行悖论模拟批量识别。
- 为 UI 中 copilot 的“User additional information”弹出网格添加动态尺寸和对齐能力。
- 让 ImageCropper 工具在 ADB 设备之外,额外支持通过 Win32/WGC 捕获 PC 窗口。
Bug Fixes:
- 通过更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选状态,稳定宿舍自动填充行为。
- 改进信用点商店物品检测和购买逻辑,避免购买错误物品,包括更健壮的 OCR 等价处理以及在购买前对单件物品进行校验。
- 确保战斗结束后的任务完成检查仅在通过 link-start 启动任务队列时才会运行。
- 修复信用点商店中已售罄检测和白名单排序,使其基于结构化的 TextRect 结果而非原始矩形进行处理。
- 修正悖论模拟器识别逻辑,改为读取悖论配置文件,而不是直接使用干员名称。
- 修复自定义 Webhook 通知设置的持久化与应用问题,包括请求头的安全存储和正确使用。
- 在更多客户端类型和 OCR 设置(包括 txwy)下,澄清并修正账号切换逻辑。
Enhancements:
- 将宿舍选择流程细化为更清晰的阶段(低心情、信赖自动填充、填满剩余),并强化对“未进驻”筛选和信赖阈值的处理。
- 收紧基建筛选菜单交互,使“未进驻”和“全部设施”筛选能稳定生效与清除。
- 优化信用点商店购买逻辑,更好地遵守“仅折扣”和“保留信用点”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置、启动和 copilot 视图的 ViewModel 与 XAML 绑定,以获得更可预期的行为和布局。
- 改进更新日志生成和依赖下载脚本,包括格式调整以及对最新 MaaDeps 版本的跟踪。
Build:
- 在辅助下载脚本中将 MaaDeps 依赖版本提升至 v2.11.0。
- 将 ImageCropper 的 Python 依赖更新为 MaaFw 5.10 和 OpenCV 4.13。
Documentation:
- 扩展多语言集成与启动文档,增加关于使用 txwy(繁体中文)账号以及登录名匹配的说明与示例。
- 更新 ImageCropper 使用文档,涵盖通过 WGC/Win32 捕获 PC 窗口及相关配置选项。
Chores:
- 刷新多项游戏数据和任务 JSON 资源,包括新关卡、记忆关卡、地块坐标、物品索引、关卡索引、UI
主题任务、肉鸽任务,以及最新内容的本地化资源。
- 更新所有已支持语言的协议与启动文档,说明 txwy 账号格式及相关使用建议。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare the v6.11.0 release with improved dormitory auto-fill logic,
safer and more accurate credit shop purchasing, expanded paradox
simulator batch recognition, enhanced external webhook notifications,
txwy (Traditional Chinese) account support, updated tooling, and
refreshed game data/resources.
New Features:
- Add support for the txwy (Traditional Chinese) game client in account
switching and startup configuration.
- Allow configuring custom HTTP headers for external webhook
notifications and apply them when sending requests.
- Support batch paradox simulation recognition using file-based inputs
instead of operator names.
- Add dynamic sizing and alignment for the copilot "User additional
information" popup grid in the UI.
- Enable the ImageCropper tool to capture PC windows via Win32/WGC in
addition to ADB devices.
Bug Fixes:
- Stabilize dormitory auto-fill behavior by better coordinating
mood-based selection, trust farming, and the "not stationed" filter
state.
- Improve credit shop item detection and purchasing to avoid buying
incorrect items, including more robust OCR equivalence handling and
per-item verification before purchase.
- Ensure post-battle task completion checks only run when the task queue
is started via link-start.
- Fix sold-out detection and whitelist sorting in the credit shop to
operate on structured TextRect results rather than raw rectangles.
- Correct paradox simulator recognition to read paradox configuration
files instead of using operator names directly.
- Fix persistence and application of custom webhook notification
settings, including secure storage and usage of request headers.
- Clarify and correct account switching logic across more client types
and OCR settings, including txwy.
Enhancements:
- Refine dormitory selection into clearer phases (low mood, trust
autofill, fill remaining) and tighten handling of "not stationed"
filtering and trust thresholds.
- Tighten infrastructure filter menu interactions so "not stationed" and
"all facilities" filters apply and clear reliably.
- Optimize credit shop buying logic to better respect discount-only and
credit-reserve options with clearer stopping conditions.
- Polish ViewModel and XAML bindings for external notifications, fight
settings, startup, and copilot views for more predictable behavior and
layout.
- Improve changelog generation and dependency download scripts,
including formatting tweaks and tracking the latest MaaDeps version.
Build:
- Bump MaaDeps dependency version to v2.11.0 in the helper download
script.
- Update ImageCropper Python dependencies to MaaFw 5.10 and OpenCV 4.13.
Documentation:
- Extend multi-language integration and startup documentation with
guidance and examples for using txwy (Traditional Chinese) accounts and
login-name matching.
- Update ImageCropper usage docs to cover PC window capture via
WGC/Win32 and related configuration options.
Chores:
- Refresh multiple game data and task JSON resources, including new
stages, memory stages, tile coordinates, item indices, stage indices, UI
theme tasks, roguelike tasks, and localization resources for the latest
content.
- Update protocol and startup documentation across all supported
languages to describe txwy account formats and recommendations.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
准备 v6.11.0 版本发布,本次更新包括:改进宿舍自动填充逻辑、更安全且更精准的信用点商店购买、扩展悖论模拟器批量识别、增强外部
Webhook 通知、支持 txwy(繁体中文)账号、更新工具链,以及刷新游戏数据/资源。
New Features:
- 在账号切换与启动配置中,新增对 txwy(繁体中文)游戏客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头,并在发送请求时应用这些请求头。
- 支持使用基于文件的输入而非干员名称进行悖论模拟批量识别。
- 为 UI 中 copilot 的“User additional information”弹出网格添加动态尺寸和对齐能力。
- 让 ImageCropper 工具在 ADB 设备之外,额外支持通过 Win32/WGC 捕获 PC 窗口。
Bug Fixes:
- 通过更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选状态,稳定宿舍自动填充行为。
- 改进信用点商店物品检测和购买逻辑,避免购买错误物品,包括更健壮的 OCR 等价处理以及在购买前对单件物品进行校验。
- 确保战斗结束后的任务完成检查仅在通过 link-start 启动任务队列时才会运行。
- 修复信用点商店中已售罄检测和白名单排序,使其基于结构化的 TextRect 结果而非原始矩形进行处理。
- 修正悖论模拟器识别逻辑,改为读取悖论配置文件,而不是直接使用干员名称。
- 修复自定义 Webhook 通知设置的持久化与应用问题,包括请求头的安全存储和正确使用。
- 在更多客户端类型和 OCR 设置(包括 txwy)下,澄清并修正账号切换逻辑。
Enhancements:
- 将宿舍选择流程细化为更清晰的阶段(低心情、信赖自动填充、填满剩余),并强化对“未进驻”筛选和信赖阈值的处理。
- 收紧基建筛选菜单交互,使“未进驻”和“全部设施”筛选能稳定生效与清除。
- 优化信用点商店购买逻辑,更好地遵守“仅折扣”和“保留信用点”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置、启动和 copilot 视图的 ViewModel 与 XAML 绑定,以获得更可预期的行为和布局。
- 改进更新日志生成和依赖下载脚本,包括格式调整以及对最新 MaaDeps 版本的跟踪。
Build:
- 在辅助下载脚本中将 MaaDeps 依赖版本提升至 v2.11.0。
- 将 ImageCropper 的 Python 依赖更新为 MaaFw 5.10 和 OpenCV 4.13。
Documentation:
- 扩展多语言集成与启动文档,增加关于使用 txwy(繁体中文)账号以及登录名匹配的说明与示例。
- 更新 ImageCropper 使用文档,涵盖通过 WGC/Win32 捕获 PC 窗口及相关配置选项。
Chores:
- 刷新多项游戏数据和任务 JSON 资源,包括新关卡、记忆关卡、地块坐标、物品索引、关卡索引、UI
主题任务、肉鸽任务,以及最新内容的本地化资源。
- 更新所有已支持语言的协议与启动文档,说明 txwy 账号格式及相关使用建议。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare the v6.11.0 release with improved dormitory auto-fill logic,
safer and more accurate credit shop purchasing, expanded paradox
simulator batch recognition, enhanced external webhook notifications,
txwy (Traditional Chinese) account support, updated tooling, and
refreshed game data/resources.
New Features:
- Add support for the txwy (Traditional Chinese) game client in account
switching and startup configuration.
- Allow configuring custom HTTP headers for external webhook
notifications and apply them when sending requests.
- Support batch paradox simulation recognition using file-based inputs
instead of operator names.
- Add dynamic sizing and alignment for the copilot "User additional
information" popup grid in the UI.
- Enable the ImageCropper tool to capture PC windows via Win32/WGC in
addition to ADB devices.
Bug Fixes:
- Stabilize dormitory auto-fill behavior by better coordinating
mood-based selection, trust farming, and the "not stationed" filter
state.
- Improve credit shop item detection and purchasing to avoid buying
incorrect items, including more robust OCR equivalence handling and
per-item verification before purchase.
- Ensure post-battle task completion checks only run when the task queue
is started via link-start.
- Fix sold-out detection and whitelist sorting in the credit shop to
operate on structured TextRect results rather than raw rectangles.
- Correct paradox simulator recognition to read paradox configuration
files instead of using operator names directly.
- Fix persistence and application of custom webhook notification
settings, including secure storage and usage of request headers.
- Clarify and correct account switching logic across more client types
and OCR settings, including txwy.
Enhancements:
- Refine dormitory selection into clearer phases (low mood, trust
autofill, fill remaining) and tighten handling of "not stationed"
filtering and trust thresholds.
- Tighten infrastructure filter menu interactions so "not stationed" and
"all facilities" filters apply and clear reliably.
- Optimize credit shop buying logic to better respect discount-only and
credit-reserve options with clearer stopping conditions.
- Polish ViewModel and XAML bindings for external notifications, fight
settings, startup, and copilot views for more predictable behavior and
layout.
- Improve changelog generation and dependency download scripts,
including formatting tweaks and tracking the latest MaaDeps version.
Build:
- Bump MaaDeps dependency version to v2.11.0 in the helper download
script.
- Update ImageCropper Python dependencies to MaaFw 5.10 and OpenCV 4.13.
Documentation:
- Extend multi-language integration and startup documentation with
guidance and examples for using txwy (Traditional Chinese) accounts and
login-name matching.
- Update ImageCropper usage docs to cover PC window capture via
WGC/Win32 and related configuration options.
Chores:
- Refresh multiple game data and task JSON resources, including new
stages, memory stages, tile coordinates, item indices, stage indices, UI
theme tasks, roguelike tasks, and localization resources for the latest
content.
- Update protocol and startup documentation across all supported
languages to describe txwy account formats and recommendations.
</details>
</details>
</details>
## Summary by Sourcery
通过将串口配置与命令执行分离,并对共享客户端实例的访问强制使用互斥锁保护,改进 ADB-lite 客户端管理。
改进内容:
- 添加锁定辅助工具,在执行 connect、shell、exec、push 和交互式 shell 命令之前,验证并保护对共享 ADB-lite
客户端的访问。
- 在 PlatformIO/AdbLiteIO 上引入可配置的 ADB
串口,并在客户端(重新)初始化时提供安全机制,同时在客户端创建失败时记录错误日志。
- 调整 ADB 释放逻辑,仅在存在 ADB-lite 客户端时才发出释放命令,从而减少不必要的操作。
- 连接 AdbController,将设备地址向下传递到平台 I/O 层,以在各类命令中实现 ADB-lite 客户端的一致使用。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve ADB-lite client management by separating serial configuration
from command execution and enforcing mutex-guarded access to the shared
client instance.
Enhancements:
- Add a locking helper to validate and guard access to the shared
ADB-lite client before executing connect, shell, exec, push, and
interactive shell commands.
- Introduce a configurable ADB serial on PlatformIO/AdbLiteIO with safe
client (re)initialization and error logging when client creation fails.
- Adjust ADB release logic to only issue release commands when an
ADB-lite client is present, reducing unnecessary operations.
- Wire AdbController to propagate the device address into the platform
I/O layer for consistent ADB-lite client usage across commands.
</details>
## Summary by Sourcery
在提供的 resource/tasks/tasks.json
差异中看不到任何功能性更改;根据现有信息,此次发布似乎不包含代码、配置或文档方面的修改。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
No functional changes are visible in the provided diff for
resource/tasks/tasks.json; the release appears to contain no code,
config, or documentation modifications based on the available
information.
</details>
## Sourcery 总结
为作战任务新增基于仓库库存的掉落目标模式,重做自动公招标签偏好及保留逻辑,改进任务队列交互体验和通知处理,并增强平台与文件系统工具的健壮性,同时更新配置处理方式和文档。
新功能:
- 为作战任务中指定掉落物新增“按仓库库存为目标”的模式,包括按核心任务的运行时追踪,以及展示当前库存和有效刷取数量的 UI。
- 新增对可配置公招标签(包括机器人)的保留支持,通过开关 UI 和回调实现,取代旧的“1 级干员跳过”行为。
- 允许在任务队列中通过新的复制操作来重复已有任务。
- 暴露通知可用状态,并在启动时以及启用通知时展示 toast 通知健康检查结果。
- 新增可复用的公招标签列表归一化工具,以及用于迁移旧版公招保留标签配置的 JSON 转换器。
缺陷修复:
- 在视觉辅助工具中避免出现无效的零大小 ROI:将全零矩形视为对整张图片的请求,并仅记录真正的空区域日志。
- 修复子进程中的 POSIX shell 命令执行行为,避免在 `exec` 失败后返回并破坏父进程状态。
- 通过使用错误码和受保护的目录遍历,使调试图像维护对权限与文件系统错误更加健壮。
- 确保任务索引在选择变更后保持一致,并在任务队列日志及 UI 绑定中统一使用正确的任务显示名称属性。
- 正确处理仓库识别更新和任务状态变化,使基于库存的掉落目标能正确刷新,同时在任务运行时避免修改配置。
- 在加载与序列化过程中对公招标签进行归一化,避免重复或空标签项。
- 在存在备用基础 URL 时,避免意外退回到使用缓存的 API 响应。
优化改进:
- 优化作战设置的用户体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进掉落相关绑定的更新逻辑。
- 重做自动公招参数以支持偏好的 3★ 标签和独立的保留标签,调整 toast 行为,并将旧的 `skip_robot`
仅保留在协议层以保证向后兼容。
- 清理重复的布尔配置解析逻辑,在多个设置视图模型和服务中统一使用强类型的 `ConfigurationHelper.GetValue` 调用。
- 改进 tooltip 基础设施,以支持自定义 tooltip 内容、启用状态以及更丰富的绑定。
- 调整内部日志辅助工具和基础设施生产任务日志,使日志信息更清晰、更结构化,并统一日志记录器用法。
- 改善启动行为,将配置恢复和 toast 通知检查拆分为后台任务,并更新高级设置可见性逻辑。
- 收紧 adb-lite shell 封装及其他一些基础设施代码路径,使其更清晰和更健壮。
CI:
- 在多个工作流中将第三方 GitHub Actions(push 和 AI 分析)固定到具体的提交 SHA,以提升 CI 行为的可复现性。
文档:
- 更新所有支持语言的集成协议文档,弃用 `skip_robot`,记录新的 `skip_tags` 参数,并调整公招示例。
- 在所有支持语言中扩展回调模式文档,加入新的 `RecruitPreservedTag` 通知说明。
- 明确自动公招手册内容,描述偏好 3★ 标签、保留标签行为以及更新后的通知触发条件。
<details>
<summary>Original summary in English</summary>
## Sourcery 总结
为战斗任务引入基于仓库库存的目标掉落模式,重构自动公招偏好与保留标签配置,改进任务队列交互体验和通知健康检查,并加强平台、文件系统与配置处理的健壮性。
新特性:
- 为战斗任务新增“基于仓库库存的目标掉落模式”,包括按核心任务进行运行时追踪,以及在 UI 中展示当前库存和有效刷取数量。
- 为自动公招新增“偏好 3★ 标签”和“保留标签”配置,包含新的 UI 控件、核心支持和回调通知。
- 允许在任务队列中通过“复制”操作复用现有任务。
- 暴露 toast 通知的可用性,并向用户展示启动时的健康检查结果。
- 引入可复用的助手工具,用于公招标签列表的规范化处理以及旧版公招配置的迁移。
缺陷修复:
- 在视觉助手中避免出现无效的零尺寸 ROI:将全零矩形视为“全图请求”,只对真正为空的区域进行日志记录。
- 修复子进程中 POSIX Shell 命令执行的问题,确保 exec 失败会正确终止子进程,而不会破坏父进程状态。
- 通过受保护的目录遍历和支持错误码的日志记录,提高调试图像维护在面对文件系统和权限错误时的健壮性。
- 当选择变化时,保持任务队列模型、日志和绑定中的任务索引与显示名称一致。
- 修正仓库识别更新与任务状态变更的处理逻辑,确保基于库存的掉落目标能够正确刷新且不会在运行过程中修改配置。
- 在加载与序列化时规范化公招标签,避免出现重复或空标签项。
- 当为 Maa API 请求配置了备用基础 URL 时,避免回退到缓存的 API 响应。
- 改进基建任务中的产品变更与无人机使用流程,更好地处理产品识别不稳定和产品变更失败的情况,避免阻塞干员上岗。
- 确保肉鸽藏品刷取在退出“最后领奖”流程时正确重置配置标记。
改进与优化:
- 优化战斗设置相关的交互体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进与运行时状态绑定的掉落绑定刷新逻辑。
- 重构自动公招参数,使其支持“偏好 3★ 标签”和“独立的保留标签”,同时将传统的 `skip_robot` 限制在协议层用于兼容旧版。
- 通过统一使用 `ConfigurationHelper.GetValue`
替代临时的布尔解析逻辑,实现强类型的集中化配置访问,覆盖各项设置与服务代码。
- 扩展工具提示(tooltip)基础设施,以支持自定义内容、启用状态以及更丰富的数据绑定。
- 精简内部日志助手工具,生成更清晰、更结构化的日志并简化日志记录调用方式。
- 调整启动流程,将配置恢复与 toast 通知检查放入后台任务执行,并优化高级设置的显示逻辑。
- 收紧 adb-lite shell 封装及相关平台代码,使执行路径更清晰、更可靠。
- 更新窗口、托盘、睡眠管理及其他 GUI 行为,以更稳定地遵循新的配置默认值。
- 改进基建产物与无人机插件的行为,提供更清晰的日志,并采用更严格的产品识别置信度阈值。
持续集成(CI):
- 将用于 push 和 AI 分析的第三方 GitHub Actions 固定到具体的提交 SHA,以提升 CI 行为的可复现性。
文档:
- 更新所有支持语言的对接协议文档,弃用 `skip_robot`,补充新的 `skip_tags` 参数,并刷新自动公招示例。
- 在所有支持语言中扩展回调协议文档,新增 `RecruitPreservedTag` 通知说明。
- 明确自动公招说明文档,对“偏好 3★ 标签”、保留标签的行为以及更新后的通知触发条件进行详细说明。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Introduce inventory-based target drop mode for fight tasks, rework auto
recruitment preferences and preserved tags, improve task queue UX and
notification health checks, and harden platform, filesystem, and
configuration handling.
New Features:
- Add inventory-based target drop mode for fight tasks, including
runtime tracking per core task and UI display of current inventory and
effective farming quantity.
- Add preferred 3★ tag and preserved tag configuration for auto
recruitment, with new UI controls, core support, and callback
notifications.
- Allow duplicating existing tasks in the task queue via a copy action.
- Expose toast notification availability and surface a startup health
check to users.
- Introduce reusable helpers for recruitment tag list normalization and
migration of legacy recruitment configuration.
Bug Fixes:
- Prevent invalid zero-size ROIs in vision helpers by treating all-zero
rectangles as full-image requests and logging only truly empty regions.
- Fix POSIX shell command execution in child processes so exec failures
terminate the child without corrupting the parent process state.
- Harden debug image maintenance against filesystem and permission
errors through guarded directory traversal and error-code-aware logging.
- Keep task indices and display names consistent across task queue
models, logs, and bindings when the selection changes.
- Correct handling of depot recognition updates and task state changes
so inventory-based drop targets refresh correctly without mutating
configuration during runs.
- Normalize recruitment tags on load and serialization to avoid
duplicate or empty items.
- Avoid falling back to cached API responses when a fallback base URL is
configured for Maa API requests.
- Improve product change and drone-usage workflows in infrastructure
tasks to better handle weak product detection and product-change
failures without blocking staffing.
- Ensure roguelike collectible runs reset configuration flags correctly
when exiting last-reward handling.
Enhancements:
- Refine fight settings UX with clearer Chinese XML comments, renamed
drag state properties, and improved drop-binding refresh logic tied to
runtime state.
- Rework auto recruitment parameters to support preferred 3★ tags and
independent preserved tags while keeping legacy `skip_robot` only at the
protocol layer for backward compatibility.
- Centralize strongly typed configuration access by replacing ad-hoc
boolean parsing with `ConfigurationHelper.GetValue` across settings and
services.
- Extend tooltip infrastructure to support custom content, enabled
state, and richer bindings.
- Streamline internal logging helpers to produce clearer, more
structured logs and simplify logger usage.
- Adjust startup behavior to run config recovery and toast notification
checks in background tasks and refine advanced settings visibility.
- Tighten adb-lite shell wrapping and related platform code for clearer,
more robust execution paths.
- Update window, tray, sleep management, and other GUI behaviors to
respect new configuration defaults more reliably.
- Improve infrastructure production and drone plugins with clearer
logging and stricter product verification confidence thresholds.
CI:
- Pin third-party GitHub Actions used for pushes and AI analysis to
specific commit SHAs for more reproducible CI behavior.
Documentation:
- Update integration protocol docs in all supported languages to
deprecate `skip_robot`, document the new `skip_tags` parameter, and
refresh auto recruit examples.
- Extend callback schema documentation in all supported languages with
the new `RecruitPreservedTag` notification.
- Clarify auto recruitment manuals to describe preferred 3★ tags,
preserved tag behavior, and updated notification triggers.
</details>
</details>
## Summary by Sourcery
更新 AdbLiteIO,以按设备序列号管理 adb 客户端,并改进线程安全的访问与释放行为。
增强点:
- 在 `adb shell`、`exec-out`、`push` 和交互式 shell 命令中,显式匹配并传递设备序列号,从而实现按设备管理
adb 客户端。
- 引入一个助手工具,以设备序列号为键延迟创建并复用 adb 客户端,并通过互斥锁进行保护,以支持 `call_command` 和
`interactive_shell` 的并发访问。
- 调整 adb 释放逻辑,在执行命令时避免持有客户端互斥锁,从而防止潜在的死锁。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update AdbLiteIO to manage adb clients per device serial and improve
thread-safe access and release behavior.
Enhancements:
- Match and pass device serials explicitly in adb shell, exec-out, push,
and interactive shell commands, allowing per-device adb client
management.
- Introduce a helper to lazily create and reuse adb clients keyed by
device serial, guarded by a mutex to support concurrent access from
call_command and interactive_shell.
- Adjust adb release logic to avoid holding the client mutex while
executing commands, preventing potential deadlocks.
</details>
生息演算应该差不多了,之后发 6.11.0beta 了
## Summary by Sourcery
为 v6.10.6 版本优化生产环境自动化、连接处理、通知机制和文档。
Bug 修复:
- 改进基础设施生产中的产品识别与变更流程,包括重试、校验以及在不阻塞人员调度的前提下进行失败上报。
- 修复无人机使用逻辑,正确区分自定义基础设施配置与基于参数的设置,并确保在不同任务之间正确跟踪状态。
- 修正 RegionOCRer 的 ROI 处理方式,对整幅图像应用掩码,避免错误的坐标偏移。
- 收紧 ADB 连接行为,正确处理仅包含序列号的地址,并确保连接命令既被执行又能正确上报连接成功。
- 规范 Bark 和 Gotify 通知 URL,处理尾随斜杠,并稳健地构造消息端点。
- 确保在 WPF 任务队列视图模型中移除任务条目时,同时释放视图模型以解除事件订阅。
- 调整类 Roguelike 模式的最后奖励逻辑,在每次运行后始终重置可收集模式标志,而不受主题影响。
增强:
- 在基础设施任务中新增带置信度阈值保护的产品检测,并将新的变更流程接入无人机使用决策和 UI 日志。
- 在任务设置视图模型中引入可复用的 UI 刷新作用域辅助工具,并在多个任务队列设置面板中采用,以避免刷新状态不一致。
- 在所有支持的语言和集成协议文档中,更精确地记录 RA-4 回收算法的前置条件和流程。
- 明确并扩展关于 ADB 触控模式使用及建议的内部知识。
- 改进遮罩模板匹配器中的日志输出与缓存管理格式,以便更好地诊断问题。
- 新增对产品变更失败的上报支持,将其记录到 WPF UI 日志中。
CI:
- 使用脚本化的基于 wingetcreate 的流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用 Token 提交更新后的包清单。
文档:
- 更新所有语种的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4 策略流程、操作员要求以及建筑移除相关说明。
- 扩展内部问题日志分析知识库,增加关于 ADB 触控模式行为及使用建议的详细指引。
杂项:
- 新增内部 Cursor 技能定义,用于结构化的多模块代码评审报告流水线。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refine infrastructure production automation, connection handling,
notifications, and documentation for the v6.10.6 release.
Bug Fixes:
- Improve product recognition and change flow in infrastructure
manufacturing, including retries, verification, and failure reporting
without blocking staffing.
- Fix drone usage logic to distinguish between custom infrastructure
configuration and parameter-based settings, and ensure correct state
tracking across tasks.
- Correct RegionOCRer ROI handling by applying the mask over the full
image and avoiding incorrect coordinate offsets.
- Tighten ADB connect behavior to properly handle serial-only addresses
and ensure the connect command both executes and reports a successful
connection.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Ensure task item removal in the WPF task queue view model disposes
view models to release event subscriptions.
- Adjust roguelike last reward logic to always reset collectible mode
flags after runs, regardless of theme.
Enhancements:
- Add confidence-threshold-guarded product detection in infrastructure
tasks and wire new change flows into drone usage decisions and UI
logging.
- Introduce a reusable UI refreshing scope helper in task settings view
models and adopt it across multiple task queue settings panels to avoid
inconsistent refresh state.
- Document RA-4 reclamation algorithm prerequisites and flow more
precisely across all supported languages and integration protocol docs.
- Clarify and expand internal knowledge about ADB touch mode usage and
recommendations.
- Improve logging and cache management formatting in masked template
matcher for better diagnostics.
- Add support for reporting product change failures to the WPF UI log.
CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.
Documentation:
- Update reclamation algorithm RA-1/RA-4/RA-15 manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
operator requirements, and building removal notes.
- Extend internal issue log analysis knowledge base with detailed
guidance on ADB touch mode behavior and recommendations.
Chores:
- Add an internal Cursor skill definition for a structured, multi-module
code review report pipeline.
</details>
## Summary by Sourcery
完善用于 v6.10.6 版本的基础设施生产自动化、连接处理、通知端点、Roguelike 奖励标志以及回收算法文档。
Bug 修复:
- 通过在整张图像上应用掩码并避免错误的基于 ROI 的坐标偏移,修正 RegionOCRer 的掩码 OCR 处理。
- 收紧 ADB 连接处理,避免仅通过序列号发起的无效连接尝试,并确保 `connect` 命令既能正确执行,又能准确报告连接成功。
- 修复 WPF 任务队列项移除逻辑,以便在移除时释放任务项视图模型并注销事件订阅。
- 确保 Roguelike 可收集模式标志在每次运行后都会重置,而不受主题影响,从而使“烧水模式”能够正确恢复到用户设置。
- 规范 Bark 和 Gotify 通知 URL,以处理尾部斜杠,并稳健地构造消息端点。
- 调整基础设施无人机的使用方式,以区分基于参数的设置与自定义基础设施配置,避免在自定义模式下使用参数无人机。
增强:
- 在基础设施生产任务中引入带置信度阈值保护的产品检测,并将其接入产品变更逻辑和无人机使用决策。
- 改进基础设施产品切换流程,引入验证、重试与失败报告机制,同时在产品切换仍失败的情况下允许人员编排继续进行。
- 优化带掩码模板匹配器的缓存日志和布局,以便诊断信息更清晰。
- 将产品切换失败情况上报到 WPF UI 日志。
- 扩展关于 ADB 触控模式行为及推荐使用模式的内部知识库。
CI:
- 用基于脚本的 `wingetcreate` 流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用令牌提交更新后的包清单。
文档:
- 更新所有本地化版本中的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4
策略流程、前置条件、操作员配置和建筑移除说明。
杂项:
- 新增内部 Cursor 技能定义,以支持结构化的、多模块的代码审查报告流水线。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refine infrastructure production automation, connection handling,
notification endpoints, roguelike reward flags, and reclamation
algorithm documentation for the v6.10.6 release.
Bug Fixes:
- Correct RegionOCRer masked OCR handling by applying masks over the
full image and avoiding incorrect ROI-based coordinate offsets.
- Tighten ADB connection handling to avoid invalid serial-only
connection attempts and ensure connect commands both execute and report
successful connections.
- Fix WPF task queue item removal to dispose task item view models and
release event subscriptions.
- Ensure roguelike collectible mode flags are reset after runs
regardless of theme so burn-water mode correctly reverts to user
settings.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Adjust infrastructure drone usage to distinguish between
parameter-based settings and custom infrastructure config, and avoid
using parameter drones in custom mode.
Enhancements:
- Introduce confidence-threshold-guarded product detection in
infrastructure production tasks and wire it into product change logic
and drone usage decisions.
- Improve infrastructure product change flows with verification, retry,
and failure reporting, while allowing staffing to proceed when product
changes still fail.
- Refine masked template matcher cache logging and layout for clearer
diagnostics.
- Report product change failures to the WPF UI log.
- Extend internal knowledge base on ADB touch mode behavior and
recommended usage patterns.
CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.
Documentation:
- Update RA-1/RA-4/RA-15 reclamation algorithm manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
prerequisites, operator setup, and building removal notes.
Chores:
- Add an internal Cursor skill definition to support a structured,
multi-module code review report pipeline.
</details>
* fix: Use wingetcreate instead of winget-releaser
* fix: Pin to a version and hash
* fix: Specify to use PowerShell
* fix: Use GitHub API for fetching the download URLs
* fix: Don't set GITHUB_TOKEN
* fix: Trim leading character from version
* fix: Anchor regex for safety
* chore: Use newer API version
* fix: Ensure terminating errors terminate
## Summary by Sourcery
为 `Reclamation3.json` 更新 RA Reclamation3 任务配置。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update RA Reclamation3 task configuration for Reclamation3.json.
</details>
## Summary by Sourcery
为回收算法任务和配置添加 RA-4 支持,改进超时和停滞检测处理,并优化模板匹配缓存行为和 GUI 工具提示。
New Features:
- 在核心任务、配置、协议定义、UI 配置以及多语言文档中引入 RA-4 作为新的回收算法模式。
- 在运行时状态和游戏设置 UI 中开放启用/禁用停滞检测的配置。
- 为当前理智刷图阶段方案添加 UI 工具提示说明,包括自定义关卡代码的提示。
Bug Fixes:
- 在线索交换被禁用时,通过默认产品类型,确保接待任务能计算出有效效率。
- 修复支线剧情重新开启时的导航和关卡处理,避免超时和错误的任务终止。
- 通过使用依赖属性而不是计算属性来跟踪内容空与否,使 TooltipBlock 的提示文本支持数据绑定。
- 修正信用战斗的战斗后处理逻辑,确保正确等待动作完成。
Enhancements:
- 将 `MaskedCcoeffMatcher` 中的 DFT 方案缓存替换为受 LRU 限制的模板方案缓存,并改为每次调用计算
DFT,同时加入淘汰日志和缓存大小追踪。
- 限制与超时相关的配置值在安全范围内,以避免整数溢出和无效的定时器间隔。
- 更新支线剧情重新开启关卡的导航处理逻辑,改为使用专用导航任务,而不是简单禁用导航。
- 调整 RA-1 回收任务行为和文档,包括部署重试机制和动画等待时间的调优。
Documentation:
- 在所有支持的语言中记录 RA-4 回收算法模式、流程与需求。
- 在所有地区的协议集成文档中描述 RA-4 模式。
- 为版本 v6.10.5 更新变更日志,包含新特性、改进、修复及其他说明。
Chores:
- 移除未使用的战斗关卡设置,并清理相关 UI 绑定和布局。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add RA-4 support to Reclamation Algorithm tasks and configuration,
improve timeout and stall detection handling, and refine template
matching cache behavior and GUI tooltips.
New Features:
- Introduce RA-4 as a new Reclamation Algorithm mode across core tasks,
configuration, protocol definitions, UI configuration, and multilingual
documentation.
- Expose configuration for enabling or disabling stall detection in both
runtime state and game settings UI.
- Add UI tooltip guidance for the current sanity farming stage plan,
including hints for custom stage codes.
Bug Fixes:
- Ensure reception task computes valid efficiency when clue exchange is
disabled by defaulting the product type.
- Fix side story reopen navigation and stage handling to avoid timeouts
and incorrect task termination.
- Allow TooltipBlock tooltip text to be data-bound by tracking emptiness
via a dependency property instead of a computed property.
- Correct credit fight post-battle handling to wait properly for action
completion.
Enhancements:
- Replace the DFT plan cache in MaskedCcoeffMatcher with an LRU-limited
template plan cache and per-call DFT computation, including eviction
logging and cache size tracking.
- Clamp timeout-related configuration values to safe ranges to avoid
integer overflow and invalid timer intervals.
- Update stage navigation handling for sidestory reopen stages to use
dedicated navigation tasks rather than disabling navigation.
- Adjust RA-1 Reclamation task behavior and documentation, including
deployment retries and animation wait tuning.
Documentation:
- Document RA-4 Reclamation Algorithm mode, flow, and requirements in
all supported languages.
- Describe RA-4 mode in protocol integration documentation for all
locales.
- Update changelog for version v6.10.5 with new features, improvements,
fixes, and other notes.
Chores:
- Remove unused fight stage settings and clean up related UI bindings
and layout.
</details>
## Summary by Sourcery
更新游戏自动化功能及文档,改进配置恢复行为,并优化关卡掉落处理与远程控制日志行为。
New Features:
- 在所有支持的语言中编写并公开新的迷你游戏自动化功能文档,包括活动商店与“再遗战地(Reclamation
Algorithm)”商店相关的自动化流程。
- 为“再遗战地·重启锚点(Reclamation Algorithm Relaunch Anchor)”主题添加支持与配置
schema,并加入 RA-1 和 RA-15 自动化模式。
- 为 YoStar EN/JP 服务器的 UR 关卡以及额外的“再遗战地”资源提供新的关卡/任务定义。
Bug Fixes:
- 放宽对剿灭作战关卡掉落的处理逻辑,对于缺失合成玉的情况不再强制停止任务,以避免在识别异常时提前终止。
- 改进配置加载逻辑,可从旧配置文件中恢复缺失或不匹配的配置,并在执行修复时通知用户。
Enhancements:
- 将 Android、Linux 和 macOS 设备连接指南重构为明确的步骤容器,并在所有支持语言中厘清 ADB 与 Python
的使用流程。
- 更新干员与仓库识别工具文档,统一列出支持的导出格式,并移除过时的 beta/alpha 标签。
- 明确“再遗战地”使用文档与集成协议,反映 Tales 默认主题、新的重启锚点模式以及不同主题的专有参数。
- 统一特殊文档容器命名,在各语言的文档规范中将 demo-wrapper 容器重命名为 window。
- 调整远程控制启动逻辑,通过其公共 API 而非反射来清理任务队列视图模型日志。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update game automation features and documentation, improve configuration
recovery behavior, and refine stage drop handling and remote control
logging behavior.
New Features:
- Document and expose the new mini-game automation feature across
supported languages, including event shop and Reclamation Algorithm shop
workflows.
- Add support and configuration schema for the Reclamation Algorithm
Relaunch Anchor theme with RA-1 and RA-15 automation modes.
- Provide new stage/task definitions for UR stages for YoStar EN/JP
servers and additional Reclamation Algorithm resources.
Bug Fixes:
- Relax annihilation stage drop handling so missing orundum no longer
forcibly stops the task, avoiding premature termination on recognition
anomalies.
- Improve configuration loading to recover missing or mismatched
configurations from old config files and notify the user when repairs
are applied.
Enhancements:
- Restructure Android, Linux, and macOS device connection guides into
explicit step containers and clarify ADB and Python usage flows in all
supported languages.
- Update operator and depot recognition tool docs to list supported
export formats consistently and remove obsolete beta/alpha labels.
- Clarify Reclamation Algorithm usage docs and integration protocol to
reflect the Tales default theme, new Relaunch Anchor modes, and
theme-specific parameters.
- Standardize special documentation containers by renaming the
demo-wrapper container to window in documentation guidelines across
languages.
- Adjust remote control startup to clear the task queue view model log
through its public API instead of reflection.
</details>
把基建排班文档中的链接从master存档分支改到了v2分支
## Summary by Sourcery
文档:
- 更新基础调度模式文档(EN/JA/KO/ZH)中的示例 JSON 链接,使其引用 master-v2 分支中的资源。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Documentation:
- Update example JSON links in base scheduling schema docs (EN/JA/KO/ZH)
to reference the master-v2 branch resources.
</details>
## Summary by Sourcery
更新回收任务模式的处理方式,使用统一的标志位(flags)风格枚举,并通过改进的验证和容错机制,收紧 JSON 枚举转换行为。
New Features:
- 引入统一的 `ReclamationMode` 枚举,使用标志位(flags)风格的取值来同时表示 Tales 和 Relaunch
Anchor 模式。
- 在宽容(tolerant)的 JSON 枚举转换器中,新增对标志位(flags)风格枚举组合以及作为字典键使用的支持。
Bug Fixes:
- 通过更改底层数字取值,确保 Relaunch Anchor 的回收模式值在 C# 与 C++ 配置之间保持一致。
- 在切换主题时,正确保留或重置回收清除存储(clear store)和模式设置,并验证所选模式与当前主题是否兼容。
Enhancements:
- 优化宽容枚举 JSON 转换器,通过预计算掩码和预定义集合来验证枚举值,并在出错时抛出带路径信息的
`JsonException`,而不是默默回退到默认值。
- 简化回收设置视图模型,将分离的模式列表统一为单一模式列表,并根据所选主题进行刷新。
- 明确容错根级转换行为,改为依赖具备路径信息的枚举转换错误来恢复无效属性。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update reclamation task mode handling to use a unified flags-style enum
and tighten JSON enum conversion behavior with improved validation and
fault tolerance.
New Features:
- Introduce a unified ReclamationMode enum with flags-style values to
represent both Tales and Relaunch Anchor modes.
- Add support for flags-style enum combinations and dictionary keys in
the tolerant JSON enum converter.
Bug Fixes:
- Ensure Reclamation mode values for Relaunch Anchor align between C#
and C++ configurations by changing the underlying numeric values.
- Preserve or reset reclamation clear store and mode settings correctly
when switching themes, and validate that the selected mode is compatible
with the current theme.
Enhancements:
- Refine the tolerant enum JSON converter to validate enum values via a
precomputed mask and defined set, and to throw JsonException with path
information instead of silently defaulting.
- Simplify reclamation settings view model by unifying separate mode
lists into a single mode list that is refreshed based on the selected
theme.
- Clarify fault-tolerant root conversion behavior to rely on path-aware
enum conversion errors for recovering invalid properties.
</details>
## Summary by Sourcery
围绕共享的 `ReclamationMode` 枚举统一回收任务模式处理方式,并相应更新 UI 和配置流程。
New Features:
- 引入共享的 `ReclamationMode` 枚举,在各类回收主题和任务中统一用于表示算法模式。
Bug Fixes:
- 确保 `RelaunchAnchor` 模式选择在使用新的基于位标志(bitflag)的模式值时,仍能正确映射到 `RA-1` 和
`RA-15`,并保持已序列化配置中的现有行为不变。
Enhancements:
- 更新回收设置视图模型,使其暴露统一的模式列表;该列表会根据当前选中的主题动态重建,同时在可能的情况下保留当前选择。
- 调整 `ReclamationTask` 及相关配置类,使用新的 `ReclamationMode` 枚举来替代原先按主题划分的整型模式值。
- 在主题或底层任务数据变更时刷新回收模式选项,以保持 UI 与模型的同步。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Unify reclamation task mode handling around a shared ReclamationMode
enum and update UI and config flows accordingly.
New Features:
- Introduce a shared ReclamationMode enum used across reclamation themes
and tasks to represent algorithm modes.
Bug Fixes:
- Ensure RelaunchAnchor mode selection correctly maps to RA-1 and RA-15
using the new bitflag-based mode values while maintaining existing
behavior in serialized configs.
Enhancements:
- Update reclamation settings view model to expose a unified mode list
that is dynamically rebuilt based on the selected theme while preserving
the current selection where possible.
- Adjust ReclamationTask and related config classes to use the new
ReclamationMode enum instead of theme-specific integer modes.
- Refresh reclamation mode options whenever the theme or underlying task
data changes to keep the UI and model in sync.
</details>
增强内容:
- 将原本分别使用整数和主题特定表示的回收模式,统一替换为在任务配置和视图模型中通用的 `ReclamationMode` 枚举。
- 更新回收设置的 UI,使其根据所选主题动态生成模式列表,并在主题变化时保持已选模式同步。
- 调整配置转换和任务序列化逻辑,使其使用新的枚举来读写回收模式,同时保持现有行为不变。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
围绕共享的 `ReclamationMode` 枚举统一回收任务模式处理方式,并相应更新 UI 和配置流程。
New Features:
- 引入共享的 `ReclamationMode` 枚举,在各类回收主题和任务中统一用于表示算法模式。
Bug Fixes:
- 确保 `RelaunchAnchor` 模式选择在使用新的基于位标志(bitflag)的模式值时,仍能正确映射到 `RA-1` 和
`RA-15`,并保持已序列化配置中的现有行为不变。
Enhancements:
- 更新回收设置视图模型,使其暴露统一的模式列表;该列表会根据当前选中的主题动态重建,同时在可能的情况下保留当前选择。
- 调整 `ReclamationTask` 及相关配置类,使用新的 `ReclamationMode` 枚举来替代原先按主题划分的整型模式值。
- 在主题或底层任务数据变更时刷新回收模式选项,以保持 UI 与模型的同步。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Unify reclamation task mode handling around a shared ReclamationMode
enum and update UI and config flows accordingly.
New Features:
- Introduce a shared ReclamationMode enum used across reclamation themes
and tasks to represent algorithm modes.
Bug Fixes:
- Ensure RelaunchAnchor mode selection correctly maps to RA-1 and RA-15
using the new bitflag-based mode values while maintaining existing
behavior in serialized configs.
Enhancements:
- Update reclamation settings view model to expose a unified mode list
that is dynamically rebuilt based on the selected theme while preserving
the current selection where possible.
- Adjust ReclamationTask and related config classes to use the new
ReclamationMode enum instead of theme-specific integer modes.
- Refresh reclamation mode options whenever the theme or underlying task
data changes to keep the UI and model in sync.
</details>
</details>
## Summary by Sourcery
重构宽容枚举 JSON 转换器,以复用解析逻辑,并扩展对作为 JSON 属性名使用的枚举值的支持。
增强内容:
- 将通用的宽容枚举解析逻辑提取到一个辅助方法中,在字符串场景和属性名场景中复用。
- 为枚举序列化为 JSON 属性名时的宽容枚举处理添加读/写支持。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refactor tolerant enum JSON converter to reuse parsing logic and extend
support to enum values used as JSON property names.
Enhancements:
- Extract shared tolerant enum parsing into a helper method reused
across string and property-name scenarios.
- Add read/write support for tolerant enum handling when enums are
serialized as JSON property names.
</details>
## Summary by Sourcery
在改进更新流程、任务配置和 CI 行为的同时,增强文档与本地化格式化支持。
New Features:
- 新增对主题特定 Reclamation 模式的支持,包括针对 Tales 和 Relaunch Anchor 的独立模式,并更新相关 UI
绑定和提示信息。
- 引入重试机制,在回退到整包更新之前,等待 MirrorChyan OTA 包可用。
- 在多语言文档中补充说明嵌套容器、标记(markers)、隐藏文本、步骤、智能图片容器以及字段容器的使用方法。
Bug Fixes:
- 修复多处面向用户的消息,统一改为使用本地化格式化助手而非手动字符串格式化,避免在边缘场景中出现格式问题。
- 确保 MirrorChyan CDK 错误处理在网络或 JSON 解析错误发生时,能够正确记录上下文日志并更新获取失败状态。
Enhancements:
- 将 MirrorChyan 更新处理重构为专门的助手模块,用于 HTTP 获取、错误处理和 OTA 等待逻辑。
- 调整高级设置的可见性,使其依赖当前任务和 Reclamation 主题,并在主题变化时自动刷新。
- 在核心和 GUI 两侧优化 Reclamation 配置,通过将模式拆分为 Tales 和 Relaunch Anchor
变体,并按主题校验模式取值。
- 改进小游戏任务列表以及其他 UI 代码路径的可读性与行为细节。
Build:
- 将 GitHub Actions artifact 上传步骤升级到最新的 action 版本,并配置制品在存储时不进行压缩。
- 优化 PR 提交检查工作流,以区分无效标题与合并提交,提供更丰富的双语反馈,并避免重复发表评论。
CI:
- 优化 PR 校验,对无效的提交标题和合并提交给出结构化反馈,并在无效集合发生变化时清理或复用此前的机器人评论。
Documentation:
- 扩展并修正 zh-cn、zh-tw、en-us、ja-jp 和 ko-kr
各语言下的文档规范,包括嵌套容器规则、替代容器语法、特殊演示容器、标记、隐藏文本、步骤容器、智能图片网格以及字段容器等内容。
- 新增关于在现代 Windows 版本上处理与 DWM 相关问题的内部知识说明。
Chores:
- 将较旧的自定义基础设施布局 JSON 以版本化文件名方式归档,并更新与 Reclamation 相关的资源定义和本地化内容。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refine update, task configuration, and CI behaviors while enhancing
documentation and localization formatting support.
New Features:
- Add support for theme-specific Reclamation modes, including distinct
modes for Tales and Relaunch Anchor with updated UI bindings and tips.
- Introduce a retry mechanism to wait for MirrorChyan OTA packages
before falling back to full-package updates.
- Extend documentation in multiple languages with guidance on nested
containers, markers, hidden text, steps, smart image containers, and
field containers.
Bug Fixes:
- Fix various user-facing messages to consistently use the localization
formatting helper instead of manual string formatting, preventing
formatting issues in edge cases.
- Ensure MirrorChyan CDK error handling correctly logs context and
updates fetch-failed state when network or JSON parsing errors occur.
Enhancements:
- Refactor MirrorChyan update handling into dedicated helpers for HTTP
fetching, error processing, and OTA waiting logic.
- Adjust advanced settings visibility to depend on the current task and
Reclamation theme, and refresh automatically when the theme changes.
- Refine Reclamation configuration on both core and GUI sides by
splitting modes into Tales and Relaunch Anchor variants and validating
mode values per theme.
- Improve mini-game task listing and other UI code paths with minor
readability and behavior tweaks.
Build:
- Upgrade GitHub Actions artifact upload steps to the latest action
version and configure artifacts to be stored without compression.
- Improve the PR commit checker workflow to distinguish invalid titles
from merge commits, produce richer bilingual feedback, and avoid posting
duplicate comments.
CI:
- Refine PR validation to give structured feedback on invalid commit
titles and merge commits, and clean up or reuse previous bot comments
when the invalid set changes.
Documentation:
- Expand and correct documentation guidelines across zh-cn, zh-tw,
en-us, ja-jp, and ko-kr, including nested container rules, alternative
container syntaxes, special demo containers, markers, hidden text, step
containers, smart image grids, and field containers.
- Add internal knowledge notes about handling DWM-related issues on
modern Windows versions.
Chores:
- Archive older custom infrastructure layout JSONs under versioned
filenames and update Reclamation-related resource definitions and
localizations.
</details>
## Summary by Sourcery
为 MirrorChyan OTA 更新新增等待与重试支持:当初始仅有整包可用时,可以等待 OTA 包上线后再使用。同时重构
MirrorChyan 更新检查逻辑,以提升复用性和错误处理能力。
新功能:
- 支持在延迟一段时间后重试 MirrorChyan 更新检查,这样当 OTA 包变得可用时可以使用 OTA 包,而不是立即回退到整包。
改进:
- 将 MirrorChyan 的 HTTP 请求和 JSON 解析抽取到一个共享的辅助工具中,以集中管理日志与错误处理。
- 将 MirrorChyan 的错误码处理抽取到专用辅助工具中,以简化更新检查流程,并在不同分支中保持 toast 和设置更新行为的一致性。
文档:
- 更新本地化字符串,以支持在所有受支持语言中新增 MirrorChyan OTA 构建与重试相关的用户通知。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add support for waiting and retrying MirrorChyan OTA updates when only a
full package is initially available, while refactoring the MirrorChyan
update-check logic for better reuse and error handling.
New Features:
- Support retrying MirrorChyan update checks after a delay so that OTA
packages can be used when they become available instead of immediately
falling back to full packages.
Enhancements:
- Extract MirrorChyan HTTP request and JSON parsing into a shared helper
to centralize logging and error handling.
- Extract MirrorChyan error-code handling into a dedicated helper to
simplify the update check flow and keep toast/setting updates consistent
across paths.
Documentation:
- Update localized strings for the new MirrorChyan OTA-building and
retry user notifications across supported languages.
</details>
## Summary by Sourcery
添加新的操作员框导出格式,并提升带掩膜模板匹配的精度和日志记录,同时进行一些配置和通知方面的小改动。
新功能:
- 为操作员框引入可配置的导出格式,包括剪贴板、JSON、Markdown 和 CSV,并持久化用户选择的选项。
改进:
- 通过使用带类型的枚举来表示导出格式,优化仓库导出处理逻辑。
- 通过使用更高精度的 DFT 缓冲区和方差处理,提高带掩膜的互相关模板匹配的数值稳定性和精度。
- 调整匹配日志和键生成的格式,使其更清晰易读。
- 优化“任务卡住”处理逻辑:始终显示本地 UI 通知,而外部通知则根据用户设置有条件触发。
- 在配置键中记录所选的操作员框导出格式。
- 在任务队列视图模型中记录招募确认次数的日志。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add new operator box export formats and improve masked template matching
precision and logging, along with minor configuration and notification
tweaks.
New Features:
- Introduce configurable export formats for the operator box, including
clipboard, JSON, Markdown, and CSV, with persistence of the selected
option.
Enhancements:
- Refine depot export handling by using typed enums for export formats.
- Improve numerical stability and precision of masked cross-correlation
template matching by using higher-precision DFT buffers and variance
handling.
- Adjust match logging and key generation formatting for clarity.
- Refine stalled task handling to always show local UI notifications
while making external notifications conditional on user settings.
- Track the selected operator box export format in configuration keys.
- Log recruit confirmation counts in the task queue view model.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
添加新的操作员框导出格式,并提升带掩膜模板匹配的精度和日志记录,同时进行一些配置和通知方面的小改动。
新功能:
- 为操作员框引入可配置的导出格式,包括剪贴板、JSON、Markdown 和 CSV,并持久化用户选择的选项。
改进:
- 通过使用带类型的枚举来表示导出格式,优化仓库导出处理逻辑。
- 通过使用更高精度的 DFT 缓冲区和方差处理,提高带掩膜的互相关模板匹配的数值稳定性和精度。
- 调整匹配日志和键生成的格式,使其更清晰易读。
- 优化“任务卡住”处理逻辑:始终显示本地 UI 通知,而外部通知则根据用户设置有条件触发。
- 在配置键中记录所选的操作员框导出格式。
- 在任务队列视图模型中记录招募确认次数的日志。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add new operator box export formats and improve masked template matching
precision and logging, along with minor configuration and notification
tweaks.
New Features:
- Introduce configurable export formats for the operator box, including
clipboard, JSON, Markdown, and CSV, with persistence of the selected
option.
Enhancements:
- Refine depot export handling by using typed enums for export formats.
- Improve numerical stability and precision of masked cross-correlation
template matching by using higher-precision DFT buffers and variance
handling.
- Adjust match logging and key generation formatting for clarity.
- Refine stalled task handling to always show local UI notifications
while making external notifications conditional on user settings.
- Track the selected operator box export format in configuration keys.
- Log recruit confirmation counts in the task queue view model.
</details>
</details>
### 新增
1. 干员识别支持导出 Json/Markdown/CSV文件
2. 优化导出按钮布局与交互
3. 任务运行时也可以导出列表了
### 截图
<img width="783" height="662" alt="image"
src="https://github.com/user-attachments/assets/bc4536ba-1041-4ca3-b0a1-a5a321d55fde"
/>
### 重要事项
**我没有牛牛😭**
## Summary by Sourcery
为算子框识别结果新增多种导出格式和导出方式选择,并优化导出界面。
New Features:
- 支持将算子框识别数据导出为 JSON 文件。
- 支持将算子框识别数据导出为 Markdown 文件。
- 支持将算子框识别数据导出为 CSV 文件。
- 在配置中持久化上一次选择的算子框导出格式。
Enhancements:
- 通过用户可选择的导出格式,将单一导出操作路由到不同的导出方式,从而优化算子框导出交互。
- 通过对剪贴板导出和文件导出使用通知反馈,提升算子框导出时的用户反馈体验。
- 更新算子框工具箱的 UI 布局和本地化资源,以便在所有受支持语言中呈现新的导出选项。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add multiple export formats and selection for operator box recognition
results and refine the export UI.
New Features:
- Support exporting operator box recognition data as JSON files.
- Support exporting operator box recognition data as Markdown files.
- Support exporting operator box recognition data as CSV files.
- Persist the last selected operator box export format in configuration.
Enhancements:
- Refine the operator box export interaction by routing a single export
action through a user-selectable export format.
- Improve user feedback on operator box export by using notifications
for clipboard and file exports.
- Update operator box toolbox UI layout and localization resources to
surface the new export options across supported languages.
</details>
## Summary by Sourcery
引入任务停滞检测与通知,增强成就界面交互,并接入相关设置和视图组件。
New Features:
- 为运行中的任务添加可配置的停滞超时检测,当检测不到输出活动时,重复发送提醒通知。
- 允许在任务停滞时发送外部通知,由一个新的设置项进行控制。
- 支持从 growl 通知直接导航到特定成就,以及在成就列表中通过 ID 搜索并跳转到对应成就。
Enhancements:
- 追踪并同步成就搜索文本,以便可以通过代码触发搜索,同时保持 UI 状态一致。
- 优化任务队列日志记录,使日志写入可以选择性地抑制用于停滞检测的活动通知。
- 添加一个 RootView 的 code-behind 类,用于初始化主 WPF 视图。
Chores:
- 引入用于停滞超时和停滞通知设置的新配置键和值绑定,并更新相关的 XAML 和本地化资源。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Introduce task stall detection and notifications, enhance achievement UI
interactions, and wire up supporting settings and view components.
New Features:
- Add configurable stall timeout detection for running tasks with
repeated reminder notifications when no output activity is detected.
- Allow external notifications to be sent when tasks are stalled,
controlled by a new setting.
- Enable navigating directly to a specific achievement from growl
notifications and by ID-based searching in the achievement list.
Enhancements:
- Track and synchronize achievement search text so searches can be
triggered programmatically while keeping the UI in sync.
- Refine task queue logging so log writes can optionally suppress
activity notifications used by stall detection.
- Add a RootView code-behind class to initialize the main WPF view.
Chores:
- Introduce new configuration keys and bindings for stall timeout and
stall notification settings, and update related XAML and localization
resources.
</details>
### 改动
可以通过点击右上角弹出的成就横幅跳转至成就设置,并自动打开成就列表并筛选对应成就
## Summary by Sourcery
为成就通知横幅添加导航功能,可跳转到对应的设置部分和成就列表条目。
New Features:
- 允许点击成就的提示(growl)横幅,以打开成就设置页面,并聚焦到相关成就。
- 使成就列表对话框在打开时或加载完成后,可以直接滚动到指定成就。
Enhancements:
- 跟踪提示(growl)通知,将其与特定成就关联起来,并绑定点击处理程序,同时不影响现有按钮的行为。
- 引入一个 `RootView` 代码隐藏文件,用于初始化根视图组件。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add navigation from achievement notification banners to the
corresponding settings section and achievement list entry.
New Features:
- Allow clicking achievement growl banners to open the achievement
settings page focused on the relevant achievement.
- Enable the achievement list dialog to scroll directly to a specific
achievement when opened or once loaded.
Enhancements:
- Track growl notifications to associate them with specific achievements
and wire up click handlers without interfering with existing buttons.
- Introduce a RootView code-behind file to initialize the root view
component.
</details>
### 改动
1. 增加了“任务日志输出停滞时发送通知“功能,具体表现为:当任务日志在设定时间内没有发生更新时,进行日志输出和外部通知推送
2. 修改了选项“任务超时时间(分钟)”的最小值为1
3. 删除了旧有的通知方式
### 关联issue
#13271
## Summary by Sourcery
为停滞的任务日志输出添加可配置的检测与通知功能,并将其接入现有的运行状态与任务队列流程中。
新功能:
- 引入“停滞超时时间”设置:当任务日志输出在配置的时间段内没有更新时,触发警告和外部通知。
- 添加用户可配置开关:在任务发生停滞时,可选择在现有超时通知的基础上同时发送外部通知。
增强内容:
- 从任务队列中跟踪日志输出活动,以重置停滞检测计时器,避免误报的停滞告警。
- 将新的停滞超时和通知偏好持久化到配置中,并在游戏内及外部通知设置的 UI 中对其进行暴露。
- 调整超时通知处理逻辑,在记录日志和发送通知之前,先遵从对应的外部通知设置。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add configurable detection and notification for stalled task log output
and wire it into the existing running state and task queue flow.
New Features:
- Introduce a stall timeout setting that triggers warnings and external
notifications when task log output has no updates for a configured
period.
- Add a user-configurable switch to send external notifications on task
stalls alongside existing timeout notifications.
Enhancements:
- Track log output activity from the task queue to reset stall detection
timers and avoid false-positive stall alerts.
- Persist the new stall timeout and notification preferences in
configuration and expose them in the game and external notification
settings UI.
- Adjust timeout notification handling to respect the corresponding
external notification setting before logging and sending notifications.
</details>
## Summary by Sourcery
文档:
- 阐明 MAA 旨在用于单账号场景,并说明针对多开与多账号管理的非官方解决方案以及对这类用法不予支持的立场。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Documentation:
- Clarify that MAA is designed for single-account use and outline the
unofficial workaround and non-support stance for multi-opening and
multi-account management.
</details>
## Summary by Sourcery
为 Android 新增原生控制器支持,扩展自动化功能,并在工具箱、战斗和再收容系统中优化 UI 流程和日志记录。
New Features:
- 引入 Android 原生控制器后端及相关接线,使 MaaCore 能直接在 Android 设备上运行。
- 在现有剪贴板导出基础上,新增仓库导出为 Markdown 和 CSV 的选项。
- 新增再收容主题 “RelaunchAnchor”,并配套专用配置与 UI 行为。
- 在工具箱 UI 中提供分类的小游戏选择列表,并支持对每个条目进行独立绑定。
- 为仓库和干员盒子网格引入共享卡片宽度行为以及行/列展示辅助工具。
Bug Fixes:
- 修复战斗药剂过期处理问题,将负数过期天数视为无限,并正确校验 `medicine_expire_days`。
- 确保章节难度切换任务可以包含确认子任务,以处理选择后的弹窗。
- 通过使用 WPF Clipboard API 并加入基础重试逻辑与统一调用方式,稳定 WPF UI 中的剪贴板操作。
- 通过记录最近一次信号代码而不是存储原始字符串指针,避免陈旧的崩溃日志并改进信号处理。
Enhancements:
- 使用可复用的 FFT/稀疏实现优化带掩码的模板匹配,并改进匹配路径与方法的日志记录。
- 增强 Android 崩溃日志,加入原生栈回溯、信号/异常标记以及 logcat 集成。
- 更新 OCR 调试构建,在捕获图像上直接绘制边界框和分数。
- 优化 RunningState 变更通知,包含旧/新快照,并相应更新订阅方处理。
- 改进任务队列日志控制和启动小游戏流程,在新一轮运行时清空历史日志。
- 调整版本设置和错误对话框中的 UI 文本、裁剪效果和彩蛋行为,以提供更好的反馈。
- 明确再收容配置规则,对不兼容模式按主题强制收敛到受支持的默认配置。
- 扩展内部问题日志分析技能和知识文档,提供更清晰的工作流程和支援所需证据说明。
- 调整顶层和 MaaCore 的 CMake 配置,以适配 Android 构建、符号剥离和段优化。
Build:
- 新增 Android 构建预设和 CI 工作流,用于产出 MaaCore 的 Android 构建产物,并在发行版中集成
MaaFramework 原生控制单元。
CI:
- 新增专门的 GitHub Actions 任务,用于构建、打包并上传 Android 组件,并将其接入打标签发行流水线。
Documentation:
- 更新内部分析技能和知识文档,涵盖新的工作流程、明日方舟 PC 客户端相关注意事项,以及针对证据不足问题的轻量级“赛博占卜”式回复策略。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add Android native controller support, extend automation features, and
refine UI workflows and logging across toolbox, combat, and reclamation
systems.
New Features:
- Introduce an Android native controller backend and wiring to allow
running MaaCore directly on Android devices.
- Add depot export options for Markdown and CSV alongside existing
clipboard exports.
- Add a new Reclamation theme "RelaunchAnchor" with dedicated
configuration and UI behavior.
- Provide categorized mini‑game selection in the toolbox UI with
per‑item binding.
- Introduce shared card width behavior and row/column presentation
helpers for depot and operator box grids.
Bug Fixes:
- Fix fight medicine expiry handling to treat negative expiry days as
unlimited and validate medicine_expire_days correctly.
- Ensure chapter difficulty switching tasks can include confirmation
subtasks to handle post‑selection dialogs.
- Stabilize clipboard operations across the WPF UI by using WPF
Clipboard APIs with basic retry logic and consistent calls.
- Prevent stale crash logs and improve signal handling by tracking the
last signal code instead of storing raw string pointers.
Enhancements:
- Optimize masked template matching with a reusable FFT/sparse
implementation and improved logging of match paths and methods.
- Enhance Android crash logging with native stack traces,
signal/exception tagging, and logcat integration.
- Update OCR debug builds to render bounding boxes and scores directly
on captured images.
- Refine RunningState change notifications to include old/new snapshots
and update subscribers accordingly.
- Improve task queue logging control and start‑mini‑game flow by
clearing logs on new runs.
- Adjust UI texts, clipping, and Easter egg behavior in version settings
and error dialogs for better feedback.
- Clarify reclamation configuration rules so incompatible modes are
coerced to supported defaults per theme.
- Extend internal issue‑log analysis skills and knowledge docs with
clearer workflows and evidence requirements for support.
- Tweak top‑level and MaaCore CMake configuration for Android builds,
stripping, and section optimizations.
Build:
- Add Android build presets and CI workflow to produce MaaCore Android
artifacts and integrate MaaFramework native control units into releases.
CI:
- Introduce a dedicated GitHub Actions job to build, package, and upload
Android components, and wire it into the tagged release pipeline.
Documentation:
- Update internal analysis skill and knowledge documentation to cover
new workflows, Arknights PC client caveats, and lightweight "cyber
fortune" responses for low‑evidence issues.
</details>
* docs: Auto Generate Changelog of Release v6.10.0-beta.1
* docs: Update CHANGELOG with new features and fixes
Added new features, improvements, and bug fixes to the changelog. Updated entries for better clarity and organization.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
* perf: FFT/sparse fast path for masked TM_CCOEFF_NORMED
* perf: optimize masked ccoeff matching
* perf: tune masked ccoeff dispatcher and remove fixed overhead
- sync_cache_revision: atomic acquire/release double-check avoids
taking the mutex on every preproc_and_match call. No-mask hot path
no longer pays for the singleton at all (init hoisted into the
FFT/sparse branch).
- should_fallback_to_opencv: pick whichever path is empirically
faster instead of only catching dense-mask small-result cases:
* result < 1000 && K < 2000: keep sparse (OpenCV setup dominates)
* result < 12000 && K >= 500: fallback (covers GameStart 200x120/
58x58 and 138x130/105x105 dead zones)
* K*result < 25M: fallback (covers SmileyOnWork 880x80/20x21 and
similar long-thin / small-template FFT-loses cases)
Windows MSVC x64 (min-of-2, n=803/1402):
coverage: regressions 198 -> 50, mean 10.5ms -> 7.4ms (1.40x)
perf: regressions 86 -> 3, mean 854us -> 296us (2.90x)
Android arm64-v8a NEON (single run, n=803/1402):
coverage: regressions 0, mean 125ms -> 80ms (1.72x)
perf: regressions 1 (1.20x edge), mean 6.4ms -> 2.8ms (10.95x)
* perf(masked-matcher): merge 3-channel I² into a single FFT in σ_I² compute
σ_I²(x,y) = Σ_c [(M ⋆ I_c²) - (M ⋆ I_c)² / N]
= Σ_c (M ⋆ I_c²) - (1/N) Σ_c (M ⋆ I_c)²
↑ this term is linear in I_c², so by convolution linearity
Σ_c (M ⋆ I_c²) = M ⋆ Σ_c I_c².
Precompute I_sq_sum = Σ_c I_c² in spatial domain and do a single
FFT + single IFFT instead of three. The second term Σ_c (M ⋆ I_c)²
still requires per-channel computation (squaring is non-linear).
Net: -2 FFTs and -2 IFFTs per match() call (15 → 11 transforms).
Validated min-of-3 runs on the 10 largest FFT-path cases per platform:
windows: 8/10 cases -22%, 2 cases (66x41 templ) unchanged
android: 8/10 cases -22%, 2 cases (66x41 templ) unchanged
The two unchanged cases have very small templates where FFT is not
the bottleneck (cvtColor / convertTo / split dominate). Correctness
preserved across 1800 iterations × 10 cases on both platforms.
* fix: 测试代码忘记删除了
* fix: make TemplResource::m_revision atomic
* chore: 调一下匹配参数
* feat: 在日志中标记匹配路径(优化实现 vs cv::matchTemplate)
* feat: add android controller support
* feat: add android compile options and add core static options
* fix: add __ANDROID__ macro for Android platform
* fix: move switch break into macro conditional block
* ci: add Android CMake presets (arm64, x64)
* fix: add missing Android TouchMode handling
* fix: remove unnecessary pre-check in android
* fix: restore unnecessary modifications
* fix: unified use __ANDROID__
* refactor: use interpolate_swipe_with_pause in AndroidController
* feat: add Android crash logcat output and native backtrace
* feat: only copy once from external lib screencap
* feat: add Android JNI AttachThread/DetachThread to working_proc
* fix: break control in switch
* fix: update click interval & swipe interval
* ci: restore Android build job with MaaFramework download
* fix: remove thread attach
* ci: temporarily remove MaaAndroidNativeControlUnit.so
* feat(android-ctrl): SWIPE_WITH_PAUSE 由 InstanceOption DeploymentWithPause 控制
* feat: SWIPE_WITH_PAUSE 默认启用
* feat: add android compile options and add core static options
* feat: use maafw controll unit
* fix: minor adjustments
* refactor: adapt maafw android lib
* fix: remove screencap when connect
* chore: change maafw lib use
* feat: adapt maafw control unit click & click_key
* fix: address critical issues in Android native controller
- Restore InstanceOptionKey::ClientType case in set_instance_option,
which was accidentally removed and broke client type setting on all platforms
- Enable libMaaAndroidNativeControlUnit.so copy step in CI (was commented out),
so Android artifacts actually include the required control unit library
- Fail connect() early when screen_resolution is missing or invalid in config,
preventing silent {0,0} resolution that would break swipe and screencap
- Check touch_down() return value in swipe() and abort on failure
* fix: correct bounds_check off-by-one and extract KEYCODE_ESCAPE constant
- bounds_check used <= which allowed coordinates equal to screen width/height
(off-screen); use < to match the valid range [0, dimension-1]
- Extract magic number 111 into KEYCODE_ESCAPE constexpr in press_esc()
* fix: avoid heap allocation in noexcept terminate/signal handlers
format_signal_reason was returning std::string and using std::format in
its default branch. Called from noexcept custom_terminate_handler before
the outer try block, any allocation failure would throw std::bad_alloc,
triggering recursive std::terminate and aborting crash reporting.
- Change return type to const char* noexcept, returning string literals
- Replace std::format("Signal {}", sig) with "Unknown Signal" (only the
four registered signals are ever passed, so this branch is unreachable)
- Change signal_info in custom_terminate_handler from std::string to
const char*, eliminating all allocations on the pre-try path
* fix: suppress unused-variable warning for signal_reason on non-Android
https://github.com/user-attachments/assets/3a0722fb-b4c0-4864-9141-7d0200c117b8
## Summary by Sourcery
优化仓库和运营商卡片列表的展示方式,支持基于行的虚拟化以及共享的卡片宽度约束,从而实现更快的初始加载和更一致的布局。
新功能:
- 为虚拟化卡片列表添加共享卡片宽度行为,根据可用空间和列数保持一致的卡片宽度。
增强内容:
- 将仓库和运营商集合重构为基于行的可观察集合,并计算列数,以更好地支持虚拟化网格布局。
- 连接集合变更处理程序,以在仓库和运营商数据更新时保持行展示和列数的同步。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Optimize depot and operator card list presentation to support row-based
virtualization and shared card width constraints for faster initial
loading and more consistent layouts.
New Features:
- Add a shared card width behavior for virtualized card lists to
maintain consistent widths based on available space and column count.
Enhancements:
- Refactor depot and operator collections into row-based observable
collections with computed column counts to better support virtualized
grid layouts.
- Wire collection change handlers to keep row presentations and column
counts in sync when depot and operator data updates.
</details>
## Summary by Sourcery
重构多 Copilot 阶段导航逻辑,并调整配置变更的日志级别。
增强内容:
- 将 `MultiCopilotTaskPlugin` 中的阶段导航逻辑提取为可复用的 `navigate_to_stage`
辅助函数,以集中管理 OCR 设置和任务执行。
- 将配置更新的日志级别从 debug 提升为 information,使变更在日志中更加醒目可见。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refactor multi-copilot stage navigation and adjust configuration change
logging level.
Enhancements:
- Extract stage navigation logic in MultiCopilotTaskPlugin into a
reusable navigate_to_stage helper to centralize OCR setup and task
execution.
- Increase the log level for configuration updates from debug to
information to make changes more visible in logs.
</details>
PV minigame rerun.
cc @Manicsteiner @HX3N
## Summary by Sourcery
调整主线关卡难度后缀的处理方式,提高窗口/任务处理与日志记录的健壮性,并使文档、资源与本地化行为与 v6.9.4 的新特性保持一致。
New Features:
- 支持按章节感知的难度映射:使 `-NORMAL` / `-HARD` 后缀在第 10–14 章映射到 Standard/Adverse,在第
15 章及之后映射到 Normal/Raid,并在关卡前/后根据需要切换难度。
- 一旦配置完成后,总是启用集成策略中的 JieGarden 铜币兑换行为,而不再受投资模式限制。
Bug Fixes:
- 防止在 WPF 调度器开始关闭之后仍尝试显示或激活窗口,从而避免运行时异常。
- 限制战斗助手技能就绪检查的频率,避免因检查过于频繁被误判为触发限频,同时保证就绪日志记录的准确性。
- 在删除多余调试图片时,对文件系统错误进行优雅处理,而不是静默失败或抛出异常。
- 确保问题报告归档文件生成在持久化的报告目录下。
- 在通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息的一致性。
- 修复日志记录器作用域处理方式,使作用域在创建日志流时注入,而不是在各个不同严重级别的辅助方法中注入。
- 使用 Attach Window 时避免传递账号名,以匹配当前支持的客户端类型。
Enhancements:
- 优化关卡导航逻辑,通过章节号解析难度后缀,并可选在关卡选定后再切换难度。
- 将“公告顽固点击”恶搞成就的解锁推迟到第三个发布阶段,并略微提高“Lucky”成就的随机触发概率。
- 明确和强化 MAA 问题日志分析的内部规范,特别是有状态 UI 自动化和接待线索流程相关内容。
- 改进 Bark/AppImage 品牌呈现,切换到新版 v2 徽标图标资源。
Build:
- 更新 CI 中的 AppImage 打包配置,以下载新的 v2 徽标图标路径。
CI:
- 调整 CI 工作流中的资源路径,以适配更新后的品牌资源。
Documentation:
- 在手册和集成协议中,用所有支持的语言记录基于章节的 `-NORMAL` / `-HARD` 后缀映射规则。
- 从多语言集成策略 schema 文档中移除过时的 JieGarden 铜币兑换启用条件说明,并刷新相关术语。
- 扩展内部问题分析文档,补充有状态 UI 自动化与接待线索的必读资料和知识库。
Chores:
- 为第 17 章的困难关卡添加格子位置信息,并刷新关卡/任务/资源/版本元数据,以支持 v6.9.4 内容。
- 更新本地化资源和外部通知设置 UI,使其与新行为和图标 URL 保持一致。
- 添加内部工具和助手使用的上下文 JSON 及知识文件。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Adjust main story difficulty suffix handling, improve robustness of
window/task handling and logging, and align documentation, resources,
and localization with new behaviors for v6.9.4.
New Features:
- Support chapter-aware difficulty mapping so -NORMAL/-HARD suffixes
route to Standard/Adverse in chapters 10–14 and Normal/Raid from chapter
15 onward, with pre/post stage difficulty switching as needed.
- Always enable JieGarden copper exchange behavior once configured,
regardless of investment mode.
Bug Fixes:
- Prevent WPF windows from being shown or activated after the dispatcher
has begun shutdown, avoiding runtime exceptions.
- Throttle battle helper skill readiness checks to avoid misclassifying
frequent checks as rate-limited while keeping readiness logging correct.
- Handle filesystem errors gracefully when deleting excess debug images
instead of silently failing or throwing.
- Ensure issue report archives are generated under the persistent
reports directory.
- Record task start time when launching tasks via remote control to keep
logs and traces consistent.
- Fix logger scope handling so scopes are injected at stream creation
instead of in individual severity helpers.
- Avoid passing account names when using Attach Window, matching
supported client types.
Enhancements:
- Refine stage navigation to interpret difficulty suffixes by chapter
number and optionally switch difficulty after stage selection.
- Delay unlocking of the "announcement stubborn click" humorous
achievement to the third release phase and slightly increase the random
trigger rate of the "Lucky" achievement.
- Clarify and strengthen internal guidelines for MAA issue log analysis,
especially for stateful UI automation and reception clue flows.
- Improve Bark/AppImage branding by switching to updated v2 logo icon
assets.
Build:
- Update CI AppImage packaging to download the new v2 logo icon path.
CI:
- Tweak CI workflow resource paths for updated branding assets.
Documentation:
- Document the new chapter-based mapping of -NORMAL/-HARD suffixes
across all supported languages in manuals and integration protocols.
- Remove outdated enable-condition notes for JieGarden copper exchange
from multilingual integrated strategy schema docs and refresh related
terminology.
- Expand internal issue-analysis documentation with required reading and
knowledge base for stateful UI automation and reception clues.
Chores:
- Add tile position data for Chapter 17 hard stages and refresh
stage/task/resource/version metadata to support v6.9.4 content.
- Update localization resources and external notification settings UI to
match new behaviors and icon URLs.
- Add contextual JSON and knowledge files used by internal tooling and
assistants.
</details>
Bug Fixes(缺陷修复):
- 防止在 Dispatcher 已关闭或窗口正在关闭期间仍尝试显示或激活 WPF 窗口,以避免运行时异常。
- 避免战斗助手中过于频繁的技能就绪检查导致误记为限流,并确保日志消息记录正确。
- 在删除多余调试图片时优雅处理文件系统错误,而不是静默失败。
- 确保问题上报时生成报告使用持久化的报告目录来存放临时压缩包。
- 通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息准确。
Enhancements(功能增强):
- 优化主线关卡难度选择逻辑,使 NORMAL/HARD 后缀映射到章节特定的难度模式(第 10–14 章为
Standard/Adverse,第 15 章及之后为 Normal/Raid),并根据需要在关卡选择前或后切换难度。
- 简化肉鸽模式中结园铜钱兑换行为,移除仅在“投资模式”下启用的条件,使其在配置开启后始终可用。
- 将“公告点不动”类幽默成就的解锁条件延后到第三阶段发售,以优化节奏。
Documentation(文档):
- 在多语言说明书和集成协议文档中澄清 `-NORMAL` 与 `-HARD`
后缀在不同章节区间对应到哪些具体难度模式,并移除关于结园铜钱兑换启用条件的过时说明。
- 刷新本地化 UI 资源和文档字符串,使其与新行为和术语在所有支持语言中保持一致。
Chores(杂项):
- 为第 17 章困难关卡新增地块坐标数据,并更新若干资源和版本元数据文件,以支持 v6.9.4 内容。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
调整主线关卡难度后缀的处理方式,提高窗口/任务处理与日志记录的健壮性,并使文档、资源与本地化行为与 v6.9.4 的新特性保持一致。
New Features:
- 支持按章节感知的难度映射:使 `-NORMAL` / `-HARD` 后缀在第 10–14 章映射到 Standard/Adverse,在第
15 章及之后映射到 Normal/Raid,并在关卡前/后根据需要切换难度。
- 一旦配置完成后,总是启用集成策略中的 JieGarden 铜币兑换行为,而不再受投资模式限制。
Bug Fixes:
- 防止在 WPF 调度器开始关闭之后仍尝试显示或激活窗口,从而避免运行时异常。
- 限制战斗助手技能就绪检查的频率,避免因检查过于频繁被误判为触发限频,同时保证就绪日志记录的准确性。
- 在删除多余调试图片时,对文件系统错误进行优雅处理,而不是静默失败或抛出异常。
- 确保问题报告归档文件生成在持久化的报告目录下。
- 在通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息的一致性。
- 修复日志记录器作用域处理方式,使作用域在创建日志流时注入,而不是在各个不同严重级别的辅助方法中注入。
- 使用 Attach Window 时避免传递账号名,以匹配当前支持的客户端类型。
Enhancements:
- 优化关卡导航逻辑,通过章节号解析难度后缀,并可选在关卡选定后再切换难度。
- 将“公告顽固点击”恶搞成就的解锁推迟到第三个发布阶段,并略微提高“Lucky”成就的随机触发概率。
- 明确和强化 MAA 问题日志分析的内部规范,特别是有状态 UI 自动化和接待线索流程相关内容。
- 改进 Bark/AppImage 品牌呈现,切换到新版 v2 徽标图标资源。
Build:
- 更新 CI 中的 AppImage 打包配置,以下载新的 v2 徽标图标路径。
CI:
- 调整 CI 工作流中的资源路径,以适配更新后的品牌资源。
Documentation:
- 在手册和集成协议中,用所有支持的语言记录基于章节的 `-NORMAL` / `-HARD` 后缀映射规则。
- 从多语言集成策略 schema 文档中移除过时的 JieGarden 铜币兑换启用条件说明,并刷新相关术语。
- 扩展内部问题分析文档,补充有状态 UI 自动化与接待线索的必读资料和知识库。
Chores:
- 为第 17 章的困难关卡添加格子位置信息,并刷新关卡/任务/资源/版本元数据,以支持 v6.9.4 内容。
- 更新本地化资源和外部通知设置 UI,使其与新行为和图标 URL 保持一致。
- 添加内部工具和助手使用的上下文 JSON 及知识文件。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Adjust main story difficulty suffix handling, improve robustness of
window/task handling and logging, and align documentation, resources,
and localization with new behaviors for v6.9.4.
New Features:
- Support chapter-aware difficulty mapping so -NORMAL/-HARD suffixes
route to Standard/Adverse in chapters 10–14 and Normal/Raid from chapter
15 onward, with pre/post stage difficulty switching as needed.
- Always enable JieGarden copper exchange behavior once configured,
regardless of investment mode.
Bug Fixes:
- Prevent WPF windows from being shown or activated after the dispatcher
has begun shutdown, avoiding runtime exceptions.
- Throttle battle helper skill readiness checks to avoid misclassifying
frequent checks as rate-limited while keeping readiness logging correct.
- Handle filesystem errors gracefully when deleting excess debug images
instead of silently failing or throwing.
- Ensure issue report archives are generated under the persistent
reports directory.
- Record task start time when launching tasks via remote control to keep
logs and traces consistent.
- Fix logger scope handling so scopes are injected at stream creation
instead of in individual severity helpers.
- Avoid passing account names when using Attach Window, matching
supported client types.
Enhancements:
- Refine stage navigation to interpret difficulty suffixes by chapter
number and optionally switch difficulty after stage selection.
- Delay unlocking of the "announcement stubborn click" humorous
achievement to the third release phase and slightly increase the random
trigger rate of the "Lucky" achievement.
- Clarify and strengthen internal guidelines for MAA issue log analysis,
especially for stateful UI automation and reception clue flows.
- Improve Bark/AppImage branding by switching to updated v2 logo icon
assets.
Build:
- Update CI AppImage packaging to download the new v2 logo icon path.
CI:
- Tweak CI workflow resource paths for updated branding assets.
Documentation:
- Document the new chapter-based mapping of -NORMAL/-HARD suffixes
across all supported languages in manuals and integration protocols.
- Remove outdated enable-condition notes for JieGarden copper exchange
from multilingual integrated strategy schema docs and refresh related
terminology.
- Expand internal issue-analysis documentation with required reading and
knowledge base for stateful UI automation and reception clues.
Chores:
- Add tile position data for Chapter 17 hard stages and refresh
stage/task/resource/version metadata to support v6.9.4 content.
- Update localization resources and external notification settings UI to
match new behaviors and icon URLs.
- Add contextual JSON and knowledge files used by internal tooling and
assistants.
</details>
</details>
趁着没新feat赶紧发先
## Summary by Sourcery
为 UI 和版本显示实现一个伪更新流程,加强更新应用和视觉匹配的健壮性,并在构建和资源更新的同时,调整战斗和信用战任务的行为。
New Features:
- 添加 `FakeUpdateHelper`,并将伪更新模式集成到版本显示、更新对话框和窗口标题中,以在不需要实际发布的情况下模拟更新。
Bug Fixes:
- 在委托应用挂起更新时处理缺失的外部更新器可执行文件,并弹出清晰的错误对话框,而不是让安装停留在错误状态。
- 通过在没有捕获发生时正确重置运行状态,修复小游戏的终止流程。
- 当未配置 ROI 时提前返回,防止视觉分析器中的崩溃或无效处理。
- 当默认窗口标题配置被保留时,避免解锁标题自定义成就。
- 调整信用战的停止条件及其相应的 GUI 处理,使其依赖更新后的 copilots 任务管线,而不是旧的动作结束任务。
Enhancements:
- 使用带重试和实时图像刷新的 `PipelineAnalyzer` 改进战斗阵型验证,使阵型检查更加稳健。
- 通过始终从解压内容中准备更新器可执行文件并记录缺失更新器的场景,优化挂起更新的委托处理。
- 更新基础设施布局、全局版本元数据、任务以及本地化资源,以支持新版本发布。
Build:
- 增强本地安装脚本,通过临时 `global.json` 固定本地 .NET SDK, 在 `dotnet publish` 之前运行
`dotnet restore`,并在之后清理临时的 SDK 固定配置。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Implement a fake update flow for UI and version display, harden update
application and vision matching, and adjust battle and credit fight task
behaviors alongside build and resource updates.
New Features:
- Add a FakeUpdateHelper and integrate a fake update mode into version
display, update dialogs, and window title to simulate updates without
requiring real releases.
Bug Fixes:
- Handle missing external updater executables during delegated pending
update application and surface clear error dialogs instead of leaving
installs in a bad state.
- Fix mini-game termination flow by correctly resetting running state
when no catch occurs.
- Prevent crashes or invalid processing in vision analyzers by
early-returning when no ROI is configured.
- Avoid unlocking the title customization achievement when the default
window title configuration is preserved.
- Adjust credit fight stop conditions and corresponding GUI handling to
rely on the updated copilot task pipeline instead of the old
end-of-action task.
Enhancements:
- Improve battle formation validation by using PipelineAnalyzer with
retries and live image refresh, making formation checks more robust.
- Refine pending update delegation by always preparing the updater
executable from extracted content and logging missing-updater scenarios.
- Update infrastructure layouts, global version metadata, tasks, and
localization resources for the new release.
Build:
- Enhance the local-install script to pin a local .NET SDK via a
temporary global.json, run dotnet restore before publish, and clean up
the temporary SDK pin afterwards.
</details>
## Summary by Sourcery
为 v6.9.2 版本发布做准备,更新文档、CI 中的 .NET SDK 配置,并修复运行时任务行为。
增强功能:
- 调整启动和阶段导航任务流程,包括处理特定的“annihilation”(歼灭/剿灭)场景,并改进账号切换日志记录。
- 整理 AutoRecruitTask 中 `recruit_result` 枚举的格式,使其更加一致。
CI:
- 配置 CI 工作流使用生成的 `global.json` 来锁定 .NET SDK 版本,而不是在配置中硬编码版本。
文档:
- 在中文手册中新增 FAQ 条目,描述 DLL 注入问题及其缓解步骤。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare v6.9.2 release by updating documentation, CI .NET SDK
configuration, and fixing runtime task behaviors.
Enhancements:
- Adjust startup and stage navigation task flows, including handling
specific annihilation scenarios and improving account switch logging.
- Tidy AutoRecruitTask recruit_result enumeration formatting for
consistency.
CI:
- Configure CI workflows to use a generated global.json to pin the .NET
SDK version instead of hardcoding it.
Documentation:
- Add FAQ entry describing DLL injection issues and mitigation steps in
the Chinese manual.
</details>
## Summary by Sourcery
强化安装/更新安全检查,改进更新包处理和确认流程,优化自动公招、药剂使用、肉鸽以及副驾驶行为,并更新构建工具链与集成文档。
New Features:
- 为完整更新包新增手动确认流程,包括显示计划执行路径,并可复用用于本地丢弃包的检查结果。
- 为需要基于包名执行 ADB 命令的连接引入按实例配置的客户端类型选项。
Bug Fixes:
- 防止从不受支持的安装位置运行或更新,例如磁盘根目录、临时文件夹、Windows 和常见程序目录。
- 修复自动公招循环逻辑,不再统计或重试被跳过的槽位,并区分已确认、已跳过和失败的招募尝试。
- 修正药剂计数日志记录、理智 OCR 处理,以及对不过期药剂的优先级逻辑。
- 修复肉鸽支援干员计时器解析和投资上限比较逻辑。
- 确保精英等级分析在检测失败时回退到精英 0,并在视野矩形校正中防范空 ROI。
- 调整启动任务顺序,使账号切换只在启动成功后执行。
- 在使用附加的 PC 客户端窗口时跳过外部报告上传,并通过连接配置对某些依赖客户端类型的命令加以限制。
- 修复 Foldartal 获取中对 foldartal 类型过滤条件的问题,以及像素分析器灰度上限设置器。
Enhancements:
- 允许通过可复用的检查结果对本地完整更新包进行检查和注册,并在完整更新过程中保留额外的资源目录。
- 改进 WPF GUI 中与战斗相关的日志与命名一致性(理智/战斗报告、即将过期药剂日志、客户端类型处理)。
- 提高副驾驶与多副驾驶导航和停止任务的稳定性,加入新的“等待动作结束”行为,并增加重试次数。
Build:
- 增强本地安装脚本,支持并行构建、.NET 发布选项、通过 nbeauty2 进行资源补丁处理以及更好的错误处理。
CI:
- 更新资源更新工作流,以使用最新版本的 wait-for-jobs action。
Documentation:
- 在所有支持的语言的集成协议文档中记录新的 ClientType 实例选项。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Harden installation/update safety checks, improve update package
handling and confirmations, refine auto-recruit, medicine usage,
roguelike, and copilot behaviors, and update build tooling and
integration docs.
New Features:
- Add manual confirmation flow for full update packages, including
planned path display and reuse for dropped local packages.
- Introduce per-instance client type option for connections that need
package-name-aware ADB commands.
Bug Fixes:
- Prevent running or updating from unsupported install locations such as
drive roots, temp folders, Windows and common program directories.
- Fix auto-recruit loop to not count or retry skipped slots and
distinguish confirmed, skipped, and failed recruit attempts.
- Correct medicine counter logging, sanity OCR handling, and
non-expiring medicine prioritization logic.
- Fix roguelike support recruit timer parsing and investment limit
comparison logic.
- Ensure elite level analysis falls back to elite 0 when detection
fails, and guard against empty ROIs in vision rect correction.
- Adjust startup task sequencing so account switching runs only after
startup succeeds.
- Skip external report uploads when using attached PC client windows,
and gate certain client-type-dependent commands by connection config.
- Fix Foldartal gain foldartal-type filtering condition and pixel
analyzer gray upper bound setter.
Enhancements:
- Allow local full update packages to be inspected and registered via a
reusable inspection result, and preserve additional asset directories
during full updates.
- Improve fight-related logging and naming consistency in the WPF GUI
(sanity/fight reports, expiring medicine logs, client type handling).
- Increase robustness of copilot and multi-copilot navigation and stop
tasks with new wait-until-end-of-action behavior and higher retry
counts.
Build:
- Enhance local-install script with parallel builds, .NET publish
options, resource patching via nbeauty2, and better error handling.
CI:
- Update resource update workflow to use the latest version of the
wait-for-jobs action.
Documentation:
- Document the new ClientType instance option in integration protocol
docs for all supported languages.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
强化安装/更新安全检查,改进更新包处理和确认流程,优化自动公招、药剂使用、肉鸽以及副驾驶行为,并更新构建工具链与集成文档。
New Features:
- 为完整更新包新增手动确认流程,包括显示计划执行路径,并可复用用于本地丢弃包的检查结果。
- 为需要基于包名执行 ADB 命令的连接引入按实例配置的客户端类型选项。
Bug Fixes:
- 防止从不受支持的安装位置运行或更新,例如磁盘根目录、临时文件夹、Windows 和常见程序目录。
- 修复自动公招循环逻辑,不再统计或重试被跳过的槽位,并区分已确认、已跳过和失败的招募尝试。
- 修正药剂计数日志记录、理智 OCR 处理,以及对不过期药剂的优先级逻辑。
- 修复肉鸽支援干员计时器解析和投资上限比较逻辑。
- 确保精英等级分析在检测失败时回退到精英 0,并在视野矩形校正中防范空 ROI。
- 调整启动任务顺序,使账号切换只在启动成功后执行。
- 在使用附加的 PC 客户端窗口时跳过外部报告上传,并通过连接配置对某些依赖客户端类型的命令加以限制。
- 修复 Foldartal 获取中对 foldartal 类型过滤条件的问题,以及像素分析器灰度上限设置器。
Enhancements:
- 允许通过可复用的检查结果对本地完整更新包进行检查和注册,并在完整更新过程中保留额外的资源目录。
- 改进 WPF GUI 中与战斗相关的日志与命名一致性(理智/战斗报告、即将过期药剂日志、客户端类型处理)。
- 提高副驾驶与多副驾驶导航和停止任务的稳定性,加入新的“等待动作结束”行为,并增加重试次数。
Build:
- 增强本地安装脚本,支持并行构建、.NET 发布选项、通过 nbeauty2 进行资源补丁处理以及更好的错误处理。
CI:
- 更新资源更新工作流,以使用最新版本的 wait-for-jobs action。
Documentation:
- 在所有支持的语言的集成协议文档中记录新的 ClientType 实例选项。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Harden installation/update safety checks, improve update package
handling and confirmations, refine auto-recruit, medicine usage,
roguelike, and copilot behaviors, and update build tooling and
integration docs.
New Features:
- Add manual confirmation flow for full update packages, including
planned path display and reuse for dropped local packages.
- Introduce per-instance client type option for connections that need
package-name-aware ADB commands.
Bug Fixes:
- Prevent running or updating from unsupported install locations such as
drive roots, temp folders, Windows and common program directories.
- Fix auto-recruit loop to not count or retry skipped slots and
distinguish confirmed, skipped, and failed recruit attempts.
- Correct medicine counter logging, sanity OCR handling, and
non-expiring medicine prioritization logic.
- Fix roguelike support recruit timer parsing and investment limit
comparison logic.
- Ensure elite level analysis falls back to elite 0 when detection
fails, and guard against empty ROIs in vision rect correction.
- Adjust startup task sequencing so account switching runs only after
startup succeeds.
- Skip external report uploads when using attached PC client windows,
and gate certain client-type-dependent commands by connection config.
- Fix Foldartal gain foldartal-type filtering condition and pixel
analyzer gray upper bound setter.
Enhancements:
- Allow local full update packages to be inspected and registered via a
reusable inspection result, and preserve additional asset directories
during full updates.
- Improve fight-related logging and naming consistency in the WPF GUI
(sanity/fight reports, expiring medicine logs, client type handling).
- Increase robustness of copilot and multi-copilot navigation and stop
tasks with new wait-until-end-of-action behavior and higher retry
counts.
Build:
- Enhance local-install script with parallel builds, .NET publish
options, resource patching via nbeauty2, and better error handling.
CI:
- Update resource update workflow to use the latest version of the
wait-for-jobs action.
Documentation:
- Document the new ClientType instance option in integration protocol
docs for all supported languages.
</details>
</details>
* docs: Auto Generate Changelog of Release v6.9.1
* docs: Update CHANGELOG for versions 6.9.0 and 6.9.1
Add detailed highlights and improvements for version 6.9.1 and 6.9.0, including new features, fixes, and documentation updates.
* docs: Remove version 6.9.0 entry from CHANGELOG
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
还没测过,不知道好不好使
## Summary by Sourcery
错误修复:
- 在 5.1 更新之后,恢复对在生息演算中进行无存档刷分运行的支持。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- Restore support for running no-save score farming in 生息演算 after the
5.1 update.
</details>
## Summary by Sourcery
改进战场技能就绪状态分类流水线与调试图像处理逻辑,并在无法获取主模块信息时,使 BlueStacks 模拟器的终止流程更加健壮。
Bug 修复:
- 修复技能就绪状态分类中的 ONNX 输入张量形状错误问题,该问题将宽度和高度的顺序颠倒使用。
- 确保对技能就绪调试保存状态的并发访问是同步的,以避免在运行多个分类器时出现数据竞争。
- 允许在无法获取进程主模块或其文件路径时,仍可通过基于端口的逻辑继续关闭 BlueStacks 模拟器。
增强改进:
- 调整战场技能就绪分类器中的图像缩放与归一化逻辑,使其更好地匹配通道布局和模型预期。
- 扩展技能就绪调试捕获能力,使低置信度预测和长时间运行的会话能够更可靠地被捕获。
- 为技能就绪引入集中式调试图像保存机制,对每个目录使用队列,并自动清理较旧文件,以限制保留图像的数量上限。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Improve battlefield skill readiness classification pipeline and debug
image handling, and make BlueStacks emulator termination more robust
when main module information is unavailable.
Bug Fixes:
- Fix incorrect ONNX input tensor shape for skill readiness
classification that used width/height in reversed order.
- Ensure concurrent access to skill readiness debug saving state is
synchronized to avoid data races when running multiple classifiers.
- Allow BlueStacks emulator shutdown to proceed via port-based logic
even when the process main module or its file path cannot be retrieved.
Enhancements:
- Adjust image resizing and normalization logic in the battlefield skill
readiness classifier to better match channel layout and model
expectations.
- Extend skill readiness debug capture so that low-confidence
predictions and long‑running sessions are captured more reliably.
- Introduce centralized debug image saving for skill readiness with
per-directory queues and automatic cleanup of older files to cap
retained images.
</details>
## Summary by Sourcery
没有任何实际的代码或配置更改;此发布提交仅触及 `tasks.json` 资源文件,但未更改其内容。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
No effective code or configuration changes; this release commit only
touches the tasks.json resource file without altering its contents.
</details>
## Summary by Sourcery
为更新程序提供更丰富的用户体验,改进连接与控制器行为,支持更多模拟器和客户端配置,并进行多项稳定性与文档更新。
New Features:
- 为外部更新程序新增 Windows 进度 UI,支持深色模式,包含双语状态文本和失败提示。
- 为更新程序新增可选的控制台输出,以及一个面向用户的设置,用于在委托更新时显示更新器控制台。
- 允许二次启动 MAA 时,通过命名事件激活已有实例窗口,而不是启动重复进程。
- 通过新的客户端类型实例选项支持解析客户端特定的 Android 包名,并从 WPF 前端一路接入核心控制器。
- 新增对腾讯安桌(Tencent Androws)模拟器的检测与配置支持,包括 ADB 路径自动发现以及所有支持语言的文档更新。
- 在关卡掉落识别与 UI 日志中暴露剿灭(Annihilation)每周进度和基于合成玉(orundum)的停止条件。
Bug Fixes:
- 修复 OCR 包标签路径比较问题,确保在加载模型时可以正确拾取已有的识别标签文件。
- 通过检查选项值而非选项数量,修正肉鸽遭遇回调校验逻辑。
- 通过以干员名称而非格子位置作为键,防止错误复用上一次技能时间戳。
- 确保 Minitouch 使用当前连接上下文(包括事件 ID 和显示 ID),而不是在本地重建 ADB 状态。
- 正确处理理智上限提升至新最大值的情况,避免将合法数值误判为超出范围。
- 避免在 C API 封装中在销毁阶段对同一个 AsstHandle 指针进行二次销毁。
- 通过使用解析后的坐标而不是逻辑点对象,修复 PlayTools 的滑动起点。
- 确保在识别标签路径更新时,只在标签文件真正变化时才重置 OCR 识别器。
- 仅在找到匹配任务时才更新最后任务名,保持进程任务状态一致性。
Enhancements:
- 改进更新程序日志,可选镜像输出到控制台,提供更结构化的消息以及双语控制台提示。
- 新增无模式、跟随主题的更新进度窗口,支持逐文件进度和高层状态阶段,并集成到更新流程中。
- 收紧多实例处理逻辑,引入哈希化的单实例键,并在退出时清理激活监听资源。
- 扩展 ADB 连接上下文,缓存配置、显示 ID、输入事件 ID 以及 netcat 地址/端口,以便在各控制器中复用。
- 为 Win32Controller 实现优雅的 stop_game:先发送 WM_CLOSE,如有需要再回退到进程终止。
- 优化后置动作行为,使 AttachWindow 模式在禁用不支持的 Android 端动作的同时保持 PC 端选项一致。
- 改进剿灭奖励处理逻辑,要求必定掉落合成玉后才继续,并在回调中暴露每周进度。
- 调整 copilot schema 文档和 minimum_required 版本说明,明确动作类型的语言支持情况。
- 更新多项任务与资源定义,包括 UI 主题任务布局、战斗数据、格子位置以及小游戏任务。
- 改进调试工具,将生成的 UI 主题图片重定向到正确的模板子目录中。
Build:
- 将更新程序链接到额外的 Windows 库(`comctl32`、`advapi32`、`dwmapi`),以支持新的进度 UI
和主题检测。
CI:
- 将 macOS 签名与配置相关的 GitHub Actions 升级到较新的主版本,用于发布构建。
Documentation:
- 在所有支持语言中补充腾讯应用商店 / 安桌模拟器的支持说明、连接细节与 ADB 配置文档。
- 明确 copilot schema JSON 的使用方式、版本策略以及动作类型的语言限制。
- 整理 GitHub issue 模板,移除过时占位内容,并明确日志上传说明。
Chores:
- 更新物品、任务、版本和格子位置等资源 JSON 文件,以匹配最新的游戏内容和 UI 主题。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add richer updater UX, improved connection and controller behavior,
support for additional emulator and client configurations, and various
stability and documentation updates.
New Features:
- Introduce a Windows progress UI with dark mode support for the
external updater, including bilingual status text and failure prompts.
- Add optional console output for the updater and a user-facing setting
to show the updater console during delegated updates.
- Allow secondary MAA launches to activate the existing instance window
instead of starting a duplicate process via a named event.
- Support resolving client-specific Android package names via a new
client type instance option wired from the WPF front-end into the core
controller.
- Add detection and configuration support for Tencent Androws emulator,
including ADB path discovery and documentation updates for all supported
languages.
- Expose annihilation weekly progress and orundum-based stop conditions
in stage drop recognition and UI logging.
Bug Fixes:
- Fix OCR pack label path comparison so that existing recognition label
files are correctly picked up when loading models.
- Correct roguelike encounter callback validation by checking the choice
value instead of the option count.
- Prevent incorrect reuse of last-skill timestamps by keying battlefield
cooldowns by operator name rather than tile location.
- Ensure Minitouch uses the current connection context (including event
and display IDs) instead of a locally reconstructed ADB state.
- Handle sanity cap increases up to the new maximum to avoid
misclassifying valid values as out-of-range.
- Avoid destroying an AsstHandle pointer twice on teardown in the C API
wrapper.
- Fix PlayTools swipe starting point by using the resolved coordinates
instead of the logical point object.
- Ensure recognition label path updates only reset the OCR recognizer
when the label file actually changes.
- Keep process task state consistent by only updating last task names
when a match is found.
Enhancements:
- Improve updater logging to optionally mirror to the console with
better structured messages and bilingual console prompts.
- Add a modeless, theme-aware updater progress window with per-file
progress and high-level status phases, integrated into the update flow.
- Tighten multiple-instance handling by introducing a hashed
single-instance key and cleaning up activation listener resources on
exit.
- Extend ADB connection context to cache configuration, display ID,
input event ID, and netcat address/port for reuse across controllers.
- Implement graceful stop_game for Win32Controller by sending WM_CLOSE
and falling back to process termination if needed.
- Refine post-action behavior so AttachWindow mode disables unsupported
Android-side actions while keeping PC-side options consistent.
- Improve annihilation reward handling by requiring orundum drops before
continuing and exposing weekly process in callbacks.
- Adjust copilot schema docs and minimum_required version guidance,
clarifying language support for action types.
- Update various task and resource definitions, including UI theme task
layouts, battle data, tile positions, and mini-game tasks.
- Improve debug tooling by redirecting generated UI theme images into
the correct template subdirectory.
Build:
- Link the updater against additional Windows libraries (comctl32,
advapi32, dwmapi) required for the new progress UI and theme detection.
CI:
- Bump macOS signing and provisioning GitHub Actions to newer major
versions for release builds.
Documentation:
- Document Tencent App Store/Androws emulator support, connection
details, and ADB configuration across all supported languages.
- Clarify copilot schema JSON usage, versioning, and language
constraints for action types.
- Tidy GitHub issue templates by removing outdated placeholders and
clarifying log upload instructions.
Chores:
- Update resource JSON files for items, tasks, versions, and tile
positions to match the latest game content and UI themes.
</details>
* docs: Auto Generate Changelog of Release v6.9.0-beta.1
* docs: Update CHANGELOG for v6.9.0-beta.1
Updated changelog for version 6.9.0-beta.1 with new features, improvements, fixes, and documentation updates.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
## 由 Sourcery 生成的摘要
为 v6.8.0 版本更新了更新程序行为、GUI 日志记录、资源以及 CI/发布工作流。
新功能:
- 在原生更新程序中添加对待处理更新计划条目的详细日志记录。
- 新增 copilot 配置 JSON 资源。
漏洞修复:
- 防止非完整更新包删除或替换目录,在这些情况下强制仅对文件进行操作。
- 从 WPF 待处理更新清单的删除列表中过滤目录条目,避免意外删除目录。
- 从 OTAPacker 的 zip 列表输出中排除目录条目。
- 当在 VisionHelper 中请求的 ROI 超出范围时,返回安全的空矩形,以避免无效图像访问。
- 通过仅记录最新公告正文来避免公告日志被覆盖。
改进:
- 为原生更新程序日志文件引入基于最大大小阈值的日志轮换。
- 在完整包更新期间保留缓存目录。
- 在 CI 中从发布制品中移除备份文件,以保持发布包干净。
构建:
- 调整本地安装脚本,将 WPF GUI 发布为 win-x64、自包含且针对特定运行时的构建。
CI:
- 在多个工作流中将 github-script action 升级到 v9。
- 在 Avalonia CI 工作流中将 upload-artifact 的使用升级到 v7。
- 更新发布工作流以使用最新的 softprops/action-gh-release v3。
- 将 COS 上传步骤切换为使用较新的 tencent-cos-action,并采用基于 sync 的参数进行发布分发。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update updater behavior, GUI logging, resources, and CI/release
workflows for the v6.8.0 release.
New Features:
- Add detailed logging of pending update plan entries in the native
updater.
- Add new copilot configuration JSON resources.
Bug Fixes:
- Prevent non-full update packages from deleting or replacing
directories, enforcing file-only operations in these cases.
- Filter directory entries from the WPF pending update manifest remove
list to avoid unintended directory removals.
- Exclude directory entries from OTAPacker zip listing output.
- Return a safe empty rectangle when a requested ROI is out of range in
VisionHelper to avoid invalid image access.
- Avoid overwriting announcement logs by logging only the latest
announcement body.
Enhancements:
- Introduce log rotation for the native updater log file based on a
maximum size threshold.
- Preserve the cache directory during full-package updates.
- Remove backup files from release artifacts in CI to keep distributions
clean.
Build:
- Adjust local-install script to publish the WPF GUI as a win-x64
self-contained runtime-specific build.
CI:
- Bump github-script actions to v9 in multiple workflows.
- Upgrade upload-artifact usage to v7 in Avalonia CI workflows.
- Update release workflow to use the latest softprops/action-gh-release
v3.
- Switch COS upload step to use the newer tencent-cos-action with
sync-based arguments for release distribution.
</details>
fix: 给更换产物/订单的一环任务步骤加延时,避免在极低截图延迟下(5ms)出现更换不成功的情况。
fix: 给ConfirmProductChange任务添加一个stop出口,避免在单独测试更换产物任务时,可能会出现的一个意外报错。
点击更换订单和点击更换产物的时候(见下方两图)会有一个动画时间。
以前cpp代码里,任务执行默认有个500ms延时,可能是现在没有了吧,导致mumu extra模式下,有随机概率卡动画,点击产物会不生效,而且。
大概今年1月份就在我的基建里发现换班出问题了,但是再手动link start一次通常又能换好。
观察一段时间之后,发现能不能换成功都是随机的感觉。
同时,不管换没换对,在基建换班任务执行中,都是返回产物已切换,没有报错的。这个没搞懂怎么回事。
<img width="921" height="517" alt="image"
src="https://github.com/user-attachments/assets/5a45910d-8a87-47b8-8695-4e0f4242df8a"
/>
<img width="918" height="518" alt="image"
src="https://github.com/user-attachments/assets/c4132171-4978-4dbd-afbd-a9aaad13b6b0"
/>
额外加的stop入口是因为在执行自定任务测试的时候发现,如果切换到的产物和当前产物一致,会报错。
正常来说如果产物一致是不会进换产物流程的,所以不影响正常的换班逻辑。
## Summary by Sourcery
为产品/订单变更任务添加时序和控制流调整,以在截图延迟极低的情况下提升可靠性。
Bug Fixes:
- 在产品/订单变更步骤中引入延迟,以防止在截图延迟极低时出现随机失败。
- 为 `ConfirmProductChange` 任务添加停止退出逻辑,以避免在隔离任务测试期间,当目标产品与当前产品相同时出现错误。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add timing and control-flow adjustments to product/order change tasks to
improve reliability under very low screenshot latency.
Bug Fixes:
- Introduce a delay in the product/order change step to prevent random
failures when screenshots are taken with extremely low latency.
- Add a stop exit to the ConfirmProductChange task to avoid errors when
the target product is the same as the current one during isolated task
testing.
</details>
close#16272
## Summary by Sourcery
更新 Roguelike 任务资源,为 JieGarden 和基础任务添加新的繁体中文内容和截图。
增强内容:
- 刷新 Roguelike JieGarden 任务配置,以纳入更新后的资源和文本。
- 调整通用的 Roguelike 基础任务定义,使其与新的繁体中文本地化数据保持一致。
- 更新整体 Roguelike 任务列表元数据,以引用新增和已更新的任务资源。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update Roguelike task resources for JieGarden and base tasks with new
Traditional Chinese content and screenshots.
Enhancements:
- Refresh Roguelike JieGarden task configuration to incorporate updated
assets and text.
- Adjust shared Roguelike base task definitions to align with new
Traditional Chinese localization data.
- Update overall Roguelike task list metadata to reference the new and
updated task resources.
</details>
* docs: Auto Generate Changelog of Release v6.8.0-beta.1
* i18n: quick and dirty EN (it's just a beta)
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
closes#16182
## Summary by Sourcery
错误修复:
- 修复繁体中文(txwy)任务配置文件中对基础运算符识别不正确的问题。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- Fix incorrect base operator identification in the Traditional Chinese
(txwy) task configuration file.
</details>
DESCRIPTION=$(printf 'Read the full release note [here](%s).\n\nOpen or reopen your MAA client to get automatic updates.\nOr, download `MAA %s` for your platform by clicking the buttons below.' "$URL" "$TAG")
DESCRIPTION=$(printf 'Read the full release note [here](%s).\n\nReopen your MAA client to get automatic updates.\nDownload MAA `%s` for your platform below.' "$URL" "$TAG")
body: `## ⚠️ Found ${invalidCommits.length} invalid commit(s):\n\n${invalidCommitInfoList}\n\n---\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format, and **DO NOT** use merge commits.\n请遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) 格式,以及**不要**使用Merge Commit(修改 Commit Message 无法绕过检测)。`
我们很高兴地宣布:从 v6.7.0 开始,MAA 将正式接入 DeepSleep。这将意味着我们首次将 AI 引入到游戏助手领域,为你带来更智能、高效的体验。DeepSleep 的 AI 算法能够实时分析游戏运行数据,动态生成运行日志,在保证游戏流畅度的同时有效提升用户体验。这一功能的加入,标志着 MAA 在智能化方向上迈出了关键一步,未来我们也将持续探索 AI 技术与 MAA 的深度融合,为你带来更多创新体验。 ~(绝对不是牛牛喝醉了睡着导致的)~
Added a 6-star auto recruitment feature that can be enabled through manual configuration file editing. The "Recruit" and "Recruitment Time" options have been moved to general settings, with improved tooltip hints.
----
#### Notification Fallback
We are pleased to announce that starting from v6.7.0, MAA will officially integrate DeepSleep. This marks the first time we bring AI into the game assistant space, delivering a smarter and more efficient experience. DeepSleep's AI algorithm analyzes game runtime data in real time and dynamically generates operation logs, effectively enhancing user experience while maintaining smooth gameplay. The addition of this feature represents a key milestone in MAA's journey toward intelligence, and we will continue to explore deeper integration of AI technology with MAA to bring you more innovative experiences. ~(Definitely not because Pallas got drunk and fell asleep)~
Automatically falls back to in-app notifications when system notifications are unavailable, ensuring users never miss important alerts. The startup notification availability check now shows an in-app Growl message instead of only logging to file.
#### Achievement DLC #3 Included
#### Switch Language Without Restart
Alongside DeepSleep, this update also brings Achievement DLC #3.
Switching the UI language no longer requires a restart; operator recognition, depot recognition, and other views now support dynamic switching.
* Achievements are now organized by DLC release phase;
* A new batch of achievement triggers and descriptions has been added;
* Multilingual texts and several trigger details have also been refined.
### New Support for Run Once of Tasks
Right-click the task settings icon to open a secondary menu, where "Run Once" is now available alongside "Rename" and "Delete," making it easy to quickly execute a task once.
#### Various UX Fixes Included
Besides DeepSleep, this update also fixes several small but noticeable issues.
* Fix task creation failures caused by clearing depot data off the UI thread;
* Fix several issues related to Annihilation recognition and completion ROI.
@@ -78,7 +78,9 @@ We've preset several different development environments for you to choose from:
- Press F5 to run
::: tip
To debug Win32Controller (Windows window control) features, you need to manually download the corresponding platform package from [MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases), and place `MaaWin32ControlUnit.dll` from the `bin` directory into MAA's DLL directory (e.g. `build/bin/Debug`). PRs for an auto-download script are welcome!
To run Win32Controller (Windows window control) / MaaFwAdbController (MaaFramework touch mode) features, you need to manually download the package for your platform from [MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases), and place `MaaWin32ControlUnit.dll` / `MaaAdbControlUnit.dll` from the `bin` directory into MAA's DLL directory (e.g. `build/bin/Debug`). PRs for an auto-download script are welcome!
To debug these features, [compile the Debug version of MaaFramework yourself](https://maafw.com/docs/4.1-BuildGuide) and use the corresponding DLLs, or it will randomly crash at breakpoints.
:::
9. Now you're ready to happily ~~mess around~~ start developing!
@@ -23,6 +23,8 @@ Our documentation is built on [vuepress](https://github.com/vuejs/vuepress) and
This theme provides support for custom containers such as tips, notes, info, warnings, alerts, and details. We can utilize this feature to emphasize certain content.
Note that if containers are nested within containers, the parent container should use one more colon `:` than the child container to differentiate them.
Usage of containers:
```markdown
@@ -31,6 +33,13 @@ Content you want to write
:::
```
Or use GitHub-style syntax:
```markdown
> [!Container Type]
> Content you want to write
```
Accepted container types and their default titles are as follows:
-`tip` Tips
@@ -39,6 +48,7 @@ Accepted container types and their default titles are as follows:
-`warning` Warning
-`danger` Caution
-`details` Details
-`window` ==Special Container==
### Container Examples
@@ -66,6 +76,190 @@ This is a danger container
This is a details container
:::
::: window
This is a very special container
:::
## Markers
You can use the marker syntax to highlight content and emphasize key points.
Usage: Use `==content=={color (optional)}` syntax to mark text. Note that spaces are required on both sides of the marks.
**Input:**
```markdown
MaaAssistantArknights is developed by ==many pigs==
```
**Output:**
MaaAssistantArknights is developed by ==many pigs==
The theme also has the following built-in color schemes:
For some reason, you may need to temporarily black out a section of the document. In this case, you can use the hidden text feature.
You can use the `!!content!!{config (optional)}` syntax, and the default effect is as follows:
!!I always feel like I'm reading MoeGirl (strikethrough!!
The following configurations are available:
::: window
Input:
```markdown
+ Mask effect + Mouse hover: !!Mouse hover to see me!!{.mask .hover}
+ Mask effect + Click: !!Click to see me!!{.mask .click}
+ Text blur effect + Mouse hover: !!Mouse hover to see me!!{.blur .hover}
+ Text blur effect + Click: !!Click to see me!!{.blur .click}
```
Output:
- Mask effect + Mouse hover: !!Mouse hover to see me!!{.mask .hover}
- Mask effect + Click: !!Click to see me!!{.mask .click}
- Text blur effect + Mouse hover: !!Mouse hover to see me!!{.blur .hover}
- Text blur effect + Click: !!Click to see me!!{.blur .click}
:::
## Steps
When writing a step-by-step tutorial, ordered lists may lose their hierarchy due to nesting. In this case, the `steps` container is the best choice.
Input:
````markdown
:::: steps
1. Step 1
```ts
console.log('Hello World!')
```
2. Step 2
Here is the content related to Step 2
3. Step 3
::: tip
Tip container
:::
4. End
::::
````
Output:
:::: steps
1. Step 1
```ts
console.log('Hello World!')
```
2. Step 2
Here is the content related to Step 2
3. Step 3
::: tip
Tip container
:::
4. End
::::
## Smart Image Container
We have wrapped an image container based on the functionality provided by the theme. This container can automatically display the corresponding image in light and dark themes, while supporting automatic layout.
You can use the `<ImageGrid>` component in the markdown body to invoke this method. The specific syntax and effects are as follows:
::: window
This is the syntax:
```markdown
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
},
{
light: 'images/zh-cn/readme/3-light.png',
dark: 'images/zh-cn/readme/3-dark.png'
},
{
light: 'images/zh-cn/readme/4-light.png',
dark: 'images/zh-cn/readme/4-dark.png'
}
]" />
```
This is the rendered result:
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
}
]" />
:::
## Field Container
This syntax is more complex. Please refer to the [official documentation](https://theme-plume.vuejs.press/guide/markdown/field/) for usage.
The effects are as follows:
:::: field-group
::: field name="theme" type="ThemeConfig" required default="{ base: '/' }"
Theme configuration
:::
::: field name="enabled" type="boolean" optional default="true"
**This tutorial requires readers to have some Linux environment configuration ability and programming foundation!** If you only want to directly install MAA instead of compiling it yourself, please read [User Manual - Linux Emulators and Containers](../manual/device/linux.md).
::: info Note
MAA's build method is still under discussion. The content of this tutorial may be outdated. Please refer to the scripts in [GitHub workflow file](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/.github/workflows/ci.yml#L134). You can also refer to [AUR PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights), [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix).
MAA's build method is still under discussion. The content of this tutorial may be outdated. Please refer to the scripts in [GitHub workflow file](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/dev-v2/.github/workflows/ci.yml#L224#:~:text=ubuntu%3A).
You can also refer to [AUR PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights) or [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix).
:::
::: info
@@ -73,6 +74,8 @@ Mac can use the `tools/build_macos_universal.zsh` script for compilation. It's r
cmake --install build --prefix <target_directory>
```
4. To debug MaaFwAdbController (MaaFramework touch mode) features, you need to [compile the Debug version of MaaFramework yourself](https://maafw.com/docs/4.1-BuildGuide) and put `libMaaAdbControlUnit.so` in the installation directory.
## Integration Documentation
[~~Perhaps not really documentation~~](../protocol/integration.md)
@@ -85,8 +88,6 @@ You can refer to the implementation of `__main__` in [Python demo](https://githu
You can refer to the implementation in [CppSample](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/src/Cpp/main.cpp)
### C Sharp
<!-- Do not use C#, MD003/heading-style: Heading style [Expected: atx; Actual: atx_closed] -->
### C\#
You can refer to the implementation in [MaaWpfGui](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/src/MaaWpfGui/Main/AsstProxy.cs)
- Tencent App Store (after 5.10.56.xx): `127.0.0.1:5555`
If detection fails, try launching MAA with UAC administrator privileges and detect again. If it still fails, refer to the manual setup instructions below and verify that your emulator and connection address are included in the list above.
@@ -57,6 +58,7 @@ Emulators running on your local machine should use addresses like `127.0.0.1:<po
- [Tencent App Store](https://sj.qq.com/faq/3878): ADB port is fixed at `127.0.0.1:5555`. ADB path example: `C:\Program Files\Tencent\Androws\Application\<version>\adb.exe`.
For other emulators, refer to [Zhao Qingqing's blog](https://www.cnblogs.com/zhaoqingqing/p/15238464.html).
@@ -180,17 +182,28 @@ Requires official or international LDPlayer 9 V9.1.32 or newer. <!-- Official V9
3. Enter the number (ID) of the corresponding emulator in the LDPlayer multi-instance manager in `Instance Number`, such as `0` for the main instance.
### AVD Screenshot Enhanced Mode
Requires Android Emulator v27.2.9 or newer. (You should be fine as long as you got the emulator after Arknights launched.)
AVD Screenshot Enhanced Mode is implemented in MaaFramework. Touch mode must be set accordingly for Screenshot Enhanced Mode to work.
1. [Minitouch](https://github.com/DeviceFarmer/minitouch): An Android touch event handler written in C that operates on `evdev` devices and provides a Socket interface for external programs to trigger touch events and gestures. Starting with Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode.<sup>[source](https://github.com/DeviceFarmer/minitouch?tab=readme-ov-file#for-android-10-and-up)</sup>
2. [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch): MAA's Java reimplementation of Minitouch that uses Android's native `InputDevice` and adds extra features. Compatibility with newer Android versions is still being tested. ~~Help us test it~~
3. Adb Input: Directly calls ADB to use Android's `input` command for touch operations. Most compatible but slowest.
4. [MaaFramework](https://maafw.com/): Delegates screenshot and touch commands to MaaFramework's control unit. Still being tested. ~~Help us test it x2~~
## ADB Lite
MAA's independent ADB Client implementation that communicates directly with the ADB Server via TCP. Compared to the original ADB, it avoids constantly launching multiple ADB processes, reducing performance overhead, but some screenshot methods aren't available.<sup>[PR](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/3315)</sup>
We recommend enabling it, but specific pros and cons need feedback. ~~Help us test it x2~~
We recommend enabling it, but specific pros and cons need feedback. ~~Help us test it x3~~
- When executed successfully, it will show connected USB debugging devices.
- Example of a successful connection:
@@ -114,23 +118,25 @@ It is strongly recommended to revert these changes **before the next device rebo
## Automate Resolution Changes
::: steps
1. Create two text files in the MAA directory with the following content:
```bash
# Adjust resolution to 1080p
```bat
:: Adjust resolution to 1080p
adb -s <target device serial number> shell wm size 1080x1920
# Lower screen brightness (optional)
:: Lower screen brightness (optional)
adb -s <target device serial number> shell settings put system screen_brightness 1
```
```bash
# Restore resolution
```bat
:: Restore resolution
adb -s <target device serial number> shell wm size reset
# Increase screen brightness (optional)
:: Increase screen brightness (optional)
adb -s <target device serial number> shell settings put system screen_brightness 20
# Return to home screen (optional)
:: Return to home screen (optional)
adb -s <target device serial number> shell input keyevent 3
# Lock screen (optional)
:: Lock screen (optional)
adb -s <target device serial number> shell input keyevent 26
```
@@ -139,6 +145,8 @@ It is strongly recommended to revert these changes **before the next device rebo
3. In MAA's `Settings` - `Connection Settings`, set `Start Script` to `startup.bat` and `End Script` to `finish.bat`.
:::
## Connect to MAA
### Wired Connection
@@ -157,6 +165,8 @@ Wired connections don't need IP addresses or ports - just the device serial numb
#### Using `adb tcpip` for Wireless Debugging
::: steps
1. In the command prompt, enable wireless debugging:
```bash
@@ -171,12 +181,16 @@ Wired connections don't need IP addresses or ports - just the device serial numb
3. Enter `<IP>:5555` in MAA's `Settings` - `Connection Settings` - `Connection Address`, e.g., `192.168.1.2:5555`.
4. Link Start!
:::
#### Using `adb pair` for Wireless Debugging
::: tip
`adb pair` wireless pairing (available in Android 11 and later via Developer Options) allows connection without a physical USB connection, unlike `adb tcpip`.
:::
::: steps
1. On your phone, go to Developer Options, tap `Wireless Debugging` and enable it. Tap `Pair device with pairing code` and keep the popup open until pairing completes.
2. Complete the pairing:
@@ -187,11 +201,17 @@ Wired connections don't need IP addresses or ports - just the device serial numb
3. Enter the IP address and port shown on your device screen into MAA's `Settings` - `Connection Settings` - `Connection Address`, e.g., `192.168.1.2:11451`. **This is different from the address used for pairing**.
4. Link Start!
:::
#### Using Root to Enable Wireless ADB
~~If you have access to root, why do you need to read this document~~
1. Download, install [WADB](https://github.com/RikkaApps/WADB/releases) and grant it root privileges. 2.
2. Open WADB and start wireless adb. 3.
::: steps
1. Download, install [WADB](https://github.com/RikkaApps/WADB/releases) and grant it root privileges.
2. Open WADB and start wireless adb.
3. Put the IP address and port provided by WADB into MAA `Settings` - `Connection` - `Connection Address`, such as `192.168.1.2:5555`.
@@ -19,7 +19,9 @@ The MAA WPF GUI can currently be run through Wine. MAA now uses self-contained d
#### Installation Steps
1. Install Visual C++ Redistributable:
:::: steps
1. Install Visual C++ Redistributable
Download and install [Visual C++ Redistributable](https://aka.ms/vc14/vc_redist.x64.exe):
@@ -31,7 +33,11 @@ The MAA WPF GUI can currently be run through Wine. MAA now uses self-contained d
`DependencySetup_依赖库安装.bat` relies on winget and Windows privilege escalation, which typically doesn't work properly in Wine, so manual installation of runtime libraries is required.
:::
2. Download the Windows version of MAA, extract it, and run `wine MAA.exe`.
2. Download MAA
Download the Windows version of MAA, extract it, and run `wine MAA.exe`.
::::
::: info Note
You need to set the ADB path to the [Windows version of `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) in the connection settings.
@@ -66,52 +72,52 @@ Place the `MaaDesktopIntegration.so` generated by MAA Wine Bridge in the same di
### Using Python
#### 1. Installing MAA Dynamic Library
:::: steps
1. Download and extract the Linux dynamic library from the [MAA website](https://maa.plus/), or install from a software repository:
- AUR: [maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights), follow the post-installation instructions
2. Navigate to `./MAA-v{version}-linux-{architecture}/Python/` and open the `sample.py` file
2. Navigate to `./MAA-v{version}-linux-{architecture}/Python/` and open the `sample.py` file
::: tip
The precompiled version includes dynamic libraries compiled on relatively new Linux distributions (Ubuntu 22.04). If your system has an older libstdc++ version, you might encounter ABI incompatibility issues.
You can refer to the [Linux Compilation Tutorial](../../develop/linux-tutorial.md) to recompile or use a container solution.
:::
::: tip
The precompiled version includes dynamic libraries compiled on relatively new Linux distributions (Ubuntu 22.04). If your system has an older libstdc++ version, you might encounter ABI incompatibility issues.
You can refer to the [Linux Compilation Tutorial](../../develop/linux-tutorial.md) to recompile or use a container solution.
:::
2. ADB Configuration
1. Find the line [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/b4fc3528decd6777441a8aca684c22d35d2b2574/src/Python/sample.py#L62)
2. ADB Tool Configuration
- If using `Android Studio`'s `AVD` emulator, it comes with ADB. You can directly specify the ADB path to replace `adb.exe`, typically found in `$HOME/Android/Sdk/platform-tools/`, for example:
#### 2. ADB Configuration
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator's ADB address"):
```
1. Find the line [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/b4fc3528decd6777441a8aca684c22d35d2b2574/src/Python/sample.py#L62)
- For other emulators, first install ADB: `$ sudo apt install adb`, then either specify the path or simply use `adb` if it's in your `PATH` environment variable.
2. ADB Tool Configuration
- If using `Android Studio`'s `AVD` emulator, it comes with ADB. You can directly specify the ADB path to replace `adb.exe`, typically found in `$HOME/Android/Sdk/platform-tools/`, for example:
3. Getting the Emulator's ADB Address
- Use the ADB tool directly: `$ adb_path devices`, for example:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator's ADB address"):
- For other emulators, first install ADB: `$ sudo apt install adb`, then either specify the path or simply use `adb` if it's in your `PATH` environment variable.
- The returned `emulator-5554` is the emulator's ADB address. Replace `127.0.0.1:5555` with it, for example:
3. Getting the Emulator's ADB Address
- Use the ADB tool directly: `$ adb_path devices`, for example:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
4. Now you can test with `$ python3 sample.py`. If it returns "Connection successful," you're ready to proceed.
- The returned `emulator-5554` is the emulator's ADB address. Replace `127.0.0.1:5555` with it, for example:
3. Task Configuration
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
Custom tasks: Refer to the [Integration Documentation](../../protocol/integration.md) and modify the [`# Task parameters can be found in docs/integration.md`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) section in `sample.py`
4. Now you can test with `$ python3 sample.py`. If it returns "Connection successful," you're ready to proceed.
#### 3. Task Configuration
Custom tasks: Refer to the [Integration Documentation](../../protocol/integration.md) and modify the [`# Task parameters can be found in docs/integration.md`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) section in `sample.py`
Recommended configuration: x86_64 architecture (R - 30 - x86_64 - Android 11.0) with MAA's Linux x64 dynamic library
Also supports [Screenshot Enhanced Mode](../connection.md#avd-screenshot-enhanced-mode).
Note: Starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.
### ⚠️ [Genymotion](https://www.genymotion.com/)
@@ -146,10 +154,6 @@ waydroid prop set persist.waydroid.height 720
To set up ADB IP address: Go to `Settings` - `About` - `IP address`, note the first `IP`, and use `${recorded IP}:5555` in `sample.py` for the ADB IP.
If using amdgpu, the `screencap` command might output messages to stderr, causing image decoding failures.
You can run `adb exec-out screencap | xxd | head` and check if there's text like `/vendor/etc/hwdata/amdgpu.ids: No such file...` in the output.
If present, try changing the screenshot command in `resource/config.json` from `adb exec-out screencap` to `adb exec-out 'screencap 2>/dev/null'`.
@@ -13,6 +13,8 @@ Experimental support. Please submit issues if you encounter problems, and includ
Note: Due to macOS system limitations, screenshot issues may occur when minimizing the game window, switching to other windows while in Stage Manager, or moving the window to other desktops/screens. Related issue: [#4371](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512)
::: steps
0. Requirements: MAA version v4.13.0-rc.1 or newer
1. Download and install the [forked version of PlayCover](https://github.com/hguandl/PlayCover/releases).
@@ -29,13 +31,17 @@ Note: Due to macOS system limitations, screenshot issues may occur when minimizi
7. Steps 3-5 only need to be done once. After that, just launch Arknights. After each Arknights client update, you'll need to repeat step 2.
Supported, but less thoroughly tested. Requires using a touch mode other than `MacPlayTools`. Related issue: [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)
Supported, but starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive`mode.
Supported; also supports [Screenshot Enhanced Mode](../connection.md#avd-screenshot-enhanced-mode).
From Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.
### ✅ [BlueStacks Air](https://www.bluestacks.com/mac) (Free, optimized for Apple M-series chips)
@@ -61,4 +67,6 @@ Note: On macOS, the Nox ADB binary is located at `/Applications/NoxAppPlayer.app
Supported, but starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.
Supported; also supports [Screenshot Enhanced Mode](../connection.md#avd-screenshot-enhanced-mode).
Starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.
note: 'Fully compatible. Need to turn on ADB Connectivity in the emulator `Settings` → `Advanced` → `Android Debug Bridge` → `Enable`. Known to be compatible with Hyper-V.\n\n- Recommended to download [Offline Installer](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer) to avoid slow and bundled installation; recommend installing [Android 11](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer#:~:text=To%20install%20BlueStacks%205%20Android%2011) version; to uninstall it, please use the official [Uninstall Tool](https://support.bluestacks.com/hc/en-us/articles/360057724751-How-to-uninstall-BlueStacks-5-BlueStacks-X-and-BlueStacks-Services-completely-from-your-PC) to get rid of residues.\n- If the ADB port number keeps changing irregularly and is different every time you start it, it may be because your computer has [Hyper-V](https://support.bluestacks.com/hc/en-us/articles/4415238471053-System-requirements-for-BlueStacks-5-on-Hyper-V-enabled-Windows-10-and-11) enabled. MAA will now try to automatically read the port number from the BlueStacks emulator configuration file. If this doesn\'t work, or you need to use multiple instances, or have installed multiple emulator cores, please refer to [Connection Settings](../connection.html#bluestacks-emulator-hyper-v-port-number-changes-every-startup) to make adjustments. Since Hyper-V runs as administrator, operations that don\'t involve ADB such as automatic emulator shutdown or connection detection also need MAA to run as administrator.',
},
...shuffleArray([
{
name: 'Tencent App Store',
link: 'https://sj.qq.com/',
note: 'Supports versions after 5.10.56.xx. Select `Tencent App Store` connection configuration in `Settings` - `Connection Settings`. Known to be compatible with Hyper-V.\n\n- ADB port is `127.0.0.1:5555`.\n- ADB path example: `C:\\Program Files\\Tencent\\Androws\\Application\\<version>\\adb.exe`.\n\n- You need to first [enable ADB debugging](https://sj.qq.com/faq/3878) in the app.',
note: 'Theoretically supported.\n\n- Starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.\n- AVD is designed for development debugging, not gaming. Other emulators specifically designed for gaming are recommended instead.',
note: 'Theoretically supported, with additional support for [Screenshot Enhanced Mode](../connection.html#avd-screenshot-enhanced-mode).\n- Starting from Android 10, Minitouch is no longer available when SELinux is in `Enforcing` mode. Please switch to other touch modes, or **temporarily** switch SELinux to `Permissive` mode.\n- AVD is designed for development debugging, not gaming. Other emulators specifically designed for gaming are recommended instead.',
@@ -54,6 +54,13 @@ For Windows N/KN (European/Korean versions), you also need to install the [Media
Due to runtime libraries and system components requiring Windows 10 or above, MAA no longer supports Windows 7/8/8.1 systems.
### Flagged by Windows Defender / antivirus software (PUA / malware)
- First verify the download source. Only use official channels (official website, GitHub Releases, Winget, or official community distribution channels), and make sure you downloaded the full package (for example, `MAA-<version>-win-x64.zip`).
- Automation tools may trigger heuristic detections in some antivirus engines. A detection result does not always mean the program is malicious.
- If the source is trusted, submit a false-positive sample to the security vendor and wait for signature updates.
- While waiting, you can temporarily add the MAA installation directory to antivirus allowlists. Avoid disabling real-time protection entirely.
You are viewing the MAA GUI download and installation guide. If you need the maa-cli download and installation instructions, see maa-cli's [Installation and Build](./cli/install.md). The Android variant (MAA Android) is currently in open testing — see [MAA-Meow](https://github.com/Aliothmoon/MAA-Meow) for details.
:::
## Downloading MAA
MAA offers multiple download channels, including the official website, package managers, and group file shares. Choose the method that fits your environment.
### Download the latest package from the [official website](https://maa.plus)
The website usually selects the correct architecture automatically; for most readers this will be Windows x64. macOS users should choose the macOS universal build.
### Download the latest package via [Mirror酱](https://mirrorchyan.com/zh/projects?rid=MAA&source=maadocs-install)
Confirm your system architecture and download the matching package. Mirror酱 does not provide a macOS universal build — macOS users should select the package matching their chip architecture (arm/x86).
::: tip
[Mirror酱](https://mirrorchyan.com/zh/projects?rid=MAA&source=maadocs-install) is a third‑party, paid download acceleration service and is not operated by the MAA project. Its operating costs are covered by subscriptions and a portion of revenue is shared with project contributors. Consider subscribing to CDK for faster downloads and to support the project.
:::
### Install via Windows package manager (Winget)
::: tip
This method applies only to Windows users.
:::
Run the following command in a terminal:
```bash
winget install maa
```
When installed this way the default install path is `C:\Users\<username>\AppData\Local\Microsoft\WinGet\Packages`.
### Download from the official QQ group files
1. Join the [MAA official QQ group](https://api.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
2. Download the latest MAA package from the group's shared files.
### Download from [GitHub Releases](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
Make sure to choose the package that matches your system architecture. For most Windows users download `MAA-<version>-win-x64.zip`. For macOS users choose `MAA-<version>-macos-universal.dmg`.
## Linux and other operating systems
MAA GUI is currently not supported on Linux or other operating systems. You can use `maa-cli` to access MAA functionality on those systems — see the maa-cli [Installation and Build](./cli/install.md) document for details.
## Installing MAA
### Windows
After downloading you will have a `.zip` file. Extract it fully with your archive tool to obtain a folder containing all MAA files.
::: warning
1. Do not extract MAA to locations that require UAC elevation such as `C:\` or `C:\Program Files\`.
2. MAA includes a bundled .NET runtime (self-contained deployment), but it still requires the Visual C++ Redistributable x64 (VCRedist x64). After extraction, run `DependencySetup_依赖库安装.bat` in the MAA directory as administrator to install the required dependencies. After installation completes, run `MAA.exe`.
For more information see the top of the [FAQ](./faq.md).
:::
Double-click `MAA.exe` to start MAA.
::: tip
If you installed via Winget you can start MAA by running `maa` from the command line without extracting the archive or installing runtimes manually. If `maa-cli` is on your PATH you may need extra steps to disambiguate the two.
:::
### macOS
Open the downloaded `.dmg` and drag `MAA.app` to `/Applications` to complete installation.
## Next steps
After installation, return to the [New User Guide](./newbie.md) to continue setup, or visit [Introduction](./introduction/) to learn about MAA's features. If you encounter problems during installation, check the [FAQ](./faq.md) for troubleshooting tips.
Ensure you're on the stage details screen with the stage name and remaining sanity in the upper right and auto-deploy/start buttons in the lower right.
- If you're not on this screen, `Current/Last` will automatically enter the "last operation" stage shown on the bottom right of the terminal home screen.
- You can also enable `Manual entry of stage names` in `Task Settings` - `Sanity Farming` - `Advanced Settings` to manually input stage codes. Currently supported stages include:
- All main story stages. You can add `-NORMAL` or `-HARD` at the end to switch between normal and challenge modes.
- All main story stages. You can add `-NORMAL` or `-HARD` at the end to switch difficulty: Chapters 10-14 map to Standard/Adverse, while Chapters 15+ map to Normal/Raid.
- Resource stages like CE-6/LS-6 (LMD/EXP). Enter the exact code like `CE-6` or `LS-6`. MAA will automatically switch to level 5 if level 6 isn't available.
- Skill summary, voucher, and carbon stages (level 5 only). Enter exact codes like `CA-5`, `AP-5`, or `SK-5`.
- All chip stages. Enter complete stage codes like `PR-A-1`.
Currently, support for Reclamation Algorithm is still in early stages and unattended operation is not recommended, as stability cannot be guaranteed at this time.
## Default Mode
## Tales Within the Sand
### Default Mode
1. You need to start the task from the Reclamation Algorithm main interface (navigation not yet implemented)
2. Cannot be used when you already have an existing save file (delete the existing save to use)
3. Cannot be used when operators are present in the Reclamation Algorithm squad (clear the current squad, especially after completing a wave)
## Manufacturing Points Farm
### Manufacturing Points Farm
1. You need to start from the page where you can see the base camp after entering Reclamation Algorithm
2. If no item name is specified, Glow Sticks will be crafted by default
3. Prerequisite: It must be the first day after settlement, with no enemy raids entering the base camp for the next three days
4. If the manufacturable quantity is exactly a multiple of 99, the process may get stuck. You can use up a small amount before saving; this issue will be fixed in the future
## Relaunch Anchor
### RA-1
- Income reference: ~159 tokens + coordination points per run, ~2 min 10 sec per cycle
- Operator requirement: None
- Prerequisite: Complete RA-1 in the main storyline
- Open RA-1 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Reward estimate: ~417 tokens + coordination points per run, ~1 min 40 sec per round
- Operator requirement: Wis'adel (support unit allowed)
- Prerequisite:
1. Advance the main story until RA-4 is cleared.
2. Unlock Strategy Planning Management.
3. If you have your own Wis'adel, manually enter the stage and form a team once, ensuring any 5 operators with lower DP cost than Wis'adel + Wis'adel, and Wis'adel is in the 6th slot (i.e., the last one selected). Then confirm recruitment, abandon the current construction, and start from "Start Construction".
4. If using a support Wis'adel, ensure that Wis'adel is on the front page of sniper support units (consider using a friend). Manually enter the stage and add any 5 operators with lower DP cost than Wis'adel, select support Wis'adel for the 6th slot, then confirm recruitment, abandon the current construction, and start from "Start Construction" (ensure the first five slots have operators and the 6th slot is empty).
- Open RA-4 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
### RA-15
- Income reference: ~500 tokens + coordination points per run, ~3 min per cycle
- Operator requirement: Civilight Eterna (can use support unit)
- Prerequisites:
1. Complete RA-15 in the main storyline
2. If you own Civilight Eterna, manually open the stage and set up the squad once: 5 Vanguards (no level requirement) + Civilight Eterna in the 6th slot, then save and exit
3. If using support Civilight Eterna, ensure she appears on the first page of Caster supports
- Open RA-15 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Complete the 60-kill mission with Civilight Eterna
@@ -11,10 +11,14 @@ Auto Recruitment and [Recruitment Recognition](./tools.md#recruitment-recognitio
Supports automatic use of `Expedited Plans`, allows setting maximum recruitment times per task, and can be combined with `Auto use Expedited Plans` to quickly use up all recruitment permits.
Pop-up notifications will appear when 1★, 5★, or 6★ tags are detected.
Pop-up notifications will appear when preserved tags, 5★ tags, or 6★ tags are detected.
Recruitment tag data is automatically uploaded to [Penguin Statistics](https://penguin-stats.io/) and [Yituliu](https://ark.yituliu.cn/) when refreshing recruitment.
## Advanced Settings
`Auto confirm` means MAA automatically selects tags and performs recruitment, while `Manual confirm` means no automatic tag selection or recruitment is performed.
After enabling `Preferred 3★ tags`, you can choose which 3★ tags should be preferred. After enabling `Preserve selected tags`, you can choose which tags should keep the current slot untouched.
When any preserved tag is recognized, MAA skips the current recruitment slot and leaves it unchanged instead of confirming that recruitment.
@@ -18,6 +18,7 @@ Only supports switching to already logged-in accounts, using the login name for
- Examples:
- Official server: `123****8901` can be entered as `123****8901`, `123`, `8901`, or `3****8`
- Bilibili server: `Zhang San` can be entered as `Zhang San`, `Zhang`, or `San`
- Traditional Chinese server: Email-based, e.g. `ab****01@gmail.com`. Entering the plain-text portion without asterisks is recommended, e.g. `01@gmail`
@@ -11,26 +11,32 @@ Open the Recruitment tag interface and click Start Recognition to initiate.
If you have previously run Operator Recognition, potential data will be displayed after the recognized operator's name.
## Operator Recognition (Beta)
## Operator Recognition
Can recognize lists of both owned and unowned operators, and identify potential levels to provide data for Recruitment Recognition.
## Depot Recognition (Beta)
Currently supports the following export formats:
- Clipboard
- JSON
- Markdown table
- CSV table
## Depot Recognition
Supports automatically entering the depot from the main page. If automatic navigation fails, please manually switch to the `Upgrade Materials` screen and **scroll all the way to the left** before starting the function.
Currently supports exporting to [Penguin Statistics Planner](https://penguin-stats.io/planner), [Arknights Toolbox](https://arkntools.app/#/material), and [Arknights | Planner](https://ark-nights.com/settings).
If you are the administrator of a data site, we welcome you to contact us to adapt your site's material JSON protocol!
More useful features may be added in the future. (Teaser)
## Task Video Recognition (Alpha)
Can recognize strategy videos and automatically generate operation files. Simply drag video files into the Auto Combat page to start.
Requires 16:9 aspect ratio with 720p or higher resolution, with no black borders, emulator frames, notched screen adaptations, or other interfering elements.
## Gacha
::: center
@@ -48,3 +54,15 @@ Want to see the world through MAA's eyes? Now you can!
MAA will attempt to take screenshots of the emulator at the target frame rate and display them in real-time in the window.
When the screenshot speed is significantly slower than the target frame rate, MAA will automatically reduce the target frame rate to match the screenshot speed. ~~Can be used as a stress test~~
## Mini Game
Used to automatically farm mini-games in events. Supports selecting names and switching between permanent and current limited-time activities in settings.
Built-in features include:
- Event shop exchange
- Green ticket shop exchange
- Yellow ticket shop exchange
- Reclamation Algorithm shop exchange
- Secret Front (supports selecting endings and event branches)
1. **Pickup Dropped Coppers**: After battle ends, if copper drop selection interface appears, MAA will select the copper with highest `pickup_priority`
2. **Exchange Wallet Coppers**: When a newly picked copper needs to be exchanged with coppers in the wallet:
@@ -64,6 +64,8 @@ Only supports switching to already logged-in accounts, using login name for iden
Official server: `123****4567`, can input `123****4567`, `4567`, `123`, or `3****4567`
<br>
Bilibili server: `Zhang San`, can input `Zhang San`, `Zhang`, or `San`
<br>
Traditional Chinese server: Email-based, e.g. `ab****01@gmail.com`. Entering the plain-text portion without asterisks is recommended, e.g. `01@gmail`
:::
::::
@@ -118,7 +120,7 @@ Whether to enable this task.
Stage name, by default empty, recognizes current/last stage. Editing in run-time is not supported.
Currently supported stages for navigation include:
- All mainline stages. You can add `-NORMAL` or `-HARD` at the end of the stage to switch between standard or challenge mode.
- All mainline stages. You can add `-NORMAL` or `-HARD` at the end of the stage to switch difficulty: Chapters 10-14 map to Standard/Adverse, while Chapters 15+ map to Normal/Raid.
- For LMD and Battle Record stages 5/6, must input `CE-6` / `LS-6`. MAA will automatically switch to stage 5 if stage 6 cannot be delegated.
- Skill Summary, Voucher, and Carbon stage 5, must input `CA-5` / `AP-5` / `SK-5`.
- All chip stages. Must input complete stage code, e.g. `PR-A-1`.
@@ -134,8 +136,11 @@ Currently supported stages for navigation include:
::: field name="medicine" type="number" optional default="0"
Maximum number of Sanity Potions used.
:::
::: field name="expiring_medicine" type="number" optional default="0"
Maximum number of Sanity Potions expiring within 48 hours.
::: field name="medicine_expire_days" type="number" optional default="0"
Use Sanity Potions that expire within the specified number of days. `0` means no expiring potions will be used.
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
Deprecated since v6.8.0, please use `medicine_expire_days` instead.
:::
::: field name="stone" type="number" optional default="0"
Maximum number of Originite Prime used.
@@ -197,7 +202,7 @@ Currently supported stages for navigation include:
"enable":true,
"stage":"1-7",
"medicine":1,
"expiring_medicine":0,
"medicine_expire_days":2,
"stone":0,
"times":10,
"series":0,
@@ -259,7 +264,14 @@ Whether to use Expedited Plans.
Number of expedites, only effective when `expedite` is true. By default unlimited (until `times` limit is reached).
:::
::: field name="skip_robot" type="boolean" optional default="true"
Whether to skip when robot tag is recognized.
Deprecated and kept only for backward compatibility.
<br>
When `preserve_tags` is absent and this value is `true`, MAA skips on `支援机械` only; `元素` is no longer treated as the legacy 1★ tag.
:::
::: field name="preserve_tags" type="array<string>" optional
List of tag names that should preserve the current recruitment slot and skip this recruitment. Default is empty.
<br>
If any specified tag is recognized, MAA will keep that slot untouched and skip the current recruitment.
:::
::: field name="recruitment_time" type="object" optional
Tag ★ rarity (greater than or equal to 3) and corresponding desired recruitment time limit, in minutes, all default to 540 (i.e. 09:00:00).
@@ -911,32 +923,44 @@ Whether to enable this task.
::: field name="enable" type="boolean" optional default="true"
Whether to enable this task.
:::
::: field name="theme" type="string" optional default="Fire"
::: field name="theme" type="string" optional default="Tales"
Theme.
<br>
`Fire` - _Fire Within the Sand_
`Fire` - _Fire Within the Sand_ (Closed)
<br>
`Tales` - _Tales Within the Sand_
<br>
`RelaunchAnchor` - _Relaunch Anchor_
:::
::: field name="mode" type="number" optional default="0"
Mode.
Mode. Supported modes vary by theme:
<br>
`0` - Farm badges & construction pts (exiting the stage immediately).
**Tales:**
<br>
`1` - Fire Within the Sand: Farm Crude Gold (forging Gold at headquarter after purchasing water); Tales Within the Sand: Automatically craft items and load to earn currency.
`0` - No save, farm prosperity points by entering and exiting stages.
<br>
`1` - With save, farm currency by crafting support items.
::: field name="ClientType" type="string" optional
Client channel. Most connection configs do not need this option. Set it before `AsstConnect` / `AsstAsyncConnect` only when the selected `config` uses `[PackageName]` in commands executed during connect. In the built-in configs, only `Androws` and `WSA` currently require it for `displayId` lookup. This does not replace the `client_type` task parameter used by StartUp / CloseDown tasks. Enum value: 6.
これは MAA GUI のダウンロードとインストールに関するドキュメントです。maa-cli のダウンロードとインストールについては、[インストールとコンパイル](./cli/install.md)を参照してください。現在、Android版「MAA-Meow(MAA Android版)」はテスト公開中です。詳細は [MAA-Meow](https://github.com/Aliothmoon/MAA-Meow)をご覧ください。(現在、このソフトウェアのUIは中国語のみサポートしています)
:::
## MAA のダウンロード
MAA では、公式サイトからのダウンロード、パッケージマネージャーからのインストール、グループファイルからのダウンロードなど、複数の方法を提供しています。ご都合に合わせた方法でダウンロードしてください。
### [公式サイト](https://maa.plus)から最新の MAA パッケージをダウンロード
通常、公式サイトでは正しいバージョンとアーキテクチャが自動選択されます。ほとんどの読者にとっては Windows x64 です。macOS ユーザーの方は、macOS ユニバーサル版をダウンロードしてください。
### [Mirror ちゃん](https://mirrorchyan.com/zh/projects?rid=MAA&source=maadocs-install)から最新の MAA パッケージをダウンロード
システムアーキテクチャを確認し、対応するパッケージをダウンロードしてください。ほとんどの Windows ユーザーにとっては Windows x64 です。Mac ユーザーの場合、Mirrorちゃんはユニバーサルパッケージを提供していないため、お使いのチップアーキテクチャ(arm/x86)を確認して対応するパッケージをダウンロードしてください。
### [GitHub Releases](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)から最新の MAA パッケージをダウンロード
システムアーキテクチャを確認し、対応するパッケージをダウンロードしてください。ほとんどの Windows ユーザーにとっては `MAA-<バージョン番号>-win-x64.zip` です。macOS ユーザーの方は `MAA-<バージョン番号>-macos-universal.dmg` を選択してください。
## Linux およびその他のオペレーティングシステム
MAA GUI は**現時点では** Linux やその他のオペレーティングシステムをサポートしていません。これらのシステムで MAA の機能を使用するには、**maa-cli** を利用できます。詳細は、maa-cli の [インストールとコンパイル](./cli/install.md)を参照してください。
1.`C:\` や `C:\Program Files\` など UAC 権限が必要なパスに MAA を解凍しないでください。
2. MAA には .NET ランタイムが内蔵されています(自己完結型デプロイ)。ただし、Visual C++ Redistributable x64(VCRedist x64)が必要です。解凍したMAAディレクトリ内で、管理者権限で `DependencySetup_依赖库安装.bat` を実行し、この依存関係をインストールしてください。インストール完了後、`MAA.exe` を実行してください。
詳細は[よくある質問](./faq.md)のトップを参照してください。
:::
`MAA.exe`をダブルクリックすると、MAAが起動します。
::: tip
Windows パッケージマネージャー(Winget)を使用してインストールした場合、解凍やランタイムのインストールなどの追加操作なしで、コマンドラインに `maa` と入力するだけで MAA を起動できます。ただし、PATHに `maa-cli` が存在する場合、それらを区別するために追加の手順が必要になることがあります。
インストールが完了したら、[初心者向けガイド](./newbie.md)に戻って設定を続行するか、[機能紹介](./introduction/)で MAA がサポートするさまざまな機能を確認してください。インストール中に問題が発生した場合は、[よくある質問](./faq.md)を参照して解決を試みてください。
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.