Compare commits

...

870 Commits

Author SHA1 Message Date
MistEO
b1f017dcc9 ci: bot agent use secret 2026-06-30 22:28:56 +08:00
MistEO
b9fa7ca008 ci: bot agent use secrets 2026-06-30 22:28:14 +08:00
github-actions[bot]
d41c370110 chore: Auto Update Game Resources - 2026-06-30
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28439907321

[skip changelog]
2026-06-30 11:10:47 +00:00
uye
7311dab428 fix: 修复未开启系统通知时进行系统通知检查 2026-06-30 12:58:47 +08:00
github-actions[bot]
55668face3 chore: Auto Update Game Resources - 2026-06-29
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28395806977

[skip changelog]
2026-06-29 19:02:38 +00:00
uye
031e99c295 feat: 增加自动下载更新包提示文本 2026-06-29 14:46:42 +08:00
uye
84b560d3cd feat: 新增隐藏更新进度提示框选项 2026-06-29 14:37:02 +08:00
MistEO
ac9dbff483 ci: 强调要读skills 2026-06-29 12:15:19 +08:00
Constrat
b926a838c2 chore: revert discord notification embed color 2026-06-28 16:56:53 +02:00
uye
d9e8ec97ee Release v6.13.0 (#17210)
## 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>
2026-06-28 21:25:15 +08:00
uye
d92fa39e88 docs: update skill and changelog 2026-06-28 21:24:19 +08:00
MistEO
30477505e8 ci: AI changelog generation with auto PR creation (#17214)
* ci: AI changelog generation with auto PR creation

Co-authored-by: Cursor <cursoragent@cursor.com>

* ci: force write CHANGELOG.md from AI output

Co-authored-by: Cursor <cursoragent@cursor.com>

* ci: add warning when changelog has no diff

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:42:57 +08:00
MistEO
0fc8263854 chore: switch AI issue analysis to unified main branch
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 13:36:13 +08:00
dependabot[bot]
ff7306775b ci: bump actions/cache from 5 to 6 in /.github/workflows in the github-actions group (#17207)
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 13:24:55 +08:00
uye
8af85aa4ec docs: changelog 2026-06-28 10:09:07 +08:00
github-actions[bot]
2bf335d35d feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28303359795
[skip changelog]
2026-06-27 22:12:56 +00:00
MistEO
18d764643a chore: switch AI issue analysis from Codex to Claude
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 00:22:42 +08:00
Constrat
62f456dc5a style: update discord release notification 2026-06-27 12:03:59 +02:00
Constrat
ca19cb1af1 fix: discord release link for linux x86_64 2026-06-27 10:06:59 +02:00
uye
58e3d06b27 Release v6.13.0-beta.3 (#17203)
## 由 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>
2026-06-27 13:53:51 +08:00
Aliothmoon
72c68bd1e0 chore: 补点注释 (#17205) 2026-06-27 13:53:32 +08:00
uye
19e6e1d70b fix. 复制任务时保留原任务的启用状态 2026-06-27 13:36:27 +08:00
uye
2cad3baf92 docs: changelog 2026-06-27 13:28:12 +08:00
uye
5d5b66a1ef ai: 优化 changelog skill,changelog 生成改用 ai 生成 2026-06-27 13:28:03 +08:00
uye
cdbf31debb feat: 增加 DWM 被禁用与重复拖动解决方案提示 2026-06-27 12:37:39 +08:00
github-actions[bot]
0239409ef4 chore: Auto Update Game Resources - 2026-06-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28232398301

[skip changelog]
2026-06-26 10:29:16 +00:00
github-actions[bot]
8927eb7a15 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28203974590
[skip changelog]
2026-06-25 22:17:06 +00:00
github-actions[bot]
b81e1d49b5 chore: Auto Update Game Resources - 2026-06-25
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28157219377

[skip changelog]
2026-06-25 08:29:20 +00:00
uye
7a92d322d8 refactor: 移动 TextDialogWithTimerUserControl 到 Dialogs 文件夹并统一命名
- 将 TextDialogWithTimerUserControl 从 Views/UserControl/ 移至 Views/Dialogs/,重命名为 TextWithTimerDialogView
- 将 TextDialogUserControl 重命名为 TextDialogView,统一 Dialogs 文件夹内的 *DialogView 命名约定
- 同步更新命名空间、x:Class、copyright 注释及 TaskQueueViewModel 中的引用
2026-06-25 15:43:38 +08:00
uye
a36947a8ec chore: 喝酒堂堂复活 2026-06-25 14:13:38 +08:00
uye
eb318012c4 feat: 无痛喝酒 2026-06-25 14:11:46 +08:00
uye
d17249649e feat: 不重启切换语言 (#17183)
* feat: 不重启切换语言

* feat: 部分文本与列表更新

* feat: 右键图标菜单、关卡提示、牛杂、关卡列表、指定材料

* chore: Stage 刷新

* feat: LocalizedList

* chore: SettingsViewModel

* chore: ConnectSettingsUserControlModel

* chore: GameSettingsUserControlModel

* chore: VersionUpdateSettingsUserControlModel

* chore: InfrastSettingsUserControlModel

* chore: RecruitSettingsUserControlModel

* chore: RoguelikeSettingsUserControlModel

* chore: UserDataUpdateSettingsUserControlModel

* chore: LastSyncTime

* chore: 设置指引重叠

* chore: PerformanceUserControlModel

* chore: GPU 绑定

* chore: FightSettingsUserControlModel

* chore: GuiSettingsUserControlModel

* style: FightSettingsUserControlModel

* chore: ReclamationSettingsUserControlModel

* feat: 干员识别/仓库识别 支持动态切换语言

* feat: 干员名称显示语言

* perf: 优化 IsLocalizationDictionary 判断

* style: 空行

* chore: UnInitializePropertyDependencies / GC.SuppressFinalize(this);

* chore: PropertyDependsOnUtility 增加锁

* chore: 移除未使用 using

* chore: 更新时序

* chore: 在 UI 线程 Reload

* fix: OperNameLanguageModeList 去重

* chore: LocalizedList -> LocalizedObservableList

* fix: 修复 TaskItemViewModel.Name 绕过 _name 字段导致 SetAndNotify 变更检测失效

getter 改为复用 BaseTask.NameOrTaskType(与原构造参数语义一致),
移除已成为死代码的 _name 字段;setter 写配置后显式 NotifyOfPropertyChange,
确保外部重命名后 UI 能收到通知。

* fix: UnInitializePropertyDependencies 清理孤儿外部实例避免处理器累积

当某 externalInstance 的 propMap 完全清空后,移除该键并反订阅其
externalHandler,避免 TaskItemViewModel 反复创建/销毁时 _externalHandlers
外壳持续累积(虽不产生错误通知,但持有空字典浪费内存)。

* rft: 提取 RefreshInverseModeText 消除 InverseMode 自赋值 hack

原 LanguageChanged 回调用 InverseMode = InverseMode 触发 setter 内的
本地化文本刷新,依赖 SetAndNotify 不 early-return 的副作用,语义脆弱。
提取 RefreshInverseModeText() 方法供 setter 和回调共用。

* rft: UseStoneString 改用 SuppressMessage 替代 #pragma

将 #pragma warning disable CA1822 改为 [SuppressMessage],
并补充 Justification 说明必须保持实例成员以支持 PropertyDependsOn 反射触发通知。

* docs: 补充 LanguageChanged 订阅单例约定注释

在 LanguageChanged 事件声明处补充订阅约定(必须是 IoC 单例,
非单例需 Dispose 时清理跨实例依赖);在 ToolboxViewModel(Stylet IoC 单例)
订阅处标注无需取消订阅。

* rft: 删除 TaskItemViewModel 构造函数的 name 参数

Name getter 已改为从配置动态读取 NameOrTaskType,构造时传入的 name
不再有任何作用,删除该参数及三处调用点的实参。

* chore: 简化绑定

* fix: 修复语言切换时 PropertyDependsOn 回调读到旧字典的时序竞态

原先 Language setter 里先 SetAndNotify 再 Reload,导致同步通知链中
PropertyDependsOn(Language) 回调执行时 ResourceDictionary 尚未替换,
LocalizationHelper.GetString 拿到的是旧语言文本。

调整为先 Reload(内部先替换字典再触发 LanguageChanged),再更新
_language 字段并触发 PropertyChanged,确保两条通知链路
(LanguageChanged 订阅者 + PropertyDependsOn 回调)读到的都是新语言。

* refactor: LocalizedObservableList 内部支持增删,消除 Zip 脱节隐患

将 _entries 从 readonly array 改为可变 List,新增 Add/Remove/RemoveAt/
Insert/Clear 方法同步维护 _entries 与 Items,确保两者始终一一对应。

此前 RefreshLocalization 用 Zip 遍历,对运行时动态添加的项(如
OperNameLanguageForce)不会刷新 Display,需调用方手动补偿。现在动态项
也纳入 _entries,RefreshLocalization 改为索引遍历,覆盖全部条目。

同步修正类头 XML 注释:去掉不实的 INotifyPropertyChanged 声明与
'转发 item 属性变更'描述(item 的 PropertyChanged 由 WPF 直接监听)。

调用方 GuiSettingsUserControlModel 改用 Add/Remove API,移除
RefreshLocalization 里的手动补偿逻辑。

* fix: 任务排序/增删后 Index 变化时自动刷新 Name

TaskItemViewModel.Name 的 getter 依赖 Index 从配置读取,但此前只声明了
对 Language 的跨实例依赖,拖拽排序/增删任务导致 Index 变化时 Name 不会被
通知刷新,自定义名任务可能短暂显示错位。

将 PropertyDependsOnAttribute 的 AllowMultiple 改为 true,为 Name 额外声明
[PropertyDependsOn(nameof(Index))],使 Index 变化时自动触发 Name 刷新。
Utility 的 GetCustomAttributes 循环已原生支持多 attribute,无需改动。

* chore: 图标 Unloaded 时取消 LanguageChanged 订阅

* fix: Pormpt1/Pormpt2 小提示刷新
2026-06-25 13:14:55 +08:00
uye
d31ca81e83 feat: 常驻关卡备选提示 2026-06-25 10:56:18 +08:00
github-actions[bot]
5bfbd22215 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28130848588
[skip changelog]
2026-06-24 21:31:18 +00:00
github-actions[bot]
9ab5912a4b chore: Auto Update Game Resources - 2026-06-24
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28126992299

[skip changelog]
2026-06-24 20:20:15 +00:00
Manicsteiner
382f10a58c chore: JP episide new navigation and JieGarden theme recruit 2026-06-24 23:56:21 +08:00
Constrat
295f2073bd chore: EN preload lone trail + fix JieGarden themes 2026-06-24 14:42:17 +02:00
Constrat
821d5fc425 fix: EnterEpisodeNew-Click EN 2026-06-24 14:00:43 +02:00
HX3N
1676cb7de4 chore: KR remove deprecated EnterEpisodeNew 2026-06-24 20:33:55 +09:00
Aliothmoon
efb3c7a567 fix: 部分设备界园树洞是非境识别错误 (#17181) 2026-06-24 10:58:48 +08:00
Aliothmoon
418a4aa0e0 fix: ncnn 对齐 fastdeploy 的 det 缩放与 rec 预处理 (#17182)
* fix: 对齐 OcrPackNcnn det 缩放算法与 fastdeploy

- 小 ROI 下 ceil 直接就爆了,识别会出现问题

* fix: ncnn 对齐 fastdeploy de1通道序/打分/裁剪

* fix: OcrPackNcnn det 无框兜底走整图 rec,尺寸过滤对齐 fastdeploy
2026-06-24 10:58:22 +08:00
uye
cab1ca8cca chore: dlc 还是放后面,毕竟钥匙扣已经这么做了)
[skip changelog]
2026-06-23 15:52:33 +08:00
Manicsteiner
130164e925 chore: JP ocr edits 2026-06-23 13:24:42 +08:00
uye
85024b6141 rft: 优化成就 DLC 标识显示效果与提示,增加对应 DLC 上线时间提示 2026-06-23 12:24:02 +08:00
github-actions[bot]
aa47abfacb chore: Auto Templates Optimization
Triggered by fa8d0f8344

[skip changelog]
2026-06-23 02:04:54 +00:00
Manicsteiner
fa8d0f8344 chore: JP LoneTrail theme and JieGarden theme update (#17175)
主题预载
界园主题突然大改了一遍,其他几个免费主题好像没问题,付费主题等issue和贴图()
2026-06-23 10:04:32 +08:00
HX3N
95a3fa6236 fix: expanded KR training roi for wrapped names 2026-06-23 10:49:39 +09:00
github-actions[bot]
cf61b5b6e4 chore: Auto Templates Optimization
Triggered by 20056e52b9

[skip changelog]
2026-06-22 23:41:02 +00:00
HX3N
20056e52b9 chore: KR LoneTrail theme 2026-06-23 08:07:32 +09:00
HX3N
746daa27cf chore: KR ocr edits 2026-06-23 08:07:31 +09:00
Constrat
c3dffe9929 fix: future alter operators EN 2026-06-22 18:34:10 +02:00
github-actions[bot]
94e0addc9a chore: Auto Update Game Resources - 2026-06-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27953171369

[skip changelog]
2026-06-22 12:38:44 +00:00
github-actions[bot]
1083ee342e chore: Auto Update Game Resources - 2026-06-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27933177568

[skip changelog]
2026-06-22 06:11:46 +00:00
uye
f9dbbb36b9 Release v6.13.0-beta.2 (#17170)
## 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>
2026-06-22 12:36:59 +08:00
uye
1c4aba28fd docs: Bump version to v6.13.0-beta.2 in CHANGELOG
Updated changelog to reflect version bump to v6.13.0-beta.2 and added fix details.
2026-06-22 12:34:42 +08:00
status102
ba47dd16cf fix: 猪猪 2026-06-22 12:24:31 +08:00
uye
db6bb9c4e6 Release v6.13.0-beta.1 (#17131)
## Summary by Sourcery

为 v6.13.0-beta.1 做准备,加入基于 Android NCNN 的 OCR、Webhook 预设模板,以及多项稳定性与 CI
改进。

New Features:
- 为 Android 构建引入基于 NCNN 的 OCR 实现,同时在其他平台继续使用 FastDeploy OCR。
- 在外部通知设置中新增可选择的 Webhook 预设模板,包括 MeoW 预设。
- 支持「仅配置」的 6 星自动公招确认,并固定公招时间为 9:00。

Bug Fixes:
- 确保 Maa API 更新检查能够遵循全局更新代理配置。
- 修复任务停止与 UI 重置逻辑,避免竞争条件,并确保超时能强制恢复 UI。
- 当在连接过程中已发出停止请求时,阻止协助器(copilot)继续启动。
- 当 Windows 无法显示系统 Toast 通知时,避免显示应用内 Toast 日志,而是改用 Growl 作为回退方案。

Enhancements:
- 重构 OCR 包实现,在其背后使用 pimpl 隔离平台相关的后端实现。
- 调整多协助器导航重试逻辑,更好地尊重已配置的重试次数。
- 改进手动停止行为,将 Core 停止处理和任务结束脚本集中到统一逻辑中。
- 在 Toast 通知失败的情况下,始终使用 Growl 显示失败消息,而不是写入任务日志。
- 刷新明日方舟的关卡方块、关卡、肉鸽和任务元数据资源,以支持最新活动。
- 收紧公招时间处理,将 5 星 / 6 星公招时间固定为 9:00,并打通序列化和工具箱相关逻辑。
- 更新 MaaDeps 下载脚本以拉取 v2.13.1,并使依赖安装脚本路径与当前目录结构保持一致。

Build:
- 在 MaaCore 的 CMake 中拆分 OCR 实现选择:桌面端使用 FastDeploy,Android 使用
NCNN,并相应调整链接依赖。
- 将 Avalonia CI 触发条件限制为相关源码与构建文件,并将默认推送分支切换为 dev-v2。

CI:
- 将各工作流中对 actions/checkout 的使用升级到 v7。
- 在资源同步与模板优化工作流中,将 ad-m/github-push-action 固定到 v1.3.0。
- 将 softprops/action-gh-release 升级到 v3.0.1,用于发布 GitHub Release。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.13.0-beta.1 by adding Android NCNN-based OCR, webhook preset
templates, and various stability and CI improvements.

New Features:
- Introduce NCNN-based OCR implementation for Android builds while
keeping FastDeploy OCR for other platforms.
- Add selectable preset webhook templates, including a MeoW preset, in
external notification settings.
- Support configuration-only 6-star auto-recruit confirmation with fixed
9:00 recruit time.

Bug Fixes:
- Ensure Maa API update checks respect the global update proxy
configuration.
- Fix task stopping and UI reset logic to avoid race conditions and
ensure timeouts force UI recovery.
- Prevent copilot start from proceeding if a stop request was issued
during connection.
- Avoid showing in-app toast logs when Windows toast notifications are
unavailable, instead using Growl fallback.

Enhancements:
- Refactor OCR pack implementation behind a pimpl to separate
platform-specific backends.
- Adjust multi-copilot navigation retry logic to better respect
configured retry counts.
- Improve manual stop behavior to centralize Core stop handling and
end-of-task scripts.
- Always use Growl for toast notification failure messages instead of
task log entries.
- Refresh Arknights tile, stage, roguelike, and task metadata resources
for new events.
- Tighten recruit time handling by fixing 5-star/6-star recruit times to
9:00 and wiring them through serialization and toolbox.
- Update MaaDeps downloader script to pull v2.13.1 and align dependency
setup script paths with current layout.

Build:
- Split OCR implementation selection in MaaCore CMake to use FastDeploy
on desktop and NCNN on Android, adjusting link dependencies accordingly.
- Restrict Avalonia CI triggers to relevant source and build files and
switch its default push branch to dev-v2.

CI:
- Upgrade actions/checkout usage across workflows to v7.
- Pin ad-m/github-push-action to v1.3.0 in resource sync and template
optimization workflows.
- Bump softprops/action-gh-release to v3.0.1 for GitHub release
publishing.

</details>

新功能:
- 为外部通知配置引入内置 webhook 预设模板,包括 MeoW 预设。
- 在外部通知设置界面中开放预设 webhook 的选择,并提供本地化显示名称。

错误修复:
- 在通过 Maa API 检查更新时,使用全局更新代理配置。

优化改进:
- 刷新《明日方舟》的地块位置、关卡、肉鸽和任务元数据资源,并提升资源版本以适配新一批活动。

CI:
- 更新 GitHub workflow,使用 `ad-m/github-push-action` v1.3.0 进行自动推送。

日常维护:
- 调整依赖安装批处理脚本的路径/名称,以与当前工具布局保持一致。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

为 v6.13.0-beta.1 做准备,加入基于 Android NCNN 的 OCR、Webhook 预设模板,以及多项稳定性与 CI
改进。

New Features:
- 为 Android 构建引入基于 NCNN 的 OCR 实现,同时在其他平台继续使用 FastDeploy OCR。
- 在外部通知设置中新增可选择的 Webhook 预设模板,包括 MeoW 预设。
- 支持「仅配置」的 6 星自动公招确认,并固定公招时间为 9:00。

Bug Fixes:
- 确保 Maa API 更新检查能够遵循全局更新代理配置。
- 修复任务停止与 UI 重置逻辑,避免竞争条件,并确保超时能强制恢复 UI。
- 当在连接过程中已发出停止请求时,阻止协助器(copilot)继续启动。
- 当 Windows 无法显示系统 Toast 通知时,避免显示应用内 Toast 日志,而是改用 Growl 作为回退方案。

Enhancements:
- 重构 OCR 包实现,在其背后使用 pimpl 隔离平台相关的后端实现。
- 调整多协助器导航重试逻辑,更好地尊重已配置的重试次数。
- 改进手动停止行为,将 Core 停止处理和任务结束脚本集中到统一逻辑中。
- 在 Toast 通知失败的情况下,始终使用 Growl 显示失败消息,而不是写入任务日志。
- 刷新明日方舟的关卡方块、关卡、肉鸽和任务元数据资源,以支持最新活动。
- 收紧公招时间处理,将 5 星 / 6 星公招时间固定为 9:00,并打通序列化和工具箱相关逻辑。
- 更新 MaaDeps 下载脚本以拉取 v2.13.1,并使依赖安装脚本路径与当前目录结构保持一致。

Build:
- 在 MaaCore 的 CMake 中拆分 OCR 实现选择:桌面端使用 FastDeploy,Android 使用
NCNN,并相应调整链接依赖。
- 将 Avalonia CI 触发条件限制为相关源码与构建文件,并将默认推送分支切换为 dev-v2。

CI:
- 将各工作流中对 actions/checkout 的使用升级到 v7。
- 在资源同步与模板优化工作流中,将 ad-m/github-push-action 固定到 v1.3.0。
- 将 softprops/action-gh-release 升级到 v3.0.1,用于发布 GitHub Release。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.13.0-beta.1 by adding Android NCNN-based OCR, webhook preset
templates, and various stability and CI improvements.

New Features:
- Introduce NCNN-based OCR implementation for Android builds while
keeping FastDeploy OCR for other platforms.
- Add selectable preset webhook templates, including a MeoW preset, in
external notification settings.
- Support configuration-only 6-star auto-recruit confirmation with fixed
9:00 recruit time.

Bug Fixes:
- Ensure Maa API update checks respect the global update proxy
configuration.
- Fix task stopping and UI reset logic to avoid race conditions and
ensure timeouts force UI recovery.
- Prevent copilot start from proceeding if a stop request was issued
during connection.
- Avoid showing in-app toast logs when Windows toast notifications are
unavailable, instead using Growl fallback.

Enhancements:
- Refactor OCR pack implementation behind a pimpl to separate
platform-specific backends.
- Adjust multi-copilot navigation retry logic to better respect
configured retry counts.
- Improve manual stop behavior to centralize Core stop handling and
end-of-task scripts.
- Always use Growl for toast notification failure messages instead of
task log entries.
- Refresh Arknights tile, stage, roguelike, and task metadata resources
for new events.
- Tighten recruit time handling by fixing 5-star/6-star recruit times to
9:00 and wiring them through serialization and toolbox.
- Update MaaDeps downloader script to pull v2.13.1 and align dependency
setup script paths with current layout.

Build:
- Split OCR implementation selection in MaaCore CMake to use FastDeploy
on desktop and NCNN on Android, adjusting link dependencies accordingly.
- Restrict Avalonia CI triggers to relevant source and build files and
switch its default push branch to dev-v2.

CI:
- Upgrade actions/checkout usage across workflows to v7.
- Pin ad-m/github-push-action to v1.3.0 in resource sync and template
optimization workflows.
- Bump softprops/action-gh-release to v3.0.1 for GitHub release
publishing.

</details>

</details>
2026-06-21 17:07:07 +08:00
uye
349a0bf730 docs: changelog 2026-06-21 16:47:41 +08:00
uye
e2400684bb chore: 通知不可用时记录日志 2026-06-21 16:46:15 +08:00
uye
6cec1e9ced chore: 移除未使用变量 2026-06-21 16:18:38 +08:00
uye
d821607983 chore: copilot stop 改为 Task 2026-06-21 16:18:37 +08:00
Status102
8f860635aa fix: 错误短路 2026-06-21 16:05:40 +08:00
uye
222c853263 rft: 无法显示系统通知时回退到软件内通知,启动时日志中的通知不可用提示改为 growl 提示 (#17165) 2026-06-21 15:43:34 +08:00
dependabot[bot]
8276849f1a ci:将 /.github/workflows 中的 github-actions 组更新 2 次 (#17163)
Bumps the github-actions group in /.github/workflows with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

Updates `softprops/action-gh-release` from 3.0.0 to 3.0.1
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-20 23:08:27 +08:00
uye
f24c0e237a feat: 新增可通过手动修改配置文件开启 6 星自动公招,将是否招募和招募时间选项移入常规设置 (#17154) 2026-06-20 16:46:05 +08:00
Halo
e04e656f45 修复MAAUnified CI 选错ref的问题 (#17143)
* ci: checkout PR head for MAAUnified debug builds

* fix(Avalonia): 删除倒反天罡的对主仓CI的相关测试
2026-06-19 17:22:15 +08:00
uye
9104f1a06a chore: 调整日志超时提示 2026-06-19 17:08:36 +08:00
github-actions[bot]
9344e38fec chore: Auto Templates Optimization
Triggered by d2cb0fd435

[skip changelog]
2026-06-19 05:59:02 +00:00
HX3N
d2cb0fd435 chore: YostarKR crop JieGarden@Roguelike@StartAction.png to improve match score 2026-06-19 14:55:29 +09:00
HX3N
645b86babd fix: YostarKR correct ClickChapterNewDefaultProgress roi
Yostar changed the UI layout
2026-06-19 13:57:58 +09:00
github-actions[bot]
70a3a5a6eb feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27723628023
[skip changelog]
2026-06-17 22:24:57 +00:00
github-actions[bot]
6b7ec43006 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27721405857
[skip changelog]
2026-06-17 21:41:25 +00:00
github-actions[bot]
3578c255be chore: Auto Update Game Resources - 2026-06-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27710873810

[skip changelog]
2026-06-17 18:29:27 +00:00
status102
0d66797b34 fix: 漏了 2026-06-17 18:21:06 +08:00
Aliothmoon
9097d4e1c1 feat: Android OCR 推理使用 NCNN (#17133) 2026-06-17 16:56:03 +08:00
uye
0f4497da86 rft: 统一停止逻辑 (#17087)
* rft: 统一停止逻辑

* chore: 连接时停止脚本
2026-06-17 15:02:24 +08:00
Manicsteiner
ded0682bcc chore: Yostar SSS#10 极寒 (#17137) 2026-06-17 14:58:52 +08:00
Manicsteiner
8c560b8bc6 ci: 优化Avalonia构建工作流触发条件 (#17139)
- push 触发改为 dev-v2 分支。
 - 不再在仅有 resources 更改时触发。
 - 新增该文件本身和cmake、3rdparty触发条件,不再在仅md文件更改时触发,与 ci.yml 保持一致。

~另外这玩意失败概率有点高啊~

## 由 Sourcery 提供的摘要

调整 Avalonia CI 工作流的触发条件,以更好地匹配相关的源码变更和分支使用情况。

CI:
- 将 Avalonia CI 的 push 触发分支从 `dev` 限制为 `dev-v2`。
- 当仅有 Markdown 或资源文件发生变更时跳过运行;同时确保对工作流文件、CMake、第三方依赖(3rdparty
includes)以及核心源码路径的变更仍会触发构建。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Adjust Avalonia CI workflow triggers to better match relevant source
changes and branch usage.

CI:
- Limit Avalonia CI push triggers to the dev-v2 branch instead of dev.
- Exclude runs when only markdown or resource files change while
ensuring the workflow, CMake, 3rdparty includes, and core source paths
still trigger builds.

</details>
2026-06-17 14:57:42 +08:00
status102
0b281e6ff6 fix: 自动战斗导航retry异常, 跳过作业 2026-06-17 14:24:55 +08:00
github-actions[bot]
9f831564be feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27652374477
[skip changelog]
2026-06-16 22:30:10 +00:00
status102
3b1eb29e20 chore: 怪猎一期复刻 CF-EX-8, CF-S-1 view1参数 2026-06-15 20:11:45 +08:00
status102
41dfee2d92 fix: HandleUpdateFromMaaApi 未能遵循正确的代理设置 2026-06-15 20:09:35 +08:00
uye
a2d1cd93a2 chore: "text": ["苍暮", "山", "地"]
[skip changelog]
2026-06-15 18:27:59 +08:00
github-actions[bot]
7946a61441 chore: Auto Update Game Resources - 2026-06-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27536955354

[skip changelog]
2026-06-15 09:30:35 +00:00
SherkeyXD
110baa4fdf fix: 修正落叶落叶逐火入口OCR文本 2026-06-15 17:30:23 +08:00
uye
b99c07b234 chore: 移除依赖库安装的提权操作 2026-06-15 17:13:45 +08:00
SherkeyXD
f3e8070e1d feat: 添加落叶逐火复刻入口任务 2026-06-15 17:01:50 +08:00
Saratoga-Official
4034bc58e4 fix: 肉鸽战斗结束后招募误入StartExplore
fix #17120
2026-06-15 12:38:20 +08:00
github-actions[bot]
0dde389e34 chore: Auto Update Game Resources - 2026-06-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27521713212

[skip changelog]
2026-06-15 03:12:52 +00:00
Saratoga-Official
3f18299322 fix: 水月大海的遗产和狗眼婆娑事件名识别错误 2026-06-15 11:07:41 +08:00
Saratoga-Official
e47d6a56a3 fix: GetDrop增加LoadingText等待
fix #17118
2026-06-15 10:59:14 +08:00
Saratoga-Official
d74fa22fb6 fix: 修复CloseEvent和CloseCollection同时出现导致的问题
fix #17121
2026-06-15 10:36:12 +08:00
github-actions[bot]
d0fee36c76 chore: Auto Update Game Resources - 2026-06-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27511123959

[skip changelog]
2026-06-14 20:31:01 +00:00
AnnAngela
4af887cd0f ci: Update GitHub push action version comment in workflow (#17124) 2026-06-14 23:08:04 +08:00
dependabot[bot]
043b78e19f ci: bump ad-m/github-push-action from d30dc2d070765d7e509df00c34c5fa2dd636ff74 to 881a6320fdb16eb5318c5054f31c218aec2b324c in /.github/workflows in the github-actions group across 1 directory (#16934)
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-14 23:02:55 +08:00
pboymt
e02f75adea feat: Custom Webhook 新增预置模板功能 (#17081)
* feat: Custom Webhook 新增预置模板功能

为 Custom Webhook 添加预置模板下拉框,内置 MeoW 模板。
选中模板后自动填入 URL/Headers/Body,用户手动替换占位符。

- 新增 WebhookPresetTemplate 模型类及 BuiltInTemplates 静态列表
- 新增预置模板 ComboBox 及 tooltip 提示
- 选中模板时自动填入并持久化 URL/Headers/Body
- 新增 4 条本地化 key(5 种语言)

* fix: 处理 Code Review 反馈

- WebhookPresetTemplate.BuiltInTemplates 改为 IReadOnlyList 防止外部修改
- 切换回自定义时不再清空字段,保留用户已编辑内容

* chore: 移除 MeoW 模板中不需要的 Headers 配置

* feat: 使用尖括号标识用户需替换的占位符,移除多余的 UI 通知

- WebhookPresetTemplate URL 中的 {nickname} 改为 <nickname>,
  以区别于系统自动替换的 {title}/{content}/{time}
- 移除 SelectedPresetTemplateId 中多余的 NotifyOfPropertyChange 调用
  (属性 setter 已通过 SetAndNotify 自动通知 UI 更新)
2026-06-14 20:06:21 +08:00
github-actions[bot]
f6aa5b4797 chore: Auto Update Game Resources - 2026-06-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27496235398

[skip changelog]
2026-06-14 10:40:16 +00:00
HY
578d23e6ae chore: 調整繁中服 "CharsNameOcrReplace" 部分內容 (#17113) 2026-06-14 12:37:27 +02:00
uye
ac38ea9e43 Release v6.12.2 (#17109)
## 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>
2026-06-14 17:27:06 +08:00
uye
5bdf6b9320 docs: changelog 2026-06-14 17:25:25 +08:00
uye
cafc394605 Merge commit from fork
- 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
2026-06-14 13:05:13 +08:00
Saratoga-Official
0d2e18a476 chore: 更新肉鸽招募干员
fix #17094
2026-06-13 15:58:22 +08:00
Saratoga-Official
1dfac534d0 fix: 界园移时换物放弃探索
fix #17055
2026-06-13 14:14:06 +08:00
github-actions[bot]
f7262208f0 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27446261928
[skip changelog]
2026-06-12 22:18:01 +00:00
status102
99167c3298 fix: 水月肉鸽事件DiceConfirm后事件不处理 2026-06-12 19:57:13 +08:00
status102
c5f51f56fe perf: 初始化期TaskQueue滑动宽限 2026-06-12 19:00:43 +08:00
soundofautumn
38527ffe08 build: use vs2026 in publish (#15806)
* build: publish remove Visual Studio 17 2022

* build: test vs2026

* fix: 不小心删多了

* fix: nightly 应该也要改

* fix: 这个好像也得改?
2026-06-12 15:45:24 +08:00
uye
21a8d170d7 chore: 移除未使用的变量 2026-06-12 14:13:39 +08:00
soundofautumn
208d28d6fa feat: MAA updater 增加文件被占用时增加重试、互斥量协调与回滚机制 (#16703)
* feat: updater和maa本体共享一个mutex锁

* feat: updater和maa本体共享一个mutex锁

* feat: 改进MAA updater

* feat: instance key改成mutex name

* fix: unused function
2026-06-12 13:56:32 +08:00
Halo
a73ce8efeb fix: respect timeout while waiting for macOS socket data (#17027)
fix: respect timeout while waiting for POSIX socket data
2026-06-12 01:35:09 +08:00
uye
562ff75c5a chore: 简化 external_renderer_ipc 加载成功的日志 2026-06-12 00:27:03 +08:00
uye
b318e3698f Release v6.12.1 (#17078)
## 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>
2026-06-11 22:14:54 +08:00
uye
edb9b268e7 docs: changelog 2026-06-11 22:12:12 +08:00
status102
263a84831d fix: 自动战斗导航选错关卡无法重选 2026-06-11 21:09:30 +08:00
status102
e44ccffe0e perf: 不再使用不必要的子任务 2026-06-11 21:09:29 +08:00
uye
d900c20b65 chore: 加两个提前返回 2026-06-11 21:02:20 +08:00
status102
d373e3a094 fix: 多作业模式关卡名复核失效 2026-06-11 20:41:04 +08:00
github-actions[bot]
cf370818e0 chore: Auto Update Game Resources - 2026-06-11
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27343798086

[skip changelog]
2026-06-11 11:33:56 +00:00
Rin
018e4ba38f fix: 处理界园事件内通宝交换后的事件结束页 (#16936)
* fix: 处理界园事件内通宝交换后的事件结束页

* fix: 优化事件内放弃通宝的#next
2026-06-11 17:12:30 +08:00
status102
9b51d03415 fix: 有小猪 2026-06-11 13:10:41 +08:00
status102
54d00e741d perf(core): OCRer DEBUG下m_image_draw绘制增加结果文本 2026-06-11 13:08:39 +08:00
uye
ff47c11d99 Release v6.12.0 (#17074)
* Revert "fix: Potential fix for pull request finding"

This reverts commit 588bfb3778.

* Revert "chore: 删除多余验证"

This reverts commit e208a2f94e.

* chore: Auto Update Game Resources - 2026-06-09

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27222080798

[skip changelog]

* fix: build warning

* feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27239478748
[skip changelog]

* chore: 还原牛杂 i18n 实现方式

* chore: 阵地足球开始后增加动画延迟,避免点入编队界面

* chore: 足球需要更多的 325

* chore: 调整部署速度

* chore: Auto Update Game Resources - 2026-06-10

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27265152626

[skip changelog]

* fix(gui): 释放 StartSettings 中未释放的 Process 对象 (#17060)

StartEmulator / RestartAdb / ReconnectByAdb 中 new 出来的 Process 对象在使用后
未被释放,会泄漏进程相关句柄(CA2000)。改为 using 声明,使其在作用域结束时
释放。释放 Process 托管对象只回收本地句柄,不会终止已启动的进程,因此对仿真器
的 fire-and-forget 启动也是安全的。

不改动 catch 兜底里的静态 Process.Start,以及 GetProcesses() 的查询写法。

* chore: OF1把嵯峨换成银灰避免可能打不过

* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器 (#17067)

* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器

感谢 @lingwateryang 在 issue 中给出的详细分析。

* fix(gui): MuMu 12 关闭模拟器改用 control 命令

旧的 `api -v {index} shutdown_player` 已失效。按 @ABA2396 的 review 意见,本 PR
仅将关闭命令替换为 `control -v {index} shutdown`;调用 MuMu 的接口之后模拟器是否
真正退出由 MuMu 负责,不在 MAA 的处理范围内,故不再附加进程确认与强杀等逻辑。

* chore: 繁中服「雪山降臨1101」活動導航 & 「喀蘭貿易技術研發部」小遊戲 (#17073)

* chore: 繁中服「雪山降臨1101」活動導航

* chore: 喀蘭貿易技術研發部 小遊戲

* feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27299220997
[skip changelog]

* chore: Auto Update Game Resources - 2026-06-10

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27300017468

[skip changelog]

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zmjjeff7 <2519416535@qq.com>
Co-authored-by: Saratoga-Official <1819530756@qq.com>
Co-authored-by: HY <45387477+momomochi987@users.noreply.github.com>
2026-06-11 03:42:32 +08:00
uye
ec76f93881 docs: changelog 2026-06-11 03:41:14 +08:00
github-actions[bot]
305b67bbb9 chore: Auto Update Game Resources - 2026-06-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27300017468

[skip changelog]
2026-06-10 19:15:44 +00:00
github-actions[bot]
e23d910fd7 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27299220997
[skip changelog]
2026-06-10 19:01:50 +00:00
HY
880a1987b6 chore: 繁中服「雪山降臨1101」活動導航 & 「喀蘭貿易技術研發部」小遊戲 (#17073)
* chore: 繁中服「雪山降臨1101」活動導航

* chore: 喀蘭貿易技術研發部 小遊戲
2026-06-11 01:25:52 +08:00
Zmjjeff7
f64a0af6c3 fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器 (#17067)
* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器

感谢 @lingwateryang 在 issue 中给出的详细分析。

* fix(gui): MuMu 12 关闭模拟器改用 control 命令

旧的 `api -v {index} shutdown_player` 已失效。按 @ABA2396 的 review 意见,本 PR
仅将关闭命令替换为 `control -v {index} shutdown`;调用 MuMu 的接口之后模拟器是否
真正退出由 MuMu 负责,不在 MAA 的处理范围内,故不再附加进程确认与强杀等逻辑。
2026-06-11 01:14:05 +08:00
Saratoga-Official
28b6264a3c chore: OF1把嵯峨换成银灰避免可能打不过 2026-06-10 22:26:25 +08:00
Zmjjeff7
79a8a9bcca fix(gui): 释放 StartSettings 中未释放的 Process 对象 (#17060)
StartEmulator / RestartAdb / ReconnectByAdb 中 new 出来的 Process 对象在使用后
未被释放,会泄漏进程相关句柄(CA2000)。改为 using 声明,使其在作用域结束时
释放。释放 Process 托管对象只回收本地句柄,不会终止已启动的进程,因此对仿真器
的 fire-and-forget 启动也是安全的。

不改动 catch 兜底里的静态 Process.Start,以及 GetProcesses() 的查询写法。
2026-06-10 20:19:39 +08:00
github-actions[bot]
26011dae85 chore: Auto Update Game Resources - 2026-06-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27265152626

[skip changelog]
2026-06-10 08:58:55 +00:00
uye
be1087846b chore: 调整部署速度 2026-06-10 12:02:42 +08:00
uye
127fed5318 chore: 足球需要更多的 325 2026-06-10 11:59:35 +08:00
uye
3a9e059299 chore: 阵地足球开始后增加动画延迟,避免点入编队界面 2026-06-10 11:53:58 +08:00
uye
11c8170e7b chore: 还原牛杂 i18n 实现方式 2026-06-10 11:11:42 +08:00
github-actions[bot]
88bc6533fa feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27239478748
[skip changelog]
2026-06-09 22:17:52 +00:00
uye
4b50961a75 fix: build warning 2026-06-10 01:37:28 +08:00
github-actions[bot]
7d5648fe1a chore: Auto Update Game Resources - 2026-06-09
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27222080798

[skip changelog]
2026-06-09 17:09:13 +00:00
uye
4245829444 Revert "chore: 删除多余验证"
This reverts commit e208a2f94e.
2026-06-10 00:56:33 +08:00
uye
127e84462e Revert "fix: Potential fix for pull request finding"
This reverts commit 588bfb3778.
2026-06-10 00:56:33 +08:00
uye
15d1848e8e Release v6.12.0-beta.2 (#17054)
## 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>
2026-06-10 00:46:50 +08:00
uye
e2f4762f2c docs: Update CHANGELOG for v6.12.0-beta.2 release 2026-06-10 00:44:23 +08:00
uye
e208a2f94e chore: 删除多余验证 2026-06-10 00:36:35 +08:00
uye
588bfb3778 fix: Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-10 00:35:07 +08:00
uye
614c344def i18n: 小游戏翻译 2026-06-10 00:31:12 +08:00
github-actions[bot]
68f029cf42 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27220085543
[skip changelog]
2026-06-09 16:20:30 +00:00
github-actions[bot]
c7f9646c52 chore: Auto Templates Optimization
Triggered by da7fabd57e

[skip changelog]
2026-06-09 16:16:34 +00:00
uye
da7fabd57e feat: 添加阵地足球锦标赛小游戏 2026-06-10 00:13:27 +08:00
Status102
357823e0d3 fix: ConfigFactory Save锁统一 (#17052)
## 由 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>
2026-06-09 23:42:47 +08:00
Rin
0b3f97dea9 fix: 增加贸易站订单切换重试和产物确认逻辑 (#16954) 2026-06-09 11:25:39 +08:00
github-actions[bot]
605b1518b4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27168308205
[skip changelog]
2026-06-08 21:34:20 +00:00
uye
f3e4313e3a Release v6.12.0-beta.1 (#17029)
## 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>
2026-06-09 02:53:37 +08:00
uye
12f481706e docs: changelog 2026-06-09 02:43:48 +08:00
uye
07c923c894 docs: changelog 2026-06-09 02:32:50 +08:00
uye
204c9498ac fix: 错误隐藏开局分队与开局干员选项 2026-06-09 02:32:50 +08:00
Status102
f3df45bac4 feat: 理智药使用增加使用中的药品信息 (#17034)
- 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>
2026-06-09 02:05:32 +08:00
uye
80aa69e710 docs: changelog 2026-06-09 02:04:19 +08:00
status102
9b951cbabf perf: 优化部分情况下自动战斗导航OCR结果中会出现误识别的前缀 2026-06-09 01:54:04 +08:00
uye
edeaeeba49 feat: 支持 mumu 6.0 截图增强路径 (#16994)
* feat: 支持 mumu 6.0 截图增强路径

* chore: Update src/MaaCore/Controller/MumuExtras.cpp

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* fix: 示例路径

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-06-09 01:52:02 +08:00
status102
5fd74495a2 chore: rename Wpf ProcSubTaskMsg param name 2026-06-09 01:29:52 +08:00
status102
48f98ad413 perf(wpf): DEBUG 环境下Init时TaskQueue状态限制缓解 2026-06-09 01:29:52 +08:00
github-actions[bot]
ee6d2c9867 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27154116231
[skip changelog]
2026-06-08 17:08:54 +00:00
github-actions[bot]
348825ef33 chore: Auto Update Game Resources - 2026-06-08
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27142132661

[skip changelog]
2026-06-08 13:49:39 +00:00
Constrat
0ade8f5c7c chore: revert all changes to remainingcandleflame IS6 EN 2026-06-08 13:44:13 +02:00
MistEO
b18068c846 ci: user MistEO/codex bot (#17040) 2026-06-08 18:16:04 +08:00
Constrat
5ae734461e fix: EN IS6 bosky updated template 2026-06-08 01:06:58 +02:00
status102
e4c6a740c4 perf 2026-06-07 19:55:09 +08:00
Constrat
b281f258cd fix: EN IS6 bosky text size changed 2026-06-07 12:59:39 +02:00
status102
b488aca991 perf: 2026-06-07 18:12:49 +08:00
status102
85ed1fb38b perf: null check 2026-06-07 18:08:35 +08:00
status102
8e3bfe3783 i18n: ai trans 2026-06-07 18:07:41 +08:00
status102
6e1f9e0fce feat: 理智药使用增加使用中的药品信息 2026-06-07 18:03:17 +08:00
HX3N
b461960985 chore: YostarKR winden colorScale for compatibility 2026-06-07 13:38:37 +09:00
github-actions[bot]
2a8c952b24 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27075305432
[skip changelog]
2026-06-06 22:12:57 +00:00
Status102
353c0ec972 fix: 修正特克诺干员名 OCR 误识别 (#17030)
## 问题与修复
issue 日志中,排序重选阶段 OCR 将“特克诺”识别为“持克诺”,导致后续按精确干员名匹配时无法命中。
在全局干员名 OCR 替换表中加入规则,仅将完整识别结果“持克诺”替换为“特克诺”。

```
15912:[2026-06-06 11:07:15.290][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 褐果, rect: [ 0 (80), 0 (1), 40, 19 ], score: 0.999965 }] by OCR Rec , cost 16 ms
15913:[2026-06-06 11:07:15.290][TRC][Px20248][Tx37564] Proceed [{ text: 褐果, rect: [ 80, 1, 40, 19 ], score: 0.999965 }]
15914:[2026-06-06 11:07:15.290][WRN][Px20248][Tx37564] asst::VisionHelper::correct_rect roi is empty, use whole image
15915:[2026-06-06 11:07:15.307][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 持克诺, rect: [ 0 (60), 0 (1), 60, 19 ], score: 0.881702 }] by OCR Rec , cost 16 ms
15916:[2026-06-06 11:07:15.307][TRC][Px20248][Tx37564] Proceed [{ text: 持克诺, rect: [ 60, 1, 60, 19 ], score: 0.881702 }]
15917:[2026-06-06 11:07:15.307][WRN][Px20248][Tx37564] asst::VisionHelper::correct_rect roi is empty, use whole image
15918:[2026-06-06 11:07:15.354][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 凯尔希思衡托, rect: [ 0 (6), 0 (2), 114, 16 ], score: 0.992512 }] by OCR Rec , cost 45 ms
15919:[2026-06-06 11:07:15.354][TRC][Px20248][Tx37564] Proceed [{ text: 凯尔希·思衡托, rect: [ 6, 2, 114, 16 ], score: 0.992512 }]
```

fixes #17018

## Summary by Sourcery

错误修复:
- 通过在全局替换表中将误识别的“持克诺”映射为“特克诺”,纠正对运营商名称的 OCR 识别。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Correct OCR recognition of the operator name by mapping the misread
form “持克诺” to “特克诺” in the global replacement table.

</details>
2026-06-07 03:26:53 +08:00
ZiyinLin
4e5a234ece fix: 修正特克诺干员名 OCR 误识别 2026-06-07 00:57:00 +08:00
github-actions[bot]
2abb30e373 chore: Auto Update Game Resources - 2026-06-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27067590574

[skip changelog]
2026-06-06 16:28:19 +00:00
uye
0a551b95f9 feat: 切换主题时保存当前画面截图 (#16993)
* feat: 切换主题时保存当前画面截图

* chore: SwitchTheme tasks 定义移到子文件夹中
2026-06-07 00:17:54 +08:00
github-actions[bot]
0b6280483c chore: Auto Templates Optimization
Triggered by 1247e9a308

[skip changelog]
2026-06-05 17:36:16 +00:00
status102
1247e9a308 fix: 绿票商店状态回退错误 2026-06-06 01:35:14 +08:00
status102
0ae5fceb87 fix: 绿票商店2阶段check
Co-authored-by: ZiyinLin <xuanbing1464129430@gmail.com>
2026-06-06 01:35:13 +08:00
github-actions[bot]
8bf6cb5033 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27023843129

[skip changelog]
2026-06-05 15:27:16 +00:00
github-actions[bot]
1fcf16c234 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27012894478

[skip changelog]
2026-06-05 11:45:03 +00:00
github-actions[bot]
64eb36e9e8 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27001805688

[skip changelog]
2026-06-05 07:32:10 +00:00
github-actions[bot]
24ab0f454a chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26997987540

[skip changelog]
2026-06-05 05:50:51 +00:00
github-actions[bot]
4e2ff1eaef feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26982898553
[skip changelog]
2026-06-04 22:17:05 +00:00
github-actions[bot]
84dcbce43e chore: Auto Update Game Resources - 2026-06-04
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26973477754

[skip changelog]
2026-06-04 19:09:08 +00:00
Rbqwow
61d46678c8 docs: README 自动抄作业 --> 自动战斗 2026-06-05 02:28:37 +08:00
uye
b396d0fb8c feat: 统一 SearchBar 样式 2026-06-05 00:30:10 +08:00
Status102
204542620c rft: 肉鸽弹窗类事件处理重构 CloseCollectionClose (#17005)
* rft: 界园 part

* rft: 水月part

修改后未使用: StageEncounterEnter, CloseEvent, DropsFlag; 仅使用了: ChooseOperFlag, Stages
原始
```
"next": [
    "Mizuki@Roguelike@StageEncounterEnter",
    "Mizuki@Roguelike@Stages#next",
    "Mizuki@Roguelike@DropsFlag",
    "Mizuki@Roguelike@CloseEvent",
    "Mizuki@Roguelike@ChooseOperFlag"
]
```

* rft: 萨米part

* rft: 萨卡兹part

* rft: ChooseOper处的CloseCollectionContinue统一调整至上一级的ChooseOperFlag
2026-06-04 18:21:31 +08:00
status102
fa60340ed0 rft: ChooseOper处的CloseCollectionContinue统一调整至上一级的ChooseOperFlag 2026-06-04 17:05:38 +08:00
status102
8971768c33 rft: 萨卡兹part 2026-06-04 16:58:28 +08:00
status102
8610f11890 rft: 萨米part 2026-06-04 16:12:48 +08:00
status102
e4af06ea9c rft: 水月part
修改后未使用: StageEncounterEnter, CloseEvent, DropsFlag; 仅使用了: ChooseOperFlag, Stages
原始
```
"next": [
    "Mizuki@Roguelike@StageEncounterEnter",
    "Mizuki@Roguelike@Stages#next",
    "Mizuki@Roguelike@DropsFlag",
    "Mizuki@Roguelike@CloseEvent",
    "Mizuki@Roguelike@ChooseOperFlag"
]
```
2026-06-04 15:37:10 +08:00
status102
a132f80158 rft: 界园 part 2026-06-04 15:22:49 +08:00
Status102
bba3f3281a rft: 基于灰度阈值预处理的自动战斗导航, 适配H关及怪猎2期 (#16990)
* rft: 基于灰度阈值的自动战斗导航, 适配H关及怪猎2期

* perf: 清理

* fix: replace

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: loule

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-04 09:54:16 +08:00
Status102
4843310bec feat: 悖论模拟支持跳过战斗失败的作业, 自动战斗作业增加对应结构 (#16985)
feat: 悖论模拟支持跳过战斗失败的作业
2026-06-04 09:53:56 +08:00
uye
f31ceb55c9 chore: 自动战斗-视频链接 始终显示
fix #5349
2026-06-04 02:15:32 +08:00
uye
fc89014ab5 feat: 启动设置添加模拟器启动测试按钮,便于测试是否配置成功
fix #10627
2026-06-04 02:02:48 +08:00
Aliothmoon
77612daaeb fix: MaskedCcoeffMatcher 稀疏路径累加器改用 CV_64F 防止大数相减精度损失 (#16983) 2026-06-04 00:54:19 +08:00
Luhan Xiao
e25ee6920e fix: 修复 MaaMacGui changelog 贡献者 mention (#16978)
## 变更内容

修复 MaaMacGui 子仓库 changelog 中贡献者 mention 可能错误的问题。

- associated PR 存在时,优先使用 PR 作者的 `user.login`,并保持 PR title / PR link
逻辑不变。
- 无 associated PR 时,使用 GitHub commit API 的 `author.login` 作为贡献者。
- 无法确认 GitHub login 时,不追加作者 mention。
- 不再使用 git author name / display name / commit author name 生成
`@mention`。
- 不写入主仓库 `contributors` 映射,避免污染主仓库贡献者缓存。
- 过滤空 contributors,避免生成无效 mention。

## 验证

- `python3 -m py_compile
tools/ChangelogGenerator/changelog_generator.py`
- `git diff --cached --check`
- 使用 MaaMacGui 真实历史区间验证:
  - `Add localized strings for relaunch case` 输出 `@ABA2396`
  - `RelaunchAnchor` 输出 `@hguandl`
  - 不再输出 `@uye` / `@hao Guan`
  - PR 记录仍正常输出 `@FireflySentinel` / `@ColdSpellhere`

## Summary by Sourcery

基于 GitHub 元数据而非本地 git 作者信息,改进 MaaMacGui 更新日志中的贡献者提及方式。

Bug 修复:
- 防止空的贡献者账号在生成的更新日志中产生无效的 @提及。
- 确保 MaaMacGui 更新日志使用关联的 PR 作者登录名或提交作者登录名作为贡献者提及,避免错误或缺失的映射。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve MaaMacGui changelog contributor mentions based on GitHub
metadata instead of local git author information.

Bug Fixes:
- Prevent empty contributor handles from producing invalid @mentions in
generated changelogs.
- Ensure MaaMacGui changelog uses the associated PR author login or
commit author login as the contributor mention, avoiding incorrect or
missing mappings.

</details>
2026-06-04 00:17:15 +08:00
Weiyou Wang
64ec267180 fix: 降低 PlayCover 下肉鸽部分任务的模版匹配分数阈值 (#16968)
群友在 PlayCover + EN 服的双重 Debuff 下,卡住了。
~~我总感觉日志和截图有些匹配不上~~,但是问题大概就是这么个问题。
已获得正确的日志文件
[asst.log](https://github.com/user-attachments/files/28484412/asst.log)
与截图。
<img width="1280" height="720" alt="2026 06 01-10 34 43 869_raw"
src="https://github.com/user-attachments/assets/34505f24-d327-4af0-b509-29ceba0e1308"
/>

```
[2026-06-01 10:34:43.205][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | enter
[2026-06-01 10:34:43.255][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | leave, 50 ms
[2026-06-01 10:34:43.280][TRC][Px27484][Tx52497] match_templ | Roguelike@StageTraderInvestCancel.png [opencv] score: 0.789736 rect: [ 580, 484, 89, 20 ] roi: [ 507, 418, 242, 149 ]
[2026-06-01 10:34:43.280][INF][Px27484][Tx52497] {"class":"asst::ProcessTask","cur_task":"JieGarden@Roguelike@StageTraderInvestSystemError","details":{"cur_retry":20,"retry_times":20,"to_be_recognized":["JieGarden@Roguelike@StageTraderInvestCancel"]},"first":["JieGarden@Roguelike@Begin"],"pre_task":"JieGarden@Roguelike@StageTraderInvestConfirm","subtask":"ProcessTask","taskchain":"Roguelike","taskid":40}
[2026-06-01 10:34:43.280][TRC][Px27484][Tx52497] ready to sleep 500
[2026-06-01 10:34:43.783][TRC][Px27484][Tx52497] end of sleep 500
[2026-06-01 10:34:43.783][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | enter
[2026-06-01 10:34:43.828][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | leave, 44 ms
[2026-06-01 10:34:43.855][TRC][Px27484][Tx52497] match_templ | Roguelike@StageTraderInvestCancel.png [opencv] score: 0.789736 rect: [ 580, 484, 89, 20 ] roi: [ 507, 418, 242, 149 ]
[2026-06-01 10:34:43.855][INF][Px27484][Tx52497] Assistant::append_callback | SubTaskError {"class":"asst::ProcessTask","details":{},"first":["JieGarden@Roguelike@Begin"],"pre_task":"JieGarden@Roguelike@StageTraderInvestConfirm","subtask":"ProcessTask","taskchain":"Roguelike","taskid":40,"uuid":"com.hypergryph.arknights"}
```

<img width="761" height="378" alt="image"
src="https://github.com/user-attachments/assets/85f7159b-783e-4bbf-b578-4d3133d2ce6a"
/>

---

顺带,对萨卡兹肉鸽快速刷钱所使用的刷新节点任务的模版匹配阈值也进行了调整。(句子好长,好绕口)
[asst.log](https://github.com/user-attachments/files/28531048/asst.log)

···
[2026-06-02 19:50:45.972][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | enter
[2026-06-02 19:50:46.015][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | leave, 42 ms
[2026-06-02 19:50:46.030][TRC][Px65548][Tx4604] match_templ |
Sarkaz@RoguelikeRouting-RefreshNode.png [opencv] score: 0.741615 rect: [
798, 203, 47, 15 ] roi: [ 796, 130, 50, 170 ]
[2026-06-02 19:50:46.030][INF][Px65548][Tx4604]
{"class":"asst::ProcessTask","cur_task":"","details":{"cur_retry":20,"retry_times":20,"to_be_recognized":["Sarkaz@RoguelikeRouting-RefreshNode"]},"first":["Sarkaz@RoguelikeRouting-RefreshNode"],"pre_task":"","subtask":"ProcessTask","taskchain":"Roguelike","taskid":2}
[2026-06-02 19:50:46.030][TRC][Px65548][Tx4604] ready to sleep 500
[2026-06-02 19:50:46.535][TRC][Px65548][Tx4604] end of sleep 500
[2026-06-02 19:50:46.535][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | enter
[2026-06-02 19:50:46.585][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | leave, 50 ms
[2026-06-02 19:50:46.599][TRC][Px65548][Tx4604] match_templ |
Sarkaz@RoguelikeRouting-RefreshNode.png [opencv] score: 0.741614 rect: [
798, 203, 47, 15 ] roi: [ 796, 130, 50, 170 ]
[2026-06-02 19:50:46.599][INF][Px65548][Tx4604]
Assistant::append_callback | SubTaskError
{"class":"asst::ProcessTask","details":{},"first":["Sarkaz@RoguelikeRouting-RefreshNode"],"pre_task":"","subtask":"ProcessTask","taskchain":"Roguelike","taskid":2,"uuid":"com.hypergryph.arknights"}
···


## Summary by Sourcery

错误修复:
- 降低 iOS 上特定类 Rogue-like 退出投资任务的模板匹配分数阈值,以防止在 PlayCover 环境和英文客户端条件下任务卡住。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Lower template matching score thresholds for specific roguelike
exit-investment tasks on iOS to prevent task stalling under PlayCover
and English client conditions.

</details>
2026-06-04 00:10:47 +08:00
github-actions[bot]
842e6e9637 chore: Auto Update Game Resources - 2026-06-03
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26877559937

[skip changelog]
2026-06-03 10:01:11 +00:00
Status102
9d6e41e74a rft: InvokeProcSubTaskMsg 重构 (#16979)
* rft: InvokeProcSubTaskMsg 重构

* perf: try
2026-06-03 13:39:51 +08:00
github-actions[bot]
2f865c8435 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26851913390
[skip changelog]
2026-06-02 22:31:54 +00:00
Saratoga-Official
83d106220f chore: 补充可露希尔基建数值
fix #16977
2026-06-02 11:24:09 +08:00
github-actions[bot]
c5d4ceb7e4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26784708703
[skip changelog]
2026-06-01 22:03:47 +00:00
晓丶梦丶仁
cd0973cb87 Release v6.11.1 (#16971)
## 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>
2026-06-02 05:31:11 +08:00
uye
ff2bce837d docs: Update CHANGELOG.md for version 6.11.1
Added details for version 6.11.1 improvements.
2026-06-02 05:30:42 +08:00
github-actions[bot]
46153cfe57 docs: Update CHANGELOG top version to v6.11.1 (#16972)
* 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>
2026-06-02 05:20:15 +08:00
uye
f3a2d90472 chore: 延长 TD-Open 延迟 2026-06-02 04:53:53 +08:00
uye
c533a44a9a chore: TDChapterToTD 添加重试 2026-06-02 04:48:47 +08:00
uye
6037746760 Release v6.11.0 (#16963)
## 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>
2026-06-02 03:07:02 +08:00
github-actions[bot]
02d2180092 docs: Auto Update Changelogs of v6.11.0 (#16965)
* docs: Auto Generate Changelog of Release v6.11.0

* docs: changelog

* docs: mac

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-06-02 03:01:30 +08:00
status102
fbf66862b3 perf(wpf): PostAction清空按钮新增仅一次状态同步 2026-06-02 01:43:59 +08:00
uye
4aa5d0c330 Revert "perf: 仅在LinkStart时执行完成后动作, 避免单次运行时触发"
This reverts commit b3801e64ee.
2026-06-02 00:27:06 +08:00
uye
66f2e9e752 chore: 调整吐司通知禁用说明 2026-06-02 00:26:40 +08:00
DavidWang19
067fdab400 feat: 支持 ImageCropper 截取 PC 窗口 (#16969) 2026-06-01 16:51:55 +01:00
SherkeyXD
c277a69110 feat: 界面主题「出猎」 2026-06-01 22:19:04 +08:00
uye
7bca192a21 fix: roi 2026-06-01 21:22:48 +08:00
github-actions[bot]
b2510df2ed feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26757428388
[skip changelog]
2026-06-01 13:19:48 +00:00
Rin
1d46ff16a1 feat: 增加怪猎联动二期 TD-6/7/8 (#16962)
* feat: 增加怪猎联动二期 TD-6/7/8

* chore: revert stage.json

* chore: 移除多余逻辑

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-06-01 21:18:32 +08:00
Aliothmoon
c8d6d99010 chore: update MaaDeps version to v2.11.0 (#16961)
see https://github.com/MaaAssistantArknights/MaaDeps/pull/36
2026-06-01 20:42:37 +08:00
github-actions[bot]
3a4e2ebd53 chore: Auto Update Game Resources - 2026-06-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26750150948

[skip changelog]
2026-06-01 10:46:42 +00:00
status102
d4ce454114 i18n: 修改描述文本 过期关卡重置为 -> 过期活动关卡重置为 以更加符合当前重置范围 2026-06-01 17:50:04 +08:00
status102
90cd87d7f3 perf(wpf): 临期药下拉框显示24h x n 2026-06-01 17:42:57 +08:00
status102
e7151cdf8d rft: 悖论模拟作业列表变量名与实际不符 2026-06-01 17:40:14 +08:00
github-actions[bot]
d0d492b5b3 chore: Auto Templates Optimization
Triggered by 857742dfdc

[skip changelog]
2026-06-01 09:24:06 +00:00
momomochi987
857742dfdc docs: 帳號切換手冊與整合協議補上繁中服說明
- manual/introduction/startup.md:example 區加入繁中服 Email 帳號範例
- protocol/integration.md:account_name 範例區加入繁中服說明
- ko-kr/manual/introduction/startup.md:移除『不支援全球服 (CN만 가능)』
  字樣,並對齊其他語系的條列範例格式
- zh-tw / zh-cn / en-us / ja-jp / ko-kr 五個語系同步更新
2026-06-01 17:17:17 +08:00
momomochi987
9f16ccd95f docs: 更新帳號切換小提示,加入繁中服 Email 帳號說明
- 將支援客戶端清單從『官服、B服』擴充為『官服、B服、繁中服』
- 新增繁中服 Email 帳號的填寫範例,建議使用不含星號的明文片段
- 將原本『不支援登入帳號』改為更精準的『不支援第三方登入方式』
- zh-tw / zh-cn / en-us / ja-jp / ko-kr 五個語系同步更新
2026-06-01 17:11:28 +08:00
momomochi987
c20c103176 feat: GUI 啟動設定支援繁中服顯示帳號名欄位
- StartUpTaskUserControl.xaml:帳號名 TextBox 與『立即切換』按鈕的 Visibility 條件加入 txwy
- StartUpSettingsUserControlModel.cs:序列化時將 Txwy 視為支援帳號切換的客戶端類型
2026-06-01 17:09:47 +08:00
momomochi987
db665d52a9 feat: 繁中服資源補上帳號切換流程與模板
- tasks.json 新增帳號切換相關 task override:
  - LoginOther 加入 AccountManagerTxwy 為候選入口
  - AccountManagerTxwy 設定 ROI (供 template match 使用)
  - Settings 改成直接接 LogoutOCR/Logout,跳過繁中沒有的 UserCenter/ExitOld 中間層
  - LogoutOCR / LogoutConfirm / AccountCurrentOCR / AccountManagerLoginButton /
    AccountManagerListAccount / AccountManagerTrashButton / AccountManager
    依繁中介面位置調整 ROI 與識別文字
  - AccountManager 改用 OCR detect 偵測「帳號管理」,避開原 template 比 ROI 大的問題
  - LogoutConfirm 直接 reuse 既有的 PopupConfirm.png
- 新增 AccountManagerTxwy.png:繁中服帳號管理頁的 GRYPHLINE 標誌特徵塊
2026-06-01 17:09:18 +08:00
momomochi987
9237dddda4 feat: AccountSwitchTask 支援繁中服客戶端
- 在 _run/select_account 將 txwy 視為與 Official 同類,套用 char model OCR
- navigate_to_start_page 認得 AccountManagerTxwy 作為登入頁入口
- SupportedClientType 將 txwy 從註解移到實際列表
2026-06-01 17:08:26 +08:00
Saratoga-Official
22635a7b60 fix: 御龙装置识别 2026-06-01 14:19:30 +08:00
github-actions[bot]
cae85ce6da chore: Auto Update Game Resources - 2026-05-31
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26727125523

[skip changelog]
2026-05-31 23:08:28 +00:00
github-actions[bot]
b1436cb7c7 chore: Auto Update Game Resources - 2026-05-31
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26723878173

[skip changelog]
2026-05-31 20:41:18 +00:00
Rin
9bd27f7968 Revert "fix: 调整基建干员名 OCR 区域" (#16937)
* Revert "fix: 调整基建干员名 OCR 区域 (#16905)"

This reverts commit 89377eba94.

* revert: EN changes no longer needed

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-05-31 22:34:18 +08:00
github-actions[bot]
3ebdd1f03f feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26696235621
[skip changelog]
2026-05-30 22:10:57 +00:00
github-actions[bot]
4496d5c9da chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26695211011
[skip changelog]
2026-05-30 21:21:39 +00:00
Rin
137f7764bd fix: 优化追加自定干员弹窗删除时的布局 (#16921)
* fix: 优化追加自定干员弹窗删除时的布局

* refactor: 统一追加自定干员列表高度配置
2026-05-30 23:53:43 +08:00
github-actions[bot]
6c4527e00d chore: Auto Update Game Resources - 2026-05-30
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26682018364

[skip changelog]
2026-05-30 10:55:40 +00:00
Constrat
127ef87f9c fix: revert OCR changes 2026-05-30 12:37:41 +02:00
status102
b3801e64ee perf: 仅在LinkStart时执行完成后动作, 避免单次运行时触发 2026-05-30 17:51:11 +08:00
Status102
7d6ad3b4c1 rft: 水月萨卡兹肉鸽 关闭next弹窗 (#16918)
* rft: 水月肉鸽 关闭next弹窗

* rft: 萨卡兹part

* perf: 简化模板声明
2026-05-30 17:21:21 +08:00
uye
a10391e9d4 perf: 优化信用商店复核逻辑 (#16932)
* perf: 优化信用商店复核逻辑

* chore: 增加对 OCR 结果为空的处理
2026-05-30 17:12:59 +08:00
github-actions[bot]
5f1869ab46 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26663324632
[skip changelog]
2026-05-29 21:35:11 +00:00
Rin
89377eba94 fix: 调整基建干员名 OCR 区域 (#16905)
- 扩大笑脸锚点派生的干员名识别范围
2026-05-30 01:10:32 +08:00
Rin
4b520aaac9 fix: 修复宿舍自定义干员+信赖补位的bug&外服同步修复&提升代码可读性 (#16659)
* fix: 修复宿舍自定义干员+信赖补位的bug

* chore: EN

* fix: 补充宿舍筛选全部按钮的日韩识别文本

补充日服“全て”和韩服“전부”,用于取消宿舍“未进驻”筛选时点击“全部”选项。

* refactor: improve infrast dorm task readability

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: Roland125 <oroland125@outlook.com>
2026-05-30 00:56:57 +08:00
status102
0f25895c6d feat(wpf): CustomWebhook支持自定义Headers 2026-05-30 00:25:48 +08:00
github-actions[bot]
5681d6a37e chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26603778911
[skip changelog]
2026-05-28 21:39:41 +00:00
uye
23ad7fd301 Release v6.11.0-beta.2 (#16919) 2026-05-29 01:46:14 +08:00
uye
ed817cce19 fix: changelog 猪了 2026-05-29 01:45:36 +08:00
uye
854b9ec9b0 Release v6.11.0-beta.2 (#16916)
## 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>
2026-05-29 01:42:01 +08:00
uye
b3eb6cbbc5 ai: changelog details 增加日期 2026-05-29 01:41:21 +08:00
uye
f4fafde9bf docs: changelog 2026-05-29 01:33:56 +08:00
github-actions[bot]
952c97d9a6 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26589446911

[skip changelog]
2026-05-28 17:00:23 +00:00
Loong
b2fa9a1c3e fix: 显式声明 adb-lite client 对应的 serial (#16853)
## 概述

- 在 `AdbController::connect` 确定目标 address/serial 后,通过
`PlatformIO::set_adb_serial` 显式声明当前 adb 设备。
- NativeIO 默认忽略该调用;AdbLiteIO 使用该 serial 初始化或切换内部 adb-lite client。
- adb-lite 的 `shell`、`exec-out`、`push` 和交互式 shell 只使用已声明的
client,不再从命令路径里隐式初始化 client。
- AdbLiteIO 内部集中校验 client/serial,并用 mutex 覆盖 `m_adb_client` /
`m_adb_serial` 以及对 adb-lite client 的调用,避免 `call_command` 与
`interactive_shell` 并发访问同一状态。

## 背景

#16850 已修复 `adb connect` 被跳过后 adb-lite client 未初始化的问题,并补充了内部锁保护。这个 PR
是后续调整:把 client 初始化入口从命令执行路径挪到连接生命周期中,让状态声明更明确。

## 修复方式

连接阶段已经知道当前 address/serial,所以在设置 connect/release 命令后调用:

```cpp
m_platform_io->set_adb_serial(address);
```

对 NativeIO 来说这是 no-op;对 AdbLiteIO 来说,这是初始化或切换 `adb::client` 的入口。

后续 adb-lite 命令路径通过 `lock_adb_client(serial)` 统一校验命令中的 `-s <serial>` 与当前
client 对应的 serial 一致,并在同一把锁仍然持有时调用 adb-lite client。这样避免在
`interactive_shell` 中隐式写入 client/serial 状态,也避免把 `m_adb_client` 暴露给无锁调用。

`set_adb_serial` 也改为先创建临时 `adb::client`,创建成功后再提交 `m_adb_serial` /
`m_adb_client` 状态;如果创建失败则记录错误并清空 adb-lite client 状态,避免 serial 已切换但
client 仍指向旧对象的不一致状态。

## 验证

- `git diff --check --cached`
- `cmake --build /private/tmp/maa-build-8599-core --parallel 8`
- `cmake --install /private/tmp/maa-build-8599-core --config
RelWithDebInfo`
- 本机 `maa` CLI + Android 35 arm64 AVD:
  - `maa run connect-only -p adb-lite-test --no-summary -vvv`
  - 日志显示 `Loading MaaCore from: /private/tmp/maa-test-data-8599/lib`
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未出现 `adb client not initialized`
  - 未出现 `failed to create adb-lite client`
  - 未出现 `fallback to NativeIO`
2026-05-29 00:46:30 +08:00
uye
5a4c3fe7b4 fix: 修复开启基建退出提醒时无法退出基建
fix #16913
2026-05-29 00:04:39 +08:00
github-actions[bot]
e8a6d8b063 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26584047595

[skip changelog]
2026-05-28 15:22:16 +00:00
uye
6ed2275197 fix: 修复快捷切换在遇到 LoadingText 时无法跳出循环
fix #16910
2026-05-28 23:03:18 +08:00
github-actions[bot]
35a92857d1 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26559057935

[skip changelog]
2026-05-28 06:40:01 +00:00
uye
e6360ac8a8 Release v6.11.0-beta.1 (#16906)
## 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>
2026-05-28 14:07:30 +08:00
uye
046459acee fix: 信用收支卡在商店里 2026-05-28 14:05:56 +08:00
uye
50814459f0 Release v6.11.0-beta.1 (#16895)
## 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>
2026-05-28 13:32:02 +08:00
uye
30925621f2 docs: changelog 2026-05-28 12:15:37 +08:00
Luhan Xiao
1bafad61dd feat(changelog): 记录 MaaMacGui 子仓库更新 (#16870)
* feat(changelog): 记录 MaaMacGui 子仓库更新

* fix(changelog): 修复 MaaMacGui 更新记录解析
2026-05-28 12:09:25 +08:00
H2O_MERO
a752f4b193 feat:为设置添加了搜索支持 (#16833)
* fix:修复了问题 只能在#nullable 注释上下文内的代码中使用可为 null 的引用类型的注释

* chore: Apply suggestion from @sourcery-ai[bot]

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore: 搜索框放到导航栏上方

* chore: UpdateSourceTrigger

* rft: 通过附加属性实现

* rft: 实时遍历可视树,结束搜索时还原展开状态

* perf: 雷霆边框

* chore: 等待界面更新后再搜索

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-05-28 12:08:07 +08:00
uye
c7f83cc154 chore: 删除多余标题 2026-05-28 08:11:18 +08:00
uye
f311cd9bcc ai: 调整 changelog skill 2026-05-28 08:06:35 +08:00
uye
98445b29e9 chore: 公告也改用 MarkdownDataHelper 2026-05-28 08:03:29 +08:00
uye
a9520e2298 feat: 新增 MarkdownDataHelper 2026-05-28 07:56:40 +08:00
github-actions[bot]
fe961feb75 docs: Auto Update Changelogs of v6.11.0-beta.1 (#16898)
* docs: Auto Generate Changelog of Release v6.11.0-beta.1

* docs: 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>
2026-05-28 07:22:03 +08:00
uye
8f8d9bd6b2 i18n: 添加任务复制失败的本地化翻译 2026-05-28 06:56:52 +08:00
uye
1a4512976b docs: 补全 指定天数内的理智药 相关文档 2026-05-28 06:50:20 +08:00
uye
14157a9085 perf: 优化 FightTaskStageResetModeConverter 与 RecruitTaskHoldTagsConverter 嵌套逻辑 2026-05-28 06:41:06 +08:00
uye
1c0f5a985f chore: 调整静态视频路径的绑定 2026-05-28 06:36:07 +08:00
uye
b9cbfaa338 docs: skip_tags -> preserve_tags 2026-05-28 06:30:53 +08:00
uye
3f07db484f chore: 在 OnCustomToolTipChanged 中增加对 PART_Border 为空的防护,以避免在模板应用前出现空引用异常 2026-05-28 06:27:05 +08:00
uye
bf6654eb31 chore: 调整特定平台下的 IsNotificationAvailable 返回 2026-05-28 06:25:44 +08:00
github-actions[bot]
a9025a8c4b feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26541802412
[skip changelog]
2026-05-27 22:12:39 +00:00
github-actions[bot]
3039e41c3f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26540052175
[skip changelog]
2026-05-27 21:35:27 +00:00
github-actions[bot]
49e660f3ea chore: Auto Update Game Resources - 2026-05-27
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26536825404

[skip changelog]
2026-05-27 20:29:04 +00:00
uye
a5a237f53f chore: 改漏了——
[skip changelog]
2026-05-28 03:41:42 +08:00
uye
fa11d62642 chore: 增加基建小房子切换兜底 2026-05-28 03:39:36 +08:00
uye
f64a353c14 fix: 使用小房子转跳后无法切换基建设施 2026-05-28 03:18:00 +08:00
uye
d763c9b152 chore: 添加主任务右键效果切换提示 2026-05-28 02:56:09 +08:00
uye
676c3bda4a chore: 加回右键菜单和单次运行
fix #16889
2026-05-28 02:44:16 +08:00
HY
92d939b36c chore: 繁中服「天想」主題 (#16893)
chore: 繁中服「孤星」主題
2026-05-28 01:54:33 +08:00
github-actions[bot]
b30112b5b7 chore: Auto Templates Optimization
Triggered by 70cd6d5324

[skip changelog]
2026-05-27 10:45:46 +00:00
HY
70cd6d5324 fix: 嘗試修復繁中服界園肉鴿無法放棄探索 (#16887) 2026-05-27 18:45:24 +08:00
Status102
2f14464a91 perf: NotificationImplWpf当Toast不可用时提示原因 (#16877)
* perf: NotificationImplWpf当Toast不可用时提示原因

* i18n: by uye

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

* i18n: JP

* i18n: zh-tw

* i18n: KR

* i18n: machine translate

---------

Co-authored-by: Manicsteiner <Manicsteiner@outlook.com>
Co-authored-by: momomochi987 <45387477+momomochi987@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
2026-05-27 18:44:38 +08:00
status102
93af38fbe4 fix: Roi.height 越界 2026-05-27 16:03:56 +08:00
status102
9c91b666cb fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:58:08 +08:00
status102
7a33b92d58 fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:46:58 +08:00
status102
b48c640119 fix: LogWarn 等宏在 Release 下依旧输出scope导致额外间隔 2026-05-27 12:46:57 +08:00
Saratoga-Official
f50f67177f fix: 界园见钱问柳事件选择逻辑
fix #16879
2026-05-27 09:32:47 +08:00
github-actions[bot]
0c572e9f6c feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26478296389
[skip changelog]
2026-05-26 22:16:59 +00:00
github-actions[bot]
191e7035b6 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26476376564
[skip changelog]
2026-05-26 21:33:41 +00:00
github-actions[bot]
fda1cc3ff3 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26473080349

[skip changelog]
2026-05-26 20:25:29 +00:00
H2O_MERO
39e01179ce feat: 对一键长草列表进行了交互优化,并添加了复制按钮 (#16733)
* feat: 对一键长草列表进行了交互优化

* feat: 增加了删除和编辑两种矢量图标并使用

* fix:修复了按钮颜色没有及时恢复的问题

* feat:加入了复制按钮

* fix:修复了复制任务后部分任务丢失数据和出现渲染异常的问题

* refactor: 跟进和优化了引导界面的任务设置部分样式

* perf: 任务index设置

* perf:

* revert

* fix: NameDisplay -> NameOrTaskType

* fix: 额外的图标

* fix: GroupName

* rft: 提取通用属性,修复 RadioButton 绑定错误,非 Idle 时不显示对应操作按钮

* chore: 删除左键提示

* fix: 高亮背景色

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-27 02:38:59 +08:00
github-actions[bot]
d5a2e8efb9 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26464510177

[skip changelog]
2026-05-26 17:34:30 +00:00
uye
0289fa0381 feat: 公招保留指定词条 (#16586)
* feat: 保留指定词条

* chore: wpf 不再传递 skip_robot

* rft: 提取共用方法

* perf: 传参

* rft: 统一使用 PreserveTags

* fix: NameOrTaskType

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:46:02 +08:00
uye
5efdfa1b5c feat: 理智作战支持设定目标材料最大库存 (#16487)
* feat: 理智作战支持设定目标材料最大库存

* chore: 调整翻译绑定,修改运行时 IsEnable,移除无用属性

* chore: 调整描述

* chore: 调整缩进

* perf: 移除不必要的变更判断

* feat: 任务开始时刷新库存

* rft: rename

* chore: 运行时不刷新仓库数据,仅在进入任务时刷新一次

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:28:56 +08:00
uye
753547b5dd feat: 支持部分任务间通过导航栏切换 (#16869) 2026-05-27 00:28:22 +08:00
github-actions[bot]
2592b76569 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26460728688

[skip changelog]
2026-05-26 16:20:47 +00:00
Alex Gu
45aefd30d7 fix: filenum_ctrl SIGABRT (#16233) + PosixIO fork _exit + CI action SHA pin (#16502)
* fix: PosixIO::call_command 中 fork 后 child 缺少 _exit 导致 unwind 进 parent 代码

当 execlp 失败时,child 分支走 `return std::nullopt`,该子进程会从
PosixIO::call_command 一路 unwind 回 AdbController::call_command 及其
caller,跟 parent 同时跑:

- 在 child 地址空间副本中释放 m_callcmd_mutex(caller 处持有的 unique_lock)
- 后续命中 `kill(m_child, SIGTERM)` 时 child 视角 m_child==0
  → POSIX `kill(0, SIG)` 给整个进程组发信号 → 把 parent 一并杀掉
- 析构时双 close 同一 fd 号(kernel 已重用给别处)→ 关掉 parent 的
  socket / log fd → 后续 read/write 错乱

查看 git 历史发现回归引入于 #7748(perf: update PosixIO::call_command, 2023-12)。
当时 perf 重构把 child 分支结尾的 `::exit(exit_ret)` 替换成
`Log.error(...) + return std::nullopt`。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ci: 将第三方 action 钉到 commit SHA,符合 GitHub 安全建议

https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: filenum_ctrl 中 std::filesystem 调用缺 error_code 导致 SIGABRT

Windows 上 debug 截图被另一进程占用时,std::filesystem 多个调用会抛 filesystem_error。
异常未被 filenum_ctrl / save_debug_image / AbstractTask::run 任一层
捕获,沿任务栈一路冒到 MaaCore 顶层(issue #16233)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: 清理 PosixIO 子分支 execlp 死赋值

按 Sourcery review 清掉死代码。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: restore release package workflow

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 22:20:33 +08:00
Jin Zhaonian
a5e3176e49 fix: 更新检查失败时优先尝试 api2 再使用缓存 (#16873) 2026-05-26 21:58:20 +08:00
uye
fd9f396f74 chore: MT 入口 2026-05-26 21:57:03 +08:00
uye
a4cb1e716d rft: 统一使用重载的 GetValue 替换 Convert.To (#16866) 2026-05-26 10:21:04 +08:00
uye
fb64c1164e feat: TouchMode ToolTip 添加视频演示 (#16812)
* feat: TouchMode ToolTip 添加视频演示

* style: 空行

* rft: 拓展 TooltipBlock 支持自定义 ToolTip
2026-05-26 10:15:44 +08:00
github-actions[bot]
6b5a021b2e feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26421831573
[skip changelog]
2026-05-25 22:14:07 +00:00
Luhan Xiao
0a7f6e272c fix(macOS): 降低 RA4 和 RA15 二倍速识别阈值 (#16860)
## 变更内容

- 在 macOS平台差异配置中,为 RA4 和 RA15 的二倍速识别节点补充 `templThreshold: 0.7`
- 与此前 macOS的 iOS 差异配置保持一致

## 修改位置

- `resource/platform_diff/iOS/resource/tasks.json`

## 原因

RA4 和 RA15 在 iOS/macOS 触控环境下识别二倍速按钮时也有用户反馈出现模板匹配分数偏低的问题,和此前 RA1 的情况类似。  
因此仅在 iOS 平台差异文件中降低对应节点阈值,避免影响通用任务配置和其他平台。

## 说明

本次未修改通用任务文件 `resource/tasks/RA/Reclamation3.json`。

## Summary by Sourcery

错误修复:
- 在 macOS/iOS 的 platform-diff 任务配置中,降低 RA4 和 RA15 的双倍速度模板匹配阈值,以减少漏检情况。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Lower the double-speed template matching threshold for RA4 and RA15 in
the macOS/iOS platform-diff task configuration to reduce missed
detections.

</details>
2026-05-26 02:24:24 +08:00
status102
81b71409a8 Revert "fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空"
This reverts commit c27cefa307.
2026-05-25 18:33:37 +08:00
status102
34d6e682be rft: 界园肉鸽弹窗Next关闭
招募卷关闭
2026-05-25 18:21:17 +08:00
status102
c27cefa307 fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空 2026-05-25 18:21:17 +08:00
status102
5495615247 perf: TaskQueue CheckBox与添加任务按钮对齐 2026-05-25 14:34:22 +08:00
status102
5a2d0401e4 perf: 优化TaskQueue选中任务时设置按钮表现以突出当前选中的选项 2026-05-25 14:33:25 +08:00
status102
4f39102526 rft: rename
[skip changelog]
2026-05-25 14:17:28 +08:00
Rin
7c628d25a5 fix: 处理界园司岁台分队招募券 NEXT 关闭 (#16806)
* fix: 改为复用原模板

* rft: 重构为JieGarden@Roguelike@CloseCollectionContinue2

* perf: 可读性优化

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-25 11:31:40 +08:00
github-actions[bot]
6a286f05a3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26373021279
[skip changelog]
2026-05-24 21:19:51 +00:00
uye
23e6245b89 Release v6.10.7 (#16851)
## 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>
2026-05-25 04:07:09 +08:00
uye
ab7e4f5a4f fix: Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-25 04:02:24 +08:00
uye
75feed058b docs: changelog
Updated version from 6.10.6 to 6.10.7 with highlights and fixes.
2026-05-25 03:54:39 +08:00
Loong
975981c568 fix: 修复 adb-lite 跳过 adb connect 后未初始化 client (#16850)
## 概述

- 在 adb-lite 处理 `shell`、`exec-out`、`push` 和交互式 shell 命令时,从 `-s <serial>`
参数懒初始化 adb-lite client。
- `adb connect <address>` 路径继续使用同一个 client 获取逻辑。
- 记录当前 adb-lite serial,在切换设备时重新创建 client。

## 问题原因

#15300 之后,`AdbController::connect` 会先检查 `adb devices`。如果目标设备已经在列表中,例如
`emulator-5554 device`,就会跳过 `adb connect <serial>`。

这个行为对普通 adb 路径是合理的,但 adb-lite 之前只在 `adb connect` 分支里初始化
`m_adb_client`。因此当设备已经在线、`adb connect` 被跳过时,后续的 `adb -s emulator-5554
shell ...` 会进入 adb-lite 路径,但此时 client 尚未初始化,日志中会出现:

```text
adb client not initialized
fallback to NativeIO
```

## 修复方式

把 adb-lite client 的初始化从 `adb connect` 分支中解耦出来。只要 adb-lite 收到带有 `-s
<serial>` 的 `shell`、`exec-out`、`push` 或交互式 shell 命令,就根据该 serial 获取或创建对应的
`adb::client`。

这样保留了 #15300 中“设备已在线时跳过 `adb connect`”的行为,同时也保证 adb-lite 不再依赖 `adb
connect` 作为唯一初始化入口。

## 验证

- 使用本机已安装的 maa-cli, MaaCore v6.10.6 和 Android 35 arm64 AVD 复现:
  - `adb devices` 返回 `emulator-5554 device`
  - 日志出现 `adb client not initialized`
  - 随后出现 `fallback to NativeIO`
- 编译并安装修复后的 Core:
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未再出现 `adb client not initialized`
  - 未再出现 `fallback to NativeIO`

## Summary by Sourcery

确保 adb-lite 为每个设备序列号初始化并复用一个客户端,用于 shell、exec-out、push 和交互式 shell 命令,并且与
adb connect 的执行路径无关。

Bug 修复:
- 当已在线设备跳过 adb connect 时,防止 adb-lite 因客户端未初始化而失败。

增强功能:
- 追踪当前的 adb-lite 设备序列号,并在序列号变化时重新创建 adb 客户端,以支持多设备会话。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Ensure adb-lite initializes and reuses a client per device serial for
shell, exec-out, push, and interactive shell commands, independent of
the adb connect path.

Bug Fixes:
- Prevent adb-lite from failing with an uninitialized client when adb
connect is skipped for already-online devices.

Enhancements:
- Track the current adb-lite device serial and recreate the adb client
when the serial changes to support multiple device sessions.

</details>
2026-05-25 03:50:35 +08:00
uye
8ac6c4a593 Release v6.10.6 (#16846)
生息演算应该差不多了,之后发 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>
2026-05-24 22:51:25 +08:00
uye
ca687b3024 docs: changelog 2026-05-24 22:30:07 +08:00
status102
b09c0f0678 Revert "rft: IsRefreshingUI 自动化支持"
This reverts commit 8e239b8bc2.
2026-05-24 22:28:56 +08:00
status102
ae194cf412 fix: TaskItem事件 2026-05-24 22:28:55 +08:00
uye
95c1e7b724 docs: changelog 2026-05-24 22:24:44 +08:00
uye
cc09e5b216 fix: 傀影肉鸽烧水后无法前往指定难度
fix #16843
2026-05-24 20:54:52 +08:00
github-actions[bot]
aef75152fe feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26360469934
[skip changelog]
2026-05-24 11:52:00 +00:00
status102
9c49148d72 fix: RegionOCR use_raw = false时bounding_rect的扩展失效 2026-05-24 16:47:56 +08:00
status102
a0cc100a96 fix: 事件订阅泄露 2026-05-24 15:26:21 +08:00
MistEO
3f9c91efce ai: 全项目代码审查 - only cursor can do (指薅羊毛 2026-05-24 12:23:05 +08:00
Saratoga-Official
c8e3d38529 fix: RA1交付石材有可能识别不到 2026-05-24 12:19:03 +08:00
github-actions[bot]
dd01602870 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344814115
[skip changelog]
2026-05-23 22:08:42 +00:00
github-actions[bot]
e06dfaacb8 chore: Auto Update Game Resources - 2026-05-23
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344701306

[skip changelog]
2026-05-23 22:03:24 +00:00
Rin
60104dbd89 fix: 基建制造站切换产物流程稳定性提升 (#16747)
* fix: 基建制造站切换产物流程稳定性提升

* fix: 切换产物失败时向 GUI/Log报错

* refactor: 换产物失败后仍进入换人步骤,不停止任务链

*fix: 拆分自定义/params 无人机使用变量

* fix: 补充缺失产物任务配置的空指针保护。

---------

Co-authored-by: Roland125 <oroland125@outlook.com>
2026-05-24 05:41:11 +08:00
github-actions[bot]
a1f736a763 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26343777856
[skip changelog]
2026-05-23 21:18:46 +00:00
Loong
48424a68c5 fix: refactor ADB connection logic to only connect when needed (#15300)
优化 ADB 连接处理逻辑,避免不必要的连接尝试,并在连接不需要或无效时改进错误报告。
2026-05-23 16:24:49 +01:00
Kaleb Luedtke
c14685311b ci:请使用 wingetcreate 代替 winget-releaser (#16813)
* 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
2026-05-23 22:33:14 +08:00
uye
4499a0b9c5 chore: inheritdoc 2026-05-23 22:25:34 +08:00
uye
b6126a7392 fix: 修复 Bark 与 Gotify 无法使用反代路径 2026-05-23 22:23:21 +08:00
github-actions[bot]
f716362e03 chore: Auto Templates Optimization
Triggered by 8d236d83c5

[skip changelog]
2026-05-23 13:47:57 +00:00
萨拉托加
8d236d83c5 fix: RA-4已知问题 (#16821)
## 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>
2026-05-23 21:47:38 +08:00
HX3N
7949869f2e chore: YostarKR UR ocr edit 2026-05-23 18:08:35 +09:00
status102
8e239b8bc2 rft: IsRefreshingUI 自动化支持 2026-05-23 16:27:09 +08:00
status102
53f1ac9e07 perf: 剿灭关使用代理卷后网络卡顿等待 2026-05-23 15:59:43 +08:00
status102
7f8f4bdfff fix: 自动战斗结束检测bypass 2026-05-23 11:08:59 +08:00
uye
b6dec3a403 ai: Update KNOWLEDGE.md with Connect.TouchMode information
Added details about Connect.TouchMode and its modes.
2026-05-23 06:31:40 +08:00
github-actions[bot]
c56bb31e19 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26312714696
[skip changelog]
2026-05-22 21:26:42 +00:00
uye
fb89bec322 Release v6.10.5 (#16807)
## 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>
2026-05-23 02:00:58 +08:00
uye
29c5b0abb2 docs: changelog 2026-05-23 02:00:25 +08:00
uye
62ae9c56b6 fix: 选项显示内容错误 2026-05-23 01:52:26 +08:00
uye
bcd6bcf949 fix: 企鹅物流汇报 ID 始终显示 2026-05-23 01:51:22 +08:00
uye
ad810146df chore: 移除不必要的刷新 2026-05-23 01:44:41 +08:00
status102
cfe86445f8 fix: 自动战斗快速编队干员名roi 2026-05-23 01:27:58 +08:00
uye
9a491c0baa chore: 优化任务超时判断 2026-05-23 01:20:39 +08:00
uye
fef0e8f25b docs: Release notes for version 6.10.5
Updated CHANGELOG for version 6.10.5 with new features, improvements, and fixes.
2026-05-23 00:21:03 +08:00
uye
e4ab103f96 fix: 修复未开启线索交流时不计算会客室效率 2026-05-22 23:43:54 +08:00
Status102
0dec7ff8fc perf: 刷理智关卡选择提示当前任务将执行的关卡 (#16797)
* perf: 刷理智关卡选择提示当前任务将执行的关卡

* i18n: EN

* i18n: KR

* i18n: JP

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: ManicSteiner <manicsteiner@outlook.com>
2026-05-22 22:54:03 +08:00
Aliothmoon
3db262c5ca fix: 移除dft路径下的缓存 & 补充缓存驱逐机制 (#16800)
* fix: 移除dft路径下的缓存

* feat: 使用LRU控制一下缓存上限

* fix: potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* feat: 驱逐缓存项时打印日志

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-22 22:52:50 +08:00
Status102
263eaf14c1 fix: TooltipBlock无法使用Binding进行绑定 (#16796)
* fix: TooltipBlock无法使用Binding进行绑定

* fix: review
2026-05-22 22:52:35 +08:00
github-actions[bot]
8d8e800c3b chore: Auto Update Game Resources - 2026-05-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26293837506

[skip changelog]
2026-05-22 14:38:19 +00:00
萨拉托加
4f094c68c9 feat: RA-4 (#16749)
* feat: RA-4

* fix: 修复一些问题

* fix: 继续优化改进

* fix: 继续优化改进

* feat: 添加 RA-4 入口与文档

* perf: 提取 baseTask

* chore: 调整描述

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-22 22:23:59 +08:00
uye
2882637c83 chore: 删除 (大型) 兽栏的描述 2026-05-22 22:16:47 +08:00
github-actions[bot]
0c3002380d chore: Auto Update Game Resources - 2026-05-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26285403922

[skip changelog]
2026-05-22 11:36:07 +00:00
status102
fe2bae6093 fix: SS复刻任务导航超时临时修复
等待重构拆分
2026-05-22 18:48:12 +08:00
status102
9c15e82ff8 fix: 删多了 2026-05-22 16:05:13 +08:00
status102
3ba810d1d5 rft: 移除FightTask不再使用的关卡设置 2026-05-22 14:55:23 +08:00
github-actions[bot]
294d1c52be chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26254266055
[skip changelog]
2026-05-21 21:32:08 +00:00
uye
ebe325a474 fix: RA-15 导致无法启动 2026-05-22 02:19:27 +08:00
github-actions[bot]
e52a41745f chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26244718893

[skip changelog]
2026-05-21 18:18:17 +00:00
Michael Liu 刘嘉远
37d0fec568 fix: 生息演算RA15 bug fix (#16770)
* fix: 0520 bug fix

* fix: RA-15代码完善

* fix: 完善RA15
2026-05-22 01:52:53 +08:00
github-actions[bot]
ff9c7b8048 chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26242308150

[skip changelog]
2026-05-21 17:31:45 +00:00
Luhan Xiao
c04dab8c05 fix(macOS): 为 PlayCover 生息演算 RA1 二倍速识别添加 iOS 模板和降低识别阈值 (#16779)
## 修改内容

为 iOS / PlayCover 差异资源中的 `RelaunchAnchor@RA@RA1-DoubleSpeed`
增加单独的模板匹配阈值:

```json
"RelaunchAnchor@RA@RA1-DoubleSpeed": {
    "templThreshold": 0.75
}
```

修改文件:

```text
resource/platform_diff/iOS/resource/tasks.json
```

## 问题背景

在 MacBook Air M4 + PlayCover 环境下执行生息演算 `Reclamation / RelaunchAnchor`
时,RA-1 流程会在部署采集基站后卡在:

```text
RelaunchAnchor@RA@RA1-WaitDoubleSpeed
```

游戏画面右上角实际已经出现二倍速按钮,但模板匹配分数只有约 `0.78`,低于默认阈值时不会进入 `RA1-DoubleSpeed`
点击节点,而是持续停留在 `RA1-WaitDoubleSpeed / DoNothing`。

相关问题背景可参考:#16775、#16778  
更完整的问题发现、排查、修改和本地测试闭环见:#16778

## 本地验证

本地先恢复了通用任务文件 `resource/tasks/RA/Reclamation3.json`,只在 iOS 差异文件中加入上述
`templThreshold` 配置后,重新启动 MAA 并测试。

日志中可以看到 iOS 差异资源被加载:

```text
load ../../../../../../../../Applications/MAA.app/Contents/Resources/resource/platform_diff/iOS/resource/template
load ret 1
```

原本卡住的位置可以成功识别并进入 `RA1-DoubleSpeed`:

```text
cur_task":"RelaunchAnchor@RA@RA1-WaitDoubleSpeed"
to_be_recognized":["RelaunchAnchor@RA@RA1-DoubleSpeed","RelaunchAnchor@RA@RA1-WaitDoubleSpeed"]

match_templ | RelaunchAnchor@RA@DoubleSpeed.png [optimized] score: 0.784211 rect: [ 1068, 24, 52, 63 ] roi: [ 1060, 20, 80, 70 ]
analyze | MatchTemplate RelaunchAnchor@RA@RA1-DoubleSpeed

"action":"ClickSelf"
"algorithm":"MatchTemplate"
"score":0.784211
"task":"RA1-DoubleSpeed"

Click with scaled coordinates (1094, 83) 1.5
PlayTools click: (1641, 124)
```

之后流程继续进入后续节点:

```text
RelaunchAnchor@RA@RA1-DeployGatheringBaseWait
RelaunchAnchor@RA@RA1-WaitCost
RelaunchAnchor@RA@RA1-Cost
RelaunchAnchor@RA@RA1-DeployOperatorSwipe
RelaunchAnchor@RA@RA1-DeployOperatorDirection
```

本地游戏内也确认可以正常继续执行,不再卡在 `RA1-WaitDoubleSpeed`。

## 说明

该修改没有改动通用 `resource/tasks/RA/Reclamation3.json`,只对 iOS / PlayCover
平台差异资源生效,用于兼容 PlayCover 环境下二倍速按钮模板匹配分数偏低的问题。
2026-05-22 00:57:29 +08:00
uye
a1047e9d33 perf: RA-1 增加迷迭香部署方向失败重试,增加过场动画过长时等待 2026-05-21 23:54:13 +08:00
uye
313b39a1e9 chore: 肉鸽分队添加 代理人分队 不支持描述 2026-05-21 23:54:13 +08:00
github-actions[bot]
1e84039f78 chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26215064526

[skip changelog]
2026-05-21 08:37:21 +00:00
github-actions[bot]
c0c177d273 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26193227134
[skip changelog]
2026-05-20 22:18:27 +00:00
uye
5ec43a8ead chore: 优化界面布局 2026-05-20 23:27:21 +08:00
uye
bac1bbeb21 perf: 支持禁用日志停滞检测,优化数据绑定 2026-05-20 23:13:13 +08:00
github-actions[bot]
52a76b0386 chore: Auto Update Game Resources - 2026-05-20
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26150926055

[skip changelog]
2026-05-20 08:31:25 +00:00
status102
ad0295c83e fix: OF-1战斗失败错误结束
- link to #16748
2026-05-20 12:28:34 +08:00
uye
cf1137be3d Release v6.10.4 (#16743)
怎么 [issues-helper](https://github.com/actions-cool/issues-helper) 被 ban
了
2026-05-20 02:27:59 +08:00
uye
c0a5cf6b1f ci: Remove issue creation step on CI failure
Removed issue creation step on failure in CI workflow.
2026-05-20 02:21:50 +08:00
uye
a3b421f948 ci: Remove issue creation on OTA release failure
Removed failure issue creation steps for OTA releases on Windows and macOS.
2026-05-20 02:21:30 +08:00
uye
6d5fc774ce Release v6.10.4 (#16741)
## 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>
2026-05-20 01:19:39 +08:00
uye
b01281e0db docs: changelog 2026-05-20 01:15:19 +08:00
uye
50de6a25fb ai: Changelog skill 2026-05-20 01:14:38 +08:00
uye
8ad75a3760 perf: 优化配置异常弹窗 2026-05-20 00:48:51 +08:00
status102
e4b0acfe9a perf: 配置损坏记录 2026-05-20 00:25:37 +08:00
status102
ba4a998d0b fix: 修复潜在的空config 2026-05-20 00:21:46 +08:00
status102
d6872bc425 fix: 配置修复弹窗后自动退出 2026-05-20 00:15:43 +08:00
uye
079c64aba6 fix: 修复重复添加同名配置会删除上一个配置 2026-05-20 00:06:40 +08:00
uye
31d516f0e6 docs: Update docs/ko-kr/manual/device/macos.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-05-19 23:41:23 +08:00
github-actions[bot]
34f9e12f11 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26107648395
[skip changelog]
2026-05-19 15:34:29 +00:00
github-actions[bot]
e651f44425 chore: Auto Update Game Resources - 2026-05-19
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26107479502

[skip changelog]
2026-05-19 15:32:49 +00:00
status102
80c753b3d4 docs(wpf): 自动战斗右侧提示移除需要手动借助战的额外操作说明 2026-05-19 23:30:45 +08:00
uye
b06a824ae2 fix: 远控 LinkStart-* 子任务失败
fix #16740
2026-05-19 23:27:56 +08:00
uye
cb02b83f3d docs: 补充生息演算与小工具相关文档 2026-05-19 23:24:05 +08:00
Michael Liu 刘嘉远
fd10ca546c fix: 修复部分 RA-15 bug,优化逻辑 (#16725)
* fix: 修复部分ra15bug,优化逻辑

* fix: add stability

* fix: add stability
2026-05-19 22:17:49 +08:00
wryx166
212e9aa605 docs: 设备文档添加 steps/details容器,修复bat代码块格式,处理文档中demo-wrapper的废弃警告 (#16712)
* docs: 为设备文档添加步骤容器并修正代码块语言
  - 添加 `::: steps` 步骤容器
  - 将 Windows 批处理代码块修正为 `bat`,相应注释改为bat风格
  - i18n

  Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: 处理文档中demo-wrapper的废弃警告
2026-05-19 20:51:37 +08:00
uye
8274c0b23a chore: RA-1 部署基站失败时尝试重新部署 2026-05-19 20:25:18 +08:00
uye
7ce44a2f2c chore: 生息演算增加基础设施识别,避免二次点击制造图标进入错误位置 2026-05-19 19:44:56 +08:00
HY
ed30b4011c fix: 補上繁中服漏掉的「擬態學者分隊」 (#16731)
fix: 補上漏掉的「擬態學者分隊」
2026-05-19 13:14:50 +08:00
status102
e13461f972 Revert "feat: SwitchConfig 检测到配置缺失尝试从当前配置复制恢复通知用户"
This reverts commit b8b25d7c20.
2026-05-19 13:08:59 +08:00
status102
2effcbb065 perf: 配置部分损坏提示 2026-05-19 13:08:04 +08:00
status102
0b28249453 perf: Config检查到缺失时, 统一使用当前config进行赋值 2026-05-19 12:58:46 +08:00
github-actions[bot]
87d64af26f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26061417579
[skip changelog]
2026-05-18 21:27:58 +00:00
Roland125
9475e2f76a fix: 剿灭掉落识别不到合成玉时不停止任务 (#16726) 2026-05-19 01:38:40 +08:00
uye
7583758492 chore: 调整坐标 2026-05-19 01:28:02 +08:00
Manicsteiner
87faaf2cfd chore: Yostar UR stage navigation (#16723) 2026-05-18 23:09:08 +08:00
uye
2bf3c937d4 Revert "fix: 当新配置损坏时, 重新补充默认配置"
This reverts commit 5c7ab5c3cd.
2026-05-18 21:02:14 +08:00
uye
b8b25d7c20 feat: SwitchConfig 检测到配置缺失尝试从当前配置复制恢复通知用户 2026-05-18 21:02:14 +08:00
H2O_MERO
266ae1cda6 chore: 更新基建排班文档中过时的链接 (#16700)
把基建排班文档中的链接从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>
2026-05-18 20:35:40 +08:00
status102
5c7ab5c3cd fix: 当新配置损坏时, 重新补充默认配置
fix #16691
2026-05-18 20:25:37 +08:00
uye
f1a3627dc0 Release v6.10.3 (#16701)
## 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>
2026-05-18 12:57:48 +08:00
uye
39cb3fd32a docs: Bump version to v6.10.3 and update changelog
Updated version number to v6.10.3 and added highlights, improvements, and fixes.
2026-05-18 12:57:20 +08:00
uye
b20a05f2ea fix: review 2026-05-18 12:54:01 +08:00
uye
aa6ea24d8d fix: 不会现在还有人选沙中遗火吧 2026-05-18 12:42:20 +08:00
uye
8346706622 chore: 遇到无法转换的枚举值转换为带路径信息的 JsonException 2026-05-18 11:54:38 +08:00
Status102
ac3b826c55 rft: RA mode (#16697)
## 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>
2026-05-18 11:42:29 +08:00
uye
b4d43cbfe3 perf: 优化 [Flags] 判断 2026-05-18 11:34:16 +08:00
uye
54f239411b fix: TolerantEnumConverter 支持 Flags 2026-05-18 11:14:45 +08:00
uye
82abc7e89a Release v6.10.2 (#16693)
## 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>
2026-05-18 10:09:15 +08:00
uye
c5722c0f9d docs: Update CHANGELOG for version 6.10.2
Updated version number to v6.10.2 and added highlights and fixes.
2026-05-18 10:09:04 +08:00
uye
9456d7a5da fix: 自定义枚举转换器无法处理枚举作为字典键 2026-05-18 10:07:33 +08:00
uye
b687e5887a Release v6.10.1 (#16689) 2026-05-18 09:15:45 +08:00
uye
072666f425 fix: 日志顺序 2026-05-18 09:14:30 +08:00
uye
5207c09929 docs: Update CHANGELOG for version 6.10.1
Add changelog entry for version 6.10.1 with a fix.
2026-05-18 09:11:22 +08:00
uye
8c72cac105 fix: 在遇到多个非法配置参数时会直接重置配置 2026-05-18 09:08:16 +08:00
github-actions[bot]
629cb81c64 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26002960944
[skip changelog]
2026-05-17 21:18:14 +00:00
uye
d4776b872e Release v6.10.0 (#16682)
## 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>
2026-05-18 04:23:24 +08:00
uye
e6c48c40fa docs: changelog 2026-05-18 04:22:14 +08:00
uye
934bb62b7e chore: 为什么会叫这个名字呢? 2026-05-18 04:22:14 +08:00
github-actions[bot]
16c229002b chore: Auto Update Game Resources - 2026-05-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26000856514

[skip changelog]
2026-05-17 19:45:51 +00:00
uye
5c1f2dd080 chore: 调整 RA-15 滑动速度 2026-05-18 03:29:15 +08:00
github-actions[bot]
5adb91aad9 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26000258597
[skip changelog]
2026-05-17 19:18:46 +00:00
uye
469df500cf chore: 修改描述 2026-05-18 03:13:48 +08:00
uye
4805557242 FIX: 特意删的 PNS 怎么又给加回来了 2026-05-18 03:08:03 +08:00
uye
3ca37f8f1c fix: build warning 2026-05-18 02:53:04 +08:00
uye
1c0440436a rft: 生息演算策略逻辑修改 (#16680)
* rft: 生息演算策略逻辑修改

* chroe: review

* feat: 支持禁用高级设置

* chore: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-18 02:34:38 +08:00
Rbqwow
5787270eed docs: 修正嵌套容器说明
同时使用 LLM 同步文档 i18n
2026-05-18 02:27:40 +08:00
铃语
fd5ebb6670 perf: 更新 243 高配三队简化一天三换排班表(20260518 修订) (#16678)
* feat: 更新 243 高配三队简化一天三换排班表(20260518 修订)

* chore: move to old
2026-05-18 02:04:16 +08:00
铃语
485fb25fa0 perf: 更新 333 极限3队一天三换排班表(20260518 修订) (#16679)
* perf: 更新 333 极限3队一天三换排班表(20260518 修订)

* chore: move to old
2026-05-18 02:02:24 +08:00
github-actions[bot]
c66a2bc314 chore: Auto Update Game Resources - 2026-05-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25995257682

[skip changelog]
2026-05-17 15:42:14 +00:00
AnnAngela
0954959e00 ci: Set compression level to 0 for artifact uploads
Added compression-level parameter to artifact uploads for various platforms.
2026-05-17 23:21:13 +08:00
Michael Liu 刘嘉远
31805c16ef feat: 生稀盐酸-重启锚点 添加 RA15 支持 (#16667)
* feat: 新增生息演算「重启锚点」RA-15 关卡任务链

* feat: 生息演算 RA-1/RA-15 关卡选择 UI 及 Core 适配

新增 RelaunchAnchorStage 枚举,WPF 界面添加关卡选择下拉框,
C++ Core 根据 stage 参数加载对应的任务链入口。

* feat: 添加RA-15自己有初雪的版本

* fix: Delete resource/tasks/RA/Reclamation3-RA15-HaveCX.json

* fix: 增加识别已有初雪功能

* feat: 拆分 RA-1/RA-15 教程文本,根据关卡选择切换提示

* rft: 合并生稀盐酸文件,并抽取相同任务

* fix: MaaCore 为新盐酸修改为通用性入口

* fix: 生稀盐酸 wpfgui 提示文本选取逻辑优化

* chore: 修改生稀盐酸入口任务命名

* chore: 优化生稀盐酸提示文本

* fix: 重启锚点不再 fallback 关卡

* chore: 生稀盐酸目录结构优化

* chore: 移除旧任务入口

* fix: 修正提示描述

* chore: 优化key命名及选取逻辑

* chore: 修正翻译缩进

---------

Co-Authored-By: Michael Liu 刘嘉远 <walkerljy@163.com>
Co-authored-by: 晓丶梦丶仁 <74444214+Daydreamer114@users.noreply.github.com>
Co-authored-by: SherkeyXD <57581480+SherkeyXD@users.noreply.github.com>
2026-05-17 23:18:30 +08:00
AnnAngela
27c1e1117c revert: Rename artifact uploads in CI workflow 2026-05-17 20:33:27 +08:00
uye
ed9d5c408f perf: 优化木材数量正则 2026-05-17 19:09:50 +08:00
晓丶梦丶仁
0759748e4a ci: 优化 PR commit 检查评论逻辑 (#16671)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 19:07:32 +08:00
uye
f6b60c5aca perf: 优化木材数量识别,支持开局自带木材快速完成任务 2026-05-17 18:57:04 +08:00
dependabot[bot]
63d3e43eb6 ci: bump actions/upload-artifact from 6 to 7 in /.github/workflows in the github-actions group (#16642)
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-17 17:37:29 +08:00
Saratoga-Official
dec1f6695b fix: 生息交付木材roi错误 2026-05-17 14:07:02 +08:00
status102
daa1aa4730 perf: 合并输出 2026-05-17 10:36:46 +08:00
uye
4401ede05e perf: 优化生息演算小猫费用识别 2026-05-17 08:05:23 +08:00
uye
f3700f5ef7 rft: 统一 LocalizationHelper GetString Format (#16658) 2026-05-17 07:43:14 +08:00
uye
524d892997 feat: 支持通过 Mirror酱 下载时若新版本无增量包则等待后重试 (#16656)
## 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>
2026-05-17 07:20:48 +08:00
uye
ad67ac79b0 chore: 点击开始建设添加重试
fix: #16644
2026-05-17 06:24:03 +08:00
uye
f37285df6d ai: Add Abort DWM section to KNOWLEDGE.md
Added section on Abort DWM and its implications for Windows 8 and later.
2026-05-17 06:15:50 +08:00
uye
2b0a15fb6e Release v6.10.0-beta.4 (#16648)
## 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>
2026-05-17 05:59:26 +08:00
uye
dacbe1acce docs: Update CHANGELOG for v6.10.0-beta.4
Added new features, improvements, and bug fixes for version 6.10.0-beta.4.
2026-05-17 05:57:53 +08:00
Aliothmoon
48d51fe310 fix: 修复 FFT 路径 masked TM_CCOEFF_NORMED 精度损失导致的误匹配 (#16652)
* fix: 修复 FFT 路径 masked TM_CCOEFF_NORMED 精度损失导致的误匹配

* fix: 修一下review问题
2026-05-17 05:53:54 +08:00
H2O_MERO
326fd03ccb feat: 为自动公招的输出日志增加已公招次数 (#16651)
* feat: 为自动公招的输出日志增加已公招次数

* chore: LocalizationHelper 有自带 Format 的 GetString

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-17 05:37:18 +08:00
uye
f0390d9c62 style: 换行 2026-05-17 03:00:29 +08:00
uye
0a6a142491 fix: 修复日志输出停滞功能在未开启外部通知时无法生效 2026-05-17 02:58:31 +08:00
uye
6b29393ff1 chore: AddLog 缺失 param 介绍 2026-05-17 02:55:25 +08:00
uye
0799977b74 perf: 干员识别本地化导出表头,添加类型化枚举 2026-05-17 02:49:16 +08:00
uye
057aed9d64 chore: 统一干员识别与仓库识别界面布局 2026-05-17 01:04:30 +08:00
github-actions[bot]
1a08936f67 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25967705810
[skip changelog]
2026-05-16 16:59:25 +00:00
H2O_MERO
131f2d248d feat: 干员识别支持导出 Json/Markdown/CSV,优化导出按钮布局与交互 (#16635)
### 新增  
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>
2026-05-17 00:58:14 +08:00
uye
c062705041 chore: 提高生息演算对话速度 2026-05-17 00:55:13 +08:00
github-actions[bot]
9af639ad10 chore: Auto Update Game Resources - 2026-05-16
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25967242037

[skip changelog]
2026-05-16 16:38:42 +00:00
uye
f720f900ae Revert "chore: 优化生息演算替换逻辑"
This reverts commit 6244e7fe6b.
2026-05-17 00:18:10 +08:00
github-actions[bot]
799e4754e7 chore: Auto Templates Optimization
Triggered by 6244e7fe6b

[skip changelog]
2026-05-16 16:14:38 +00:00
uye
6244e7fe6b chore: 优化生息演算替换逻辑 2026-05-17 00:14:07 +08:00
uye
88b4766b2b chore: 生息演算统一命名 2026-05-17 00:14:07 +08:00
uye
867bdc5696 perf: 生息演算增加部署费用、木头数识别,提升运行速度与稳定度 2026-05-17 00:14:07 +08:00
uye
c27855da44 chore: 生息演算拖动地图增加重试 2026-05-17 00:14:06 +08:00
HX3N
5a9c98041c chore: YostarKR UR stage navigation 2026-05-16 22:59:10 +09:00
github-actions[bot]
14d20b37aa chore: Auto Update Game Resources - 2026-05-16
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25959189397

[skip changelog]
2026-05-16 10:06:24 +00:00
Constrat
d66631e044 fix: Various IS encounter Regex 2026-05-16 11:43:47 +02:00
github-actions[bot]
4bfccbdc93 chore: Auto Templates Optimization
Triggered by 84df4ef79e

[skip changelog]
2026-05-16 09:37:35 +00:00
Rin
84df4ef79e fix: 界园深入探索模板 (#16626)
* fix: 新增界园深入探索专用图标

* perf: 简化

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-16 17:37:13 +08:00
Constrat
c244314b5e fix: TimesChange event 2026-05-16 10:24:23 +02:00
Constrat
03ca096d9e chore: gitignore for C# dev kit vsc deo 2026-05-16 10:12:28 +02:00
Hao Guan
76cda416bd feat(mac): 生息演算:重启锚点 2026-05-16 11:47:25 +08:00
github-actions[bot]
a7dec56904 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25943784110
[skip changelog]
2026-05-15 22:10:13 +00:00
github-actions[bot]
b42e2d244c chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25942030629
[skip changelog]
2026-05-15 21:23:51 +00:00
uye
2d1740c255 Release v6.10.0-beta.3 (#16623)
## 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>
2026-05-16 04:25:00 +08:00
uye
86cf185d25 docs: Update CHANGELOG for v6.10.0-beta.3
Added new features and made adjustments in the changelog.
2026-05-16 03:19:49 +08:00
github-actions[bot]
fb6e08281c feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25936565851
[skip changelog]
2026-05-15 19:14:24 +00:00
H2O_MERO
edc6b85d50 feat: 点击成就横幅跳转至成就设置,自动打开成就列表并筛选对应成就 (#16537)
### 改动
可以通过点击右上角弹出的成就横幅跳转至成就设置,并自动打开成就列表并筛选对应成就

## 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>
2026-05-16 02:44:00 +08:00
H2O_MERO
24639a0fdd feat: 任务日志输出停滞时发送通知, 替换 任务超时通知 (#16511)
### 改动
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>
2026-05-16 02:43:28 +08:00
uye
ea8a4ccb33 chore: 放宽对 RA-1 关卡名的检查
fix #16622
2026-05-16 02:37:08 +08:00
uye
24886bb695 chore: 添加拆除设施的描述 2026-05-16 02:02:07 +08:00
uye
6326ec2f35 chore: 删除辅助建设模式的描述 2026-05-16 00:56:57 +08:00
uye
38c94b5cd7 Release v6.10.0-beta.2 (#16619)
## 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>
2026-05-16 00:51:46 +08:00
uye
e741a81d0e docs: Update CHANGELOG for v6.10.0-beta.2 release 2026-05-16 00:51:33 +08:00
uye
fc4df3502a style: 文件尾空行 2026-05-16 00:46:23 +08:00
github-actions[bot]
adafc31adc feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25929745651
[skip changelog]
2026-05-15 16:43:38 +00:00
uye
437da1ac62 chore: 欠费下小猫 2026-05-16 00:41:52 +08:00
uye
d8552201d4 chore: 快速下小猫 2026-05-16 00:39:21 +08:00
uye
a66d5189a0 perf: 减少中间状态 2026-05-16 00:21:23 +08:00
uye
8cc109a934 chore: 加快下一轮循环 2026-05-16 00:17:45 +08:00
uye
5875cb1ba3 chore: 提升对话速度 2026-05-16 00:16:59 +08:00
uye
f74892dec5 chore: 添加描述 2026-05-16 00:09:25 +08:00
uye
ac45207903 feat: 生息演算支持不同分辨率 2026-05-16 00:09:25 +08:00
uye
b9aecb9469 ai: Add section on MAA multi-opening and account management 2026-05-15 22:57:11 +08:00
github-actions[bot]
c95b8373e3 chore: Auto Update Game Resources - 2026-05-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25917272423

[skip changelog]
2026-05-15 12:17:21 +00:00
uye
0e3bde1260 Release v6.10.0-beta.1 (#16611)
## 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>
2026-05-15 20:11:51 +08:00
github-actions[bot]
9e51cdfe65 docs: Auto Update Changelogs of v6.10.0-beta.1 (#16612)
* 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>
2026-05-15 20:02:53 +08:00
github-actions[bot]
62ea1f2841 chore: Auto Templates Optimization
Triggered by 155f049cf6

[skip changelog]
2026-05-15 11:42:35 +00:00
uye
155f049cf6 feat: 初步支持 生息演算:重启锚点 新手刷代币与科技点策略 2026-05-15 19:42:05 +08:00
Aliothmoon
416ecca979 perf: 优化 masked TM_CCOEFF_NORMED 匹配性能 (#16593)
* 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)
2026-05-15 19:22:29 +08:00
github-actions[bot]
210b1aef22 chore: Auto Update Game Resources - 2026-05-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25910909078

[skip changelog]
2026-05-15 09:37:11 +00:00
github-actions[bot]
3c4aaf6e7e chore: Auto Templates Optimization
Triggered by 1e37310c4a

[skip changelog]
2026-05-15 08:16:06 +00:00
uye
1e37310c4a feat: 17 章导航 2026-05-15 16:15:33 +08:00
uye
592826aef3 fix: 15 章之后的难度切换 2026-05-15 16:15:26 +08:00
uye
889414d21b chore: 统一符号 2026-05-15 14:46:52 +08:00
github-actions[bot]
fc95c90f8f feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25888740056
[skip changelog]
2026-05-14 22:14:58 +00:00
github-actions[bot]
72234dcc93 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25886570116
[skip changelog]
2026-05-14 21:26:59 +00:00
HY
90bb4b78e3 fix: 繼續調整繁中服部分幹員名稱 OCR (#16600) 2026-05-14 22:45:17 +08:00
uye
b05a5a98ff ai: Update KNOWLEDGE.md with PC mouse rendering note
Add note about PC mouse rendering issues affecting recognition.
2026-05-14 22:37:20 +08:00
status102
3ee852928f fix: 理智药过期天数识别失败取消确认逻辑未生效
- link to #16548
2026-05-14 19:50:49 +08:00
status102
fc81cc3bbd fix: 临期理智药天数缺省值 2026-05-14 19:50:33 +08:00
github-actions[bot]
ae11a7ca6d feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25829555451
[skip changelog]
2026-05-13 22:15:51 +00:00
github-actions[bot]
2ede1dd544 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25827562446
[skip changelog]
2026-05-13 21:32:01 +00:00
uye
4517ef984c fix: 便捷功能列表滚动 2026-05-14 01:51:23 +08:00
uye
d20493a1b0 feat: 便捷功能提示文本自适应大小 2026-05-14 01:13:14 +08:00
uye
f5801a4d69 fix: 便捷功能 GroupStyle 2026-05-14 00:42:15 +08:00
uye
2aa92b0c1d perf: 调整 小工具-便捷任务 布局,调整日志输出 2026-05-13 23:56:58 +08:00
status102
3432050ff4 fix: 刷理智-理智药过期参数迁移输出Warning中参数名错误 2026-05-13 20:53:20 +08:00
SherkeyXD
a105eccd05 rft: 小游戏界面重构,添加分类并优化选择逻辑,添加日志显示 (#16499)
* rft: 小游戏界面重构,添加分类并优化选择逻辑,添加日志显示

* chore: 修复格式化问题和误删注释

* chore: 重命名小游戏

* fix: 不再硬编码日志内容

* i18n: EN

* i18n: zh-tw

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: momomochi987 <45387477+momomochi987@users.noreply.github.com>
2026-05-13 19:18:32 +08:00
status102
5e78b23157 perf: 避免不必要的new 2026-05-13 16:46:00 +08:00
Status102
de9f715e50 rft(wpf): RunningState更新 (#16585)
* rft(wpf): RunningState更新

* fix: 遗漏
2026-05-13 15:56:05 +08:00
github-actions[bot]
0c16c0b21d chore: Auto Update Game Resources - 2026-05-13
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25781860833

[skip changelog]
2026-05-13 06:13:45 +00:00
github-actions[bot]
2d794bc1c4 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25765378675
[skip changelog]
2026-05-12 22:15:16 +00:00
github-actions[bot]
1e0d66cf7d chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25763261294
[skip changelog]
2026-05-12 21:29:51 +00:00
status102
f148494230 perf: OCRer DEBUG下绘制匹配结果 2026-05-13 04:50:02 +08:00
uye
3d6e9364d5 fix: typo 2026-05-13 02:54:25 +08:00
uye
a68c24edc9 ai: Add Arknights PC Client information to KNOWLEDGE.md
Added section about Arknights PC Client, including functionality, maintenance, and user recommendations.
2026-05-13 02:47:46 +08:00
uye
2f22c0bde1 chore: 调整干员识别提示换行 2026-05-13 02:42:44 +08:00
H2O_MERO
7921672c07 feat: 仓库识别支持导出 Markdown/CSV,优化导出按钮布局与交互 (#16543)
* feat: 仓库识别支持导出 Markdown/CSV,优化导出按钮布局与交互

* feat: 优化仓库识别导出功能,支持下拉菜单选择并导出 Markdown/CSV

* rft: 提取独立的导出方法

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-13 02:37:00 +08:00
uye
31380e7bdf ai: Update KNOWLEDGE.md with PC announcement details
Added section on PC announcement handling and screenshot methods.
2026-05-13 02:28:27 +08:00
uye
28e3cbb59b chore: 调整图标阴影 2026-05-13 02:09:34 +08:00
uye
f4cc4610a3 chore: 采用 System.Windows 的剪贴板 2026-05-13 01:57:49 +08:00
Aliothmoon
c6f930a60d feat: support native android (#16179)
* 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
2026-05-12 22:15:15 +08:00
uye
13fa72510a ai: 调整输出格式 2026-05-12 20:19:05 +08:00
uye
9660485e7e ai: 修改 ai-issue-analysis 2026-05-12 20:05:06 +08:00
uye
faf1db9b20 ai: 赛博道长 2026-05-12 19:37:26 +08:00
uye
eb663f9fb8 chore: 调整描述 2026-05-12 19:26:11 +08:00
uye
2d5b2110f5 perf: 干员识别与仓库识别支持虚拟化,大幅提高首次加载速度 (#16486)
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>
2026-05-12 18:28:20 +08:00
Status102
60470006c5 Release v6.9.5 (#16575)
## 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>
2026-05-12 11:45:10 +08:00
github-actions[bot]
3516749cf1 docs: Auto Update Changelogs of v6.9.5 (#16576)
* docs: Auto Generate Changelog of Release v6.9.5

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-12 11:45:00 +08:00
status102
b9274e1904 perf: Wpf 新配置修改日志记录等级提升至 Info 2026-05-12 11:38:57 +08:00
status102
9dcfeb28fd rft: 自动战斗拆出导航 2026-05-12 11:38:36 +08:00
uye
e21a6630f4 Release v.6.9.4 (#16554)
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>
2026-05-12 03:21:25 +08:00
uye
fccaf06d6d docs: Update CHANGELOG for version 6.9.4
Updated changelog for version 6.9.4 with new features, improvements, fixes, and documentation updates.
2026-05-12 03:00:30 +08:00
github-actions[bot]
c99f05fbd9 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25690745565
[skip changelog]
2026-05-11 18:56:45 +00:00
HY
4ed401f1f4 chore: 繁中服「快速放入線索」與「一鍵贈送重複線索」 (#16562) 2026-05-12 02:55:28 +08:00
uye
c9c8e9751d chore: Lucky 的概率改为 0.0799% 2026-05-12 02:36:34 +08:00
uye
6119232486 chore: 使用 PC 端时不传账号 2026-05-12 01:57:45 +08:00
uye
c9085e7d23 ai: 增加 issue 分析知识库 2026-05-11 21:59:31 +08:00
HY
5814f1a6ca fix: 調整繁中服部分幹員名稱 OCR (#16561) 2026-05-11 21:28:56 +08:00
Constrat
c59397b377 fix: Notification icon 2026-05-11 14:43:56 +02:00
Constrat
cccbef1637 ci: fix icon post design structure change 2026-05-11 14:38:19 +02:00
CC-creator2026
1bcafbc718 fix: 繁中服肉鴿薩卡滋事件辨識 聚思成塔 (#16541)
fix: 繁中服薩卡滋事件辨識 "聚思成塔"

繁中服薩卡滋事件辨識 "聚思成塔"
會辨識成 "緊思成塔"

謝謝@momomochi987大佬提出建議
2026-05-11 10:26:41 +08:00
github-actions[bot]
c322b532be chore: Auto Templates Optimization
Triggered by 532e775359

[skip changelog]
2026-05-11 02:21:13 +00:00
Manicsteiner
532e775359 chore: restore JP StageAnnihilation.png 2026-05-11 10:20:17 +08:00
status102
8780642041 fix: LogWarn 等宏在 Release 下依旧输出scope导致额外间隔 2026-05-11 10:16:44 +08:00
github-actions[bot]
a1115031c0 chore: Auto Templates Optimization
Triggered by dad687c360

[skip changelog]
2026-05-11 01:29:56 +00:00
HX3N
dad687c360 chore: YostarKR PV minigame 2026-05-11 10:28:05 +09:00
github-actions[bot]
d3809b5b83 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25639990939
[skip changelog]
2026-05-10 21:17:25 +00:00
travellerse
b7da52dbe8 fix: 修复通宝交换/投钱任务链以适配交换通宝/投钱后获得藏品的情况 (#16553)
* fix: 修复通宝交换任务链

* fix: 修复重新投钱任务链

* fix: 更新重新投钱和交换通宝的状态机图参见信息

* fix: potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 01:48:35 +08:00
github-actions[bot]
fca1966320 chore: Auto Update Game Resources - 2026-05-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25635302243

[skip changelog]
2026-05-10 17:38:26 +00:00
github-actions[bot]
f3424510a2 chore: Auto Update Game Resources - 2026-05-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25634520722

[skip changelog]
2026-05-10 17:00:52 +00:00
Constrat
ce14b73f23 feat: use v2 version of icons (#16556)
* feat: use v2 version of icons

* docs: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 00:01:51 +08:00
Manicsteiner
80d4856901 chore: fix JP time ocr (#16557) 2026-05-10 23:59:45 +08:00
Manicsteiner
48243c1990 chore: YostarJP PV templates and ocr (#16505)
## Summary by Sourcery

为新的与 PV 相关的自动化更新 YoStarJP 肉鸽和 PV 任务配置。

增强内容:
- 调整 YoStarJP 的 JieGarden 肉鸽任务配置。
- 优化 YoStarJP 的基础肉鸽任务设置。
- 更新 YoStarJP 的 PV 关卡任务定义,以支持新的 PV 流程。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update YoStarJP roguelike and PV task configurations for new PV-related
automation.

Enhancements:
- Adjust JieGarden roguelike task configuration for YoStarJP.
- Refine base roguelike task settings for YoStarJP.
- Update PV stage task definitions to support new PV flows in YoStarJP.

</details>
2026-05-10 21:54:50 +08:00
Constrat
3f6fa475ff perf: optimize templates 2026-05-10 12:26:25 +02:00
Constrat
5960bcff7f chore: EN PV minigame 2026-05-10 12:26:20 +02:00
ce271403b9 fix: 外部通知设置界面调整 (#16552) 2026-05-10 16:47:16 +08:00
travellerse
2239a47229 fix: 界园肉鸽投资模式也启用通宝插件 (#16551)
fix: 界园肉鸽通宝拾取/交换不受 InvestWithMoreScore 限制
2026-05-10 16:41:05 +08:00
github-actions[bot]
28f588ec87 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25612950686
[skip changelog]
2026-05-09 22:04:42 +00:00
uye
5473b1ba94 fix: 修复窗体关闭过程中再次启动时报“关闭期间无法设置可见性或调用 Show/Close”的异常
fix #16542
2026-05-10 01:32:36 +08:00
uye
8815af5533 i18n: 修改手动输入关卡名的悬浮描述 2026-05-09 23:48:42 +08:00
uye
11e0836aa0 feat: 支持使用 -Normal/-Hard 切换 常规/险地 难度 2026-05-09 23:29:19 +08:00
AnnAngela
6b5c8af57e chore: Add context7.json with URL and public key 2026-05-09 23:28:49 +08:00
CC-creator2026
eb3d386014 fix: 繁中服肉鴿辨識 (#16535)
* fix: 繁中服界園關卡辨識 邙山地方志

繁中服界園關卡辨識 "邙山地方志"
會辨識成 "亡山地方志"

* fix: 繁中服界園通寶辨識 厲-恣狂情

繁中服界園通寶辨識 "厲-恣狂情"
會辨識成 "厲-憑狂情"

* fix: 繁中服薩卡滋事件辨識 魂靈見聞:以血還血

繁中服薩卡滋事件辨識 "魂靈見聞:以血還血"
會辨識成 "魂靈見聞:以血還血》"
2026-05-09 22:03:36 +08:00
uye
6c9b907ffe fix: 修复删除 debug 截图时因文件被占用导致应用闪退的问题 2026-05-09 22:01:04 +08:00
uye
1cd98d5c21 chore: 生成日志压缩包时的缓存目录改为本地 reports 目录 2026-05-09 21:50:25 +08:00
Constrat
c0e82a346e fix: IS6 encounter trailing o and -
fix #16525
2026-05-09 12:40:25 +02:00
github-actions[bot]
083e4338f4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25580151885
[skip changelog]
2026-05-08 21:23:20 +00:00
uye
0e4d577add chore: 提前最小截图间隔的检查,小于间隔时跳过识别 2026-05-08 22:32:40 +08:00
HY
8bc39a22f5 docs: update zh-tw preview image (#16517) 2026-05-08 18:25:30 +08:00
github-actions[bot]
e529e5d934 chore: Auto Update Game Resources - 2026-05-08
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25545810041

[skip changelog]
2026-05-08 08:36:03 +00:00
March7th-OvO
d0f57f11c8 fix(wpf): 远程控制启动任务未记录开始时间 (#16522)
## 摘要

修复远程控制运行时完成弹窗的时长显示不正确的问题。

正常的 GUI 启动路径在 `AsstStart()` 成功后,会刷新 `AsstProxy.StartTaskTime`,但远程控制的
`LinkStart()` 路径没有。因此,完成弹窗可能会复用已过时的时间戳,并显示出类似 `16h` 这样不正确的时长。

## 修改内容

在以下文件中,于 `AsstStart()` 成功执行的分支里,添加 `Instances.AsstProxy.StartTaskTime =
DateTimeOffset.Now;`:

`src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs`

## 相关 issue

关闭 #16518

## Summary by Sourcery

Bug Fixes:
- 通过在远程控制的任务开始运行时设置 `StartTaskTime`,纠正完成弹出窗口的持续时间。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Correct completion popup duration by setting StartTaskTime when
remote-controlled tasks start running.

</details>
2026-05-08 12:03:34 +08:00
AnnAngela
1a848c4416 docs: 更新 wiki 文档,增强内容结构与描述
- 修改了多个 wiki 页面内容,确保使用简体中文,并优化了各部分的描述与结构。
- 增加了关于任务定义、资源加载、系统架构等方面的详细说明,以提升文档的可读性和实用性。

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 10:24:33 +08:00
github-actions[bot]
ef96d2828b chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25522707840
[skip changelog]
2026-05-07 21:21:32 +00:00
uye
8a1ceafaa0 fix: 部分成就分期错误 2026-05-08 03:20:10 +08:00
HY
48e007035f chore: 繁中服界園肉鴿 DLC1 & sss 9 炭火安保派駐 (#16516)
* chore: 繁中服界園肉鴿 DLC1

* chore: sss9 保全派駐
2026-05-08 00:11:27 +08:00
HY
38c5e74404 chore: 繁中服「界園」主題與「齊聚」主題 (#16515) 2026-05-08 00:10:50 +08:00
Status102
77d6ac7118 Release v6.9.3 (#16513)
趁着没新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>
2026-05-07 20:00:48 +08:00
uye
d63e6d5d8d docs: Update CHANGELOG for version 6.9.3
Updated changelog for version 6.9.3 with new features, improvements, and fixes.
2026-05-07 19:58:11 +08:00
status102
5b8ae926c2 fix: Analyzer执行前未检查m_roi是否未空 2026-05-07 19:34:21 +08:00
github-actions[bot]
8289328484 chore: Auto Update Game Resources - 2026-05-07
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25492702308

[skip changelog]
2026-05-07 11:22:20 +00:00
uye
b117ace40e fix: 修复小游戏界面的开始按钮在连接模拟器失败时仍然发送开始信号 2026-05-07 18:53:03 +08:00
Manicsteiner
1efa4e2574 chore: YostarJP PV templates and ocr 2026-05-07 10:22:32 +08:00
github-actions[bot]
54e9bc97b9 chore: Auto Update Game Resources - 2026-05-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25456822699

[skip changelog]
2026-05-06 19:36:55 +00:00
uye
112b242020 feat: 优先使用更新包中的 updater 2026-05-06 21:51:15 +08:00
uye
792214af34 feat: 添加因为缺少 MAA.Updater.exe 导致更新失败的弹窗提示 2026-05-06 21:33:58 +08:00
github-actions[bot]
5295f63a27 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25402988047
[skip changelog]
2026-05-05 21:23:27 +00:00
status102
728f9ca077 fix: 自动战斗进入等待过长
#16391
2026-05-06 03:16:23 +08:00
status102
22f3175b42 fix: OF-1战斗后等待过长导致部分后续流程失败
#16444
2026-05-06 02:15:22 +08:00
status102
4bc96d57da perf: 自动战斗结束增加LoadingIcon等待项 2026-05-06 02:15:22 +08:00
uye
1d60c2363b chore: 调整 global.json 文件创建时机
[skip changelog]
2026-05-06 00:37:18 +08:00
uye
be568fbc1e perf: 优化进度显示
[skip changelog]
2026-05-06 00:28:24 +08:00
uye
505c8e9d10 fix: 修复部分成就判断条件错误 2026-05-06 00:04:17 +08:00
uye
26972c2769 chore: local-install 使用 ci 同款处理方法 2026-05-05 23:55:24 +08:00
Manicsteiner
3c88f16dde docs: update JP preview image (#16485) 2026-05-05 23:46:22 +08:00
uye
70235d7fd5 feat: fake update
[skip changelog]
2026-05-05 23:34:59 +08:00
github-actions[bot]
b38e1b46ba chore: Auto Templates Optimization
Triggered by 4083e21521

[skip changelog]
2026-05-05 12:58:42 +00:00
uye
4083e21521 docs: 更新 README 预览图片 2026-05-05 20:57:45 +08:00
uye
1d909ea38a feat: 更新 153-4 基建作业 2026-05-05 18:37:35 +08:00
Status102
e5365c1447 Release v6.9.2 (#16473)
## 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>
2026-05-05 14:47:10 +08:00
github-actions[bot]
4e35863be0 docs: Auto Update Changelogs of v6.9.2 (#16474)
* docs: Auto Generate Changelog of Release v6.9.2

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-05 14:46:59 +08:00
ocsin1
9d5ab6d7c5 docs: 添加 DLL 注入问题解决方案并优化 FAQ 描述 (#16404)
* docs: 添加 DLL 注入问题解决方案并优化 FAQ 描述

* docs: 大小写和 pangu

修正了 MAA 启动时 DLL 注入问题的描述,更新了链接格式。

^以上 Commit Message 是 Copilot 帮我写的

---------

Co-authored-by: Rbqwow <55343783+Rbqwow@users.noreply.github.com>
2026-05-05 09:52:39 +08:00
github-actions[bot]
469c1e670c chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25344285069
[skip changelog]
2026-05-04 21:25:03 +00:00
status102
c4c15ef103 rft: 剿灭入口检测支持代理卡耗尽情况 2026-05-05 05:01:59 +08:00
status102
3c20e21182 ci: 限定.Net SDK为10.0.203 2026-05-05 04:03:08 +08:00
status102
9a2d43ca7e fix: 开始唤醒流程 2026-05-05 03:27:45 +08:00
uye
f831d19c57 Release v6.9.1 (#16433)
## 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>
2026-05-05 02:16:43 +08:00
github-actions[bot]
d345466992 docs: Auto Update Changelogs of v6.9.1 (#16434)
* 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>
2026-05-05 02:15:26 +08:00
status102
4dc9a4ed27 chore: rename 2026-05-05 01:52:13 +08:00
Status102
736bab5427 rft: 重构战斗失败识别, 顺带支持沙盘战斗结束 (#16449) 2026-05-05 01:51:02 +08:00
status102
a8ceb64f16 fix: 理智药识别支持3位数库存 2026-05-05 01:49:52 +08:00
github-actions[bot]
3d4a3eb578 chore: Auto Update Game Resources - 2026-05-04
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25333746690

[skip changelog]
2026-05-04 17:40:48 +00:00
status102
38494fa461 perf: 给WSA也加个 2026-05-05 01:31:16 +08:00
status102
e3570d17e8 fix(wpf): 仅在应用宝连接时额外指定InstanceOption级的ClientType 2026-05-05 01:27:40 +08:00
uye
4c9c1d12ce feat: 增加使用完整包更新时的强制提示,安装在根目录时禁止启动与更新 (#16435)
* feat: 增加使用完整包更新时的强制提示

* feat: 安装在根目录时阻止启动与更新

* feat: 更新检测排除 achievement 与 background

* perf: 优化日志记录,优化根目录判断逻辑

* feat: 禁止在部分特殊目录的根目录启动

* chore: warning

* perf: 优化本地安装脚本

* perf: 优化 temp 文件夹检测
2026-05-05 01:03:33 +08:00
Roland125
a0588e7da6 fix: 绿票商店稳定性提升 (#16369)
fix: 添加1层ocr识别失败时备用逻辑
fix:2层只购买公招券和单抽券
2026-05-05 01:01:56 +08:00
uye
0404959bd1 fix: 调整信用商店识别区域,修复 4 位数信用识别问题
close #16395

Co-authored-by: ZiyinLin <xuanbing1464129430@gmail.com>
2026-05-05 00:55:52 +08:00
status102
a387d5f8a4 perf: 自动编队Elite 图标匹配失败时认为elite = 0 2026-05-04 23:25:09 +08:00
uye
d913335886 fix: 编队时无精英化的干员练度会被当成 <-1, -1>
fix: #16464
2026-05-04 23:07:38 +08:00
Roland125
08f71fcfc0 fix: 修改recruit_one的返回值,适配更精细的招募计数(#16355) (#16371) 2026-05-04 22:53:04 +08:00
uye
cac4c27bbc feat: pc 跳过数据上报 2026-05-04 20:40:02 +08:00
status102
3ef75d587c chore: remove debug code 2026-05-04 20:19:20 +08:00
Roland125
4a14245283 fix: 修复剿灭结算时,识别不到合成玉基线 (#16460)
<img width="508" height="175" alt="FABI(C}_VIB}7@N5KI51H R"
src="https://github.com/user-attachments/assets/1bb987c5-d0cc-41cd-92da-d31045490028"
/>
这是报告者的掉落图

<img width="630" height="166" alt="628X1BM7GI6$8 4(T%2}Q$0"
src="https://github.com/user-attachments/assets/8ecc8d6d-f44b-4540-93bd-8b73ef18f854"
/>
这是我本机的掉落图

明显看得出我本机的图,报酬二字上方那根线亮一些。

由于在我本机无法复现识别BUG,所以我只能用理论计算值来推断一个阈值。

根据反馈者的图提取出来的RGB值,算法计算出来的灰度是38.7(左)/44(右)。

均低于45的阈值,所以不可能有100像素长的线,于是合成玉基线被过滤掉了。

识别不到基线就不会识别对应的掉落物,就会触发无合成玉掉落导致的退出。

## Summary by Sourcery

将针对湮灭阶段的可选掉落识别处理置于仅调试用的宏之后进行控制,并在启用时将其接入自定义任务。

Enhancements:
- 当启用调试宏时,允许 `StageDropsTaskPlugin` 响应通用的动作结束任务。
- 在 `CustomTask` 中启用可选的 `StageDropsTaskPlugin` 注册,用于调试掉落识别问题。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Gate optional drop-recognition handling for annihilation stages behind a
debug-only macro and wire it into custom tasks when enabled.

Enhancements:
- Allow StageDropsTaskPlugin to respond to generic end-of-action tasks
when a debug macro is enabled.
- Enable optional registration of StageDropsTaskPlugin in CustomTask for
debugging drop recognition issues.

</details>
2026-05-04 19:35:35 +08:00
status102
b3122fbd94 fix: 肉鸽投资存款检测校验数据 2026-05-04 19:15:20 +08:00
uye
5445962a7b docs: 补全连接阶段的 ClientType 参数说明 2026-05-04 19:13:52 +08:00
Roland125
20d257f6f4 fix: 更新剿灭入口的图片资源 (#16458)
* fix:更新剿灭入口的图片资源

* fix: 重新截

---------

Co-authored-by: Saratoga-Official <1819530756@qq.com>
2026-05-04 13:43:38 +08:00
Saratoga-Official
7cc6cbf5ce fix: 凯尔希识别
fix #16455
2026-05-04 10:05:17 +08:00
github-actions[bot]
8f425bebf1 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25290991448
[skip changelog]
2026-05-03 21:16:07 +00:00
uye
aaa0818c45 fix: 修复设置指引-连接设置-每次重新检测的提示块隐藏错误 2026-05-04 03:26:50 +08:00
status102
2cb0be8630 fix: typo 2026-05-04 01:52:44 +08:00
status102
4ff7c5f01d fix: 自动战斗多作业模式导航retry_time 2026-05-04 00:59:13 +08:00
status102
0a5b8e66a7 perf: 理智药到期时间OCR高度增加 2026-05-04 00:58:35 +08:00
fireflysentinel
e644e10d80 fix: PixelAnalyzer::set_gray_ub 复制粘贴笔误写到了 m_ub (cv::Scalar) 而非 m_gray_ub
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 12:45:53 +08:00
fireflysentinel
c75eeb93bc fix: RoguelikeRecruitSupportAnalyzer::analyze HH:MM:SS substr 偏移导致 hour 永为 0、sec 严重低估
```cpp
boost::regex_search(result.text, match_results, boost::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))
const auto& match_str = match_results[0].str();              // 8 字节 "HH:MM:SS"
const auto& hour = std::atoi(match_str.substr(2).c_str());   // ":34:56" → 0
const auto& min  = std::atoi(match_str.substr(3, 2).c_str());// "34" ✓(碰巧)
const auto& sec  = std::atoi(match_str.substr(7, 2).c_str());// "6"   → 个位
```

`"12:34:56"` 字节索引 `0=1, 1=2, 2=:, 3=3, 4=4, 5=:, 6=5, 7=6`:
- `substr(2)` 从冒号开始,atoi 立即停 → `hour = 0`
- `substr(3, 2)` 偶然命中 `"34"` → `min = 34` ✓
- `substr(7, 2)` 只有最后 1 字节 `"6"` → `sec` 是个位数字而非两位

正确偏移应为 `(0,2)`、`(3,2)`、`(6,2)`。

不是游戏机制:regex 用的就是 `[0-9]{2}:[0-9]{2}:[0-9]{2}`(ASCII 半角冒号),
匹配成功时 `match_str` 必然是严格 8 字节 `HH:MM:SS` 格式;如果游戏改成
`12时34分56秒` 这种本地化格式,regex 根本不会匹配,函数会在 line 142 提前
`return false`,根本走不到这段 substr 代码。所以 substr 的偏移只看 8 字节
ASCII 格式本身。

实际场景:招募刷新 CD 比如 `01:23:45`,当前算 `0*3600 + 23*60 + 5 = 1385`
秒,正确应是 `5025` 秒——少算近 1 小时。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 12:44:56 +08:00
fireflysentinel
ef0e4958bf fix: RoguelikeFoldartalGainTaskPlugin::gain_stage_award || 链恒为 true 导致装备误入密文板列表; correct_rect计算顺序
```cpp
if (foldartal != "雷达" || "留声机" || "景观" || "LUD" || "踢脚" || "自走车")
```

C++ 把这串解析成 `(foldartal != "雷达") || ("留声机") || ("景观") || ...`,
后面 5 个字符串字面量是 `const char*`,非空指针视为 `true`,整个表达式恒真。
注释 `// 深入调查调查装备也使用同一个入口,先分类` 已经说明意图是排除这 6
个装备名,不让它们被 `gain_foldartal` 当密文板存入 `foldartal_list`。

不是游戏机制:这 6 个名字是萨米肉鸽"深入调查"事件的装备奖励(不是密文板),
跟密文板使用流程不应该混在一起;注释自陈"先分类"明确意图是过滤,
不是有意把所有 OCR 文字都收进来。

改成 `&&` 链做逐项排除。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 11:37:04 +08:00
status102
cfa3fedb0c fix: correct_rect在rect负方向完全越界时依旧输出非0宽度结果 2026-05-03 11:13:21 +08:00
status102
3b909f3959 chore: log迁移
[skip changelog]
2026-05-03 03:31:40 +08:00
Saratoga-Official
6d18eaa47c fix: GALLUS²识别 2026-05-03 02:31:23 +08:00
dependabot[bot]
0518c61e87 ci: bump yogeshlonkar/wait-for-jobs from 0 to 1 in /.github/workflows in the github-actions group (#16431)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-02 22:48:32 +08:00
status102
925ff331a1 fix: 临期理智药使用输出遗漏时间 2026-05-02 20:40:55 +08:00
status102
65a5566c9e fix: 理智药剩余日期识别前缀非数字字符移除 2026-05-02 19:41:53 +08:00
status102
a4e2b12e06 perf: 使用临期药品时, 如果存在时效识别失败的药品则取消本次吃药 2026-05-02 18:58:23 +08:00
status102
a7548d7612 fix: 移除不再生效的日服理智药roi覆盖 2026-05-02 15:02:57 +08:00
status102
a5d95e5fbe fix: 开始唤醒过早开始切换账号 2026-05-02 15:02:57 +08:00
1b2c
e83e49f61b fix: 部分场景下无法自动启动游戏 (#16422)
943a798b38 在 AdbConnectionContext::replace_cmd 的统一替换表中加入了 [PackageName],
导致 m_adb.start / m_adb.stop 在 connect 阶段就被提前替换。当调用方未通过
AsstSetInstanceOption(ClientType, ...) 设置 client_type 时(如 maa-cli 等不感知该
新选项的第三方调用方),m_conn_ctx.package_name 为空字符串,m_adb.start 中的
[PackageName] 被替换为空,后续 start_game(client_type) 内的运行时替换沦为 no-op,
最终启动命令缺失包名导致启动游戏失败。

将 [PackageName] 从统一替换表移除,恢复其作为运行时参数的语义;connect 阶段唯一
需要 [PackageName] 的位置(Androws 的 displayId 查询)改为就地显式替换。

Close #16392

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 13:24:54 +08:00
uye
bdffc8cd1a Release v6.9.0 (#16400)
## Summary by Sourcery

为 v6.9.0 版本发布准备 UI 样式和设置 XAML 文件。

增强内容:
- 更新 `CheckComboBox` 共享样式资源。
- 调整外部通知设置用户控件的布局或绑定。
- 调整 Roguelike 任务队列设置用户控件的布局或绑定。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare UI styles and settings XAML files for the v6.9.0 release.

Enhancements:
- Update CheckComboBox shared style resources.
- Adjust external notification settings user control layout or bindings.
- Adjust roguelike task queue settings user control layout or bindings.

</details>
2026-05-02 12:14:58 +08:00
uye
9227357ea7 docs: Highlight 2026-05-02 12:13:46 +08:00
uye
540c8acbf5 perf: 优化伤害遮挡下的技能图标识别 2026-05-02 11:33:42 +08:00
status102
1c05ff9bc8 Revert "perf: 自动编队预编队后检查选中情况"
This reverts commit 2a5cdf24e7.
2026-05-02 02:49:49 +08:00
status102
6c6117ddb2 feat: 进入快捷编队页后校验清空状态 2026-05-02 02:49:49 +08:00
uye
013c899d34 perf: 优化 DEBUG_skill_ready 判断 2026-05-02 00:40:06 +08:00
uye
0df451b7d9 chore: 技能得分低也需要最小截图间隔 2026-05-01 23:47:11 +08:00
github-actions[bot]
0fab39caff chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25220762971

[skip changelog]
2026-05-01 15:40:16 +00:00
uye
73f8ebb8f1 docs: changelog 2026-05-01 23:29:40 +08:00
uye
a99294ef90 fix: 生息演算 5.1 更新后无法使用无存档刷分 (#16402)
还没测过,不知道好不好使

## 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>
2026-05-01 23:03:55 +08:00
Constrat
e884491a93 perf: optimize templates yostarkr SPA 2026-05-01 13:28:59 +02:00
Constrat
df0e271611 chore: YostarEN SPA 2026-05-01 13:28:46 +02:00
github-actions[bot]
edd564088b chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25208910288

[skip changelog]
2026-05-01 09:02:14 +00:00
github-actions[bot]
2182951ed0 chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25205158187

[skip changelog]
2026-05-01 06:33:13 +00:00
uye
cc0163edd9 ci: 调整资源更新环境 2026-05-01 14:31:27 +08:00
uye
a6523b01d5 ci: 任务排序支持 jsonc 2026-05-01 14:26:20 +08:00
uye
a8245441a3 chore: 统一 CheckComboBox 样式 2026-05-01 13:35:10 +08:00
uye
a34da437d0 fix: CheckComboBox 不显示标题 2026-05-01 13:24:22 +08:00
uye
094ff47873 fix: 3 星 tag 标题显示异常 2026-05-01 13:24:21 +08:00
uye
ffd98e800e Release v6.9.0-beta.3 (#16397)
## 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>
2026-05-01 13:01:22 +08:00
uye
d504e074ce docs: Update CHANGELOG for v6.9.0-beta.3 release 2026-05-01 12:58:05 +08:00
uye
c7d1fe686d fix: 修复小游戏列表中下拉框偶现无法展开的问题 2026-05-01 12:57:42 +08:00
Shawn Sun
cf30d71067 fix: 修复蓝叠模拟器关闭失败的问题 (#16388)
fix: 修复模拟器关闭失败的问题

优化 EmulatorHelper 逻辑并升级 MailKit 依赖

优化了 EmulatorHelper 的异常处理和分支逻辑,提升对不同 BlueStacks 版本的识别与日志记录。将 MailKit 包从 4.15.1 升级至 4.16.0。
2026-05-01 12:43:30 +08:00
Copilot
2216175e5c feat: 适配七周年许愿墙 2026-05-01 12:24:29 +08:00
uye
a91286f41d perf: 大幅提升技能就绪识别准确率,优化技能截图保存策略 (#16393)
* feat: 技能截图默认保存 50 张,如存在 DEBUG_skill_ready.txt 时无限存储

* feat: maa 迎来大变

* fix: 修复技能截图保存的目录处理与并发安全

* perf: 写文件在锁外执行,init 在锁内执行
2026-05-01 12:14:12 +08:00
HX3N
2061050857 chore: YostarKR MiniGame SPA (#16364)
* i18n: kr

* chore: placeholder

* chore: template

* chore: remove GiveUp.png
2026-04-30 13:40:16 +02:00
Rememorio
a20351fcf1 fix: lower YoStarJP office mini threshold (#16390)
Made-with: Cursor
2026-04-30 16:25:04 +08:00
github-actions[bot]
84152a88f3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25134605560
[skip changelog]
2026-04-29 21:24:20 +00:00
uye
9adf423aa4 Release v6.9.0-beta.2 (#16378)
## 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>
2026-04-30 00:30:15 +08:00
uye
426c964e59 docs: Add v6.9.0-beta.2 to CHANGELOG 2026-04-30 00:29:26 +08:00
uye
b1659e0a70 fix: 升级结算时闪退 2026-04-30 00:22:12 +08:00
uye
ef614156d0 Release v6.9.0-beta.1 (#16373)
## 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>
2026-04-29 22:03:25 +08:00
github-actions[bot]
d56ecf73b9 docs: Auto Update Changelogs of v6.9.0-beta.1 (#16374)
* 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>
2026-04-29 21:58:01 +08:00
uye
b4429c4b6f feat: 重复启动时通过跨进程事件激活主窗口而非弹窗警告 (#16363)
* feat: 重复启动时通过跨进程事件激活主窗口而非弹窗警告

* perf: GetSingleInstanceKey 改用路径哈希
2026-04-29 21:33:08 +08:00
github-actions[bot]
719d04f53d chore: Auto Templates Optimization
Triggered by 5f2d547998

[skip changelog]
2026-04-29 13:22:47 +00:00
Manicsteiner
5f2d547998 chore: YostarJP MiniGame SPA (#16372) 2026-04-29 21:22:22 +08:00
Roland125
e9d8f6a844 fix: 修复剿灭后出现升级界面,导致无法继续任务的问题(#16255) (#16370) 2026-04-29 21:20:35 +08:00
status102
4215a05371 perf: 合并简化任务状态 2026-04-29 19:44:22 +08:00
github-actions[bot]
dd7ec5cd20 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25078413821
[skip changelog]
2026-04-28 21:24:51 +00:00
uye
a62258f74e feat: 在关卡没解锁代理/剿灭没使用全权代理时报错停止 (#16357)
* feat: 在关卡没解锁代理/剿灭没使用全权代理时报错停止

* chore: 添加最大循环次数
2026-04-28 23:45:24 +08:00
github-actions[bot]
de4476b545 chore: Auto Templates Optimization
Triggered by e6b3223e29

[skip changelog]
2026-04-28 12:13:55 +00:00
Roland125
e6b3223e29 feat: 增加 保存代理指挥记录 支持; 新增合成玉掉落检查, 0掉落结束 (#16356)
* fix: 增加在剿灭代理记录更新界面,点击确认按钮的任务和图片资源
fix: 增加剿灭模式下,对合成玉的掉落检测。不掉落合成玉时,结束战斗任务

* perf: 使用代理卡时不会更新记录

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-04-28 20:12:41 +08:00
github-actions[bot]
be77d7b1bc chore: Auto Update Game Resources - 2026-04-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25046601559

[skip changelog]
2026-04-28 10:04:06 +00:00
status102
34d1f8413a feat(wpf): 掉落物识别额外输出剿灭进度 2026-04-28 14:05:15 +08:00
status102
04a793e6ce rft: ProcessTask匹配命中状态更新统一化 2026-04-28 13:35:50 +08:00
status102
5619aefa10 fix: 干员使用技能间隔未能生效 2026-04-28 13:22:12 +08:00
github-actions[bot]
d2ee76d2f6 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25020210469
[skip changelog]
2026-04-27 21:23:04 +00:00
uye
8f1b7fd087 feat: 新增 get_last_matched_task_name 方法;成功命中新节点时与 get_last_task_name 一致,在进入下一轮匹配后若未再命中新节点时,仍保留最近一次成功命中的任务名,避免误取空值 2026-04-28 00:49:06 +08:00
uye
ea22cbab4a chore: 支持打包日志文件后 GitHub 上传日志不再需要先关闭 MAA 2026-04-27 22:37:34 +08:00
dependabot[bot]
f733530b67 ci: bump the github-actions group in /.github/workflows with 2 updates (#16344)
Bumps the github-actions group in /.github/workflows with 2 updates: [apple-actions/import-codesign-certs](https://github.com/apple-actions/import-codesign-certs) and [apple-actions/download-provisioning-profiles](https://github.com/apple-actions/download-provisioning-profiles).


Updates `apple-actions/import-codesign-certs` from 6 to 7
- [Release notes](https://github.com/apple-actions/import-codesign-certs/releases)
- [Commits](https://github.com/apple-actions/import-codesign-certs/compare/v6...v7)

Updates `apple-actions/download-provisioning-profiles` from 5 to 6
- [Release notes](https://github.com/apple-actions/download-provisioning-profiles/releases)
- [Commits](https://github.com/apple-actions/download-provisioning-profiles/compare/v5...v6)

---
updated-dependencies:
- dependency-name: apple-actions/import-codesign-certs
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: apple-actions/download-provisioning-profiles
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 15:12:47 +08:00
github-actions[bot]
33885b1294 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24967148430
[skip changelog]
2026-04-26 21:12:26 +00:00
uye
893793efff chore: 调整完整后 无其他 MAA 选项绑定逻辑,不再强制勾选退出模拟器 2026-04-27 02:02:13 +08:00
status102
8161976869 fix: 干员仓储识别手动指定术兔
临时修复
2026-04-27 01:37:56 +08:00
Jin Zhaonian
60cbc68e59 fear: PC 端支持 完成后退出明日方舟 (#16351)
* fix: 修复pc端任务完成后勾选自动关闭游戏但无法关闭的问题

* fix: IsWindow检查与WM_CLOSE关闭

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-27 01:36:19 +08:00
uye
b65b37fba8 chore: 调整选项 IsEnabled 2026-04-27 01:35:10 +08:00
Alex Gu
7d3f8bfa2d fix: 若干正确性问题修正(null check / race / clamp / retry 等 9 处) (#16332)
## 概述

代码 review 发现的一批正确性问题批量修正,都是 `src/MaaCore` 下单行 / 局部 logic 级别的
bug,彼此独立,按严重度从高到低逐条 commit。没有功能改动、没有 API 变化、没有 breaking behavior。

每个 commit 单独对应一条 bug,便于逐条 review 或按需
revert。下表也按严重度从高到低排序,附上「原问题」与「修法理由」。

### 发现来源

使用 Claude Code 新版 `/ultrareview` 多 agent review 扫了 `src/MaaCore` 源码(~58k
行),人工逐条核对后提 PR。另有 2 条(AvatarCacheManager 并发保护 / CopilotConfig
默认值语义)涉及设计决策或 breaking change,已单独提 issue 讨论,不在本 PR 内。

---

## Fix 列表(按严重度排序)

### 1. `Controller::back_to_home` 空指针解引用崩溃 — HIGH

**位置**:`src/MaaCore/Controller/Controller.cpp:137`

**原问题**:
```cpp
bool asst::Controller::back_to_home()
{
    m_controller->back_to_home();   // 无 null 检查
    return true;
}
```
未连接设备时 `m_controller == nullptr`,此处直接 segfault。同文件 `sync_params` /
`start_game` / `stop_game` / `click` 等所有公开方法都有 null 保护(前者用 `if
(!m_controller) return`,后者用 `CHECK_EXIST(m_controller, false)` 宏),**只有
`back_to_home` 漏了**。

**触发路径**:任务运行中 ADB 断连使 `m_controller` 被 reset 成 null → 调度走到"回主页"分支 → 崩溃。

**修法**:函数开头加 `CHECK_EXIST(m_controller,
false);`,与同文件其他方法保持一致。最小改动,零行为变化(未连接时 `back_to_home` 返回 `false` 而不是崩溃)。

---

### 2. `MumuExtras::screencap` reload 之后没有真正重试 — MEDIUM-HIGH

**位置**:`src/MaaCore/Controller/MumuExtras.cpp:54-83`

**原问题**:
```cpp
int ret = capture_display_func_(...);       // 第一次 capture
if (ret) {
    // Try reloading once before giving up.
    if (!reload()) { ... return std::nullopt; }
    if (ret) {                              // ← 检查的是同一个 ret,不是重试之后的
        LogError << "Failed to capture display, but reload before retrying capture was successful." ...;
        return std::nullopt;
    }
}
```
注释承诺"失败时 reload 后重试 capture",但第二个 `if (ret)` 检查的还是第一次调用写入的
`ret`,`capture_display_func_` **从未被重新调用过**。reload 成功或失败都必然返回
`std::nullopt`,注释里的"reload before retrying capture was
successful"日志其实**只是字面,retry 压根没发生**。

**后果**:MuMu 模拟器短暂 capture 失败(内存抖动 / 显示切换)时,原本 reload
应能恢复,但代码从不真正重试,上层看到的永远是「截图失败」。

**修法**:在两个 `if (ret)` 之间加上**真正的**重试:重新调用 `capture_display_func_` 并更新
`ret`。reload 可能改变设备状态,所以 `display_id` 也重新 `get_display_id()`
取一次。失败信息相应改为"Failed to capture display even after reload",语义准确。

---

### 3. `Controller` 中 `d_size` 被 `const static` 固化,分辨率变化后缩放错误 — MEDIUM

**位置**:`src/MaaCore/Controller/Controller.cpp:146` 和 `:438`(两处)

**原问题**:
```cpp
const static cv::Size d_size(m_scale_size.first, m_scale_size.second);
```
C++ 函数内 `static` 局部变量的初始化表达式**仅在第一次进入该函数时执行一次**。首次调用时 `m_scale_size`
的值被固化到 `d_size`,之后用户切换模拟器、改分辨率预设、连接新设备等导致 `m_scale_size` 变化时,**`d_size`
不会更新**。

**后果**:
- `cv::resize(..., d_size, ...)` 把图缩到错误的目标尺寸 → OCR / 模板匹配的坐标/尺寸都错
- 截图失败兜底路径 `m_cache_image = cv::Mat(d_size, CV_8UC3)` 也分配错误尺寸的空图
- 用户看到各种"识别不到 / 坐标偏移"但不崩溃,**只能通过重启 MaaCore 恢复**

**修法**:去掉 `static`,每次调用重新构造。`cv::Size` 就是两个
`int`,栈上构造基本无开销,不存在性能回归。两处都修。

---

### 4. `PlayToolsController::swipe` 起点钳制没有应用到 `toucher_down` —
MEDIUM-LOW

**位置**:`src/MaaCore/Controller/PlayToolsController.cpp:230`

**原问题**:
```cpp
int x1 = p1.x, y1 = p1.y;                          // 拷贝到局部变量
// ...
if (x1 < 0 || x1 >= width || y1 < 0 || y1 >= height) {
    x1 = std::clamp(x1, 0, width - 1);             // 只钳制了局部 x1/y1
    y1 = std::clamp(y1, 0, height - 1);
}
// ...
toucher_down(p1);                                  // ← 仍用原始的 const Point& p1
```
注释"起点不能在屏幕外,但是终点可以"已经说明了钳制意图,但钳制结果只存在局部 `x1/y1`,`toucher_down(p1)`
使用的还是未钳制的原始 `p1`。后续 `progressive_move` 用 `x1/y1` 所以中段 swipe 在屏幕内,**但首个
touch-down 事件发到屏幕外坐标**,iOS PlayTools 侧多半会被丢弃或忽略 → 整个手势无效。

**修法**:`toucher_down(p1)` → `toucher_down({ x1, y1 })`,用已钳制的坐标构造临时
`Point`。与同文件下方 `toucher_move({ x, y })` 的风格一致。

---

### 5. `Assistant::m_task_id` 非原子 static 导致跨实例数据竞争 — MEDIUM-LOW

**位置**:`src/MaaCore/Assistant.h:214`(声明)+
`src/MaaCore/Assistant.cpp:295-296`(使用)

**原问题**:
```cpp
// Assistant.h
inline static TaskId m_task_id = 0;                     // 进程级 static,非 atomic
mutable std::mutex m_mutex;                             // 实例级 mutex
inline static std::atomic<AsyncCallId> m_call_id = 0;   // 旁证:同文件另一个 static 是 atomic

// Assistant.cpp:295
std::unique_lock<std::mutex> lock(m_mutex);             // 锁的是当前实例的 mutex
int task_id = ++m_task_id;                              // 改的是进程共享的 static
```
`m_task_id` 是 static(**所有 Assistant 实例共享一个内存地址**),但 `m_mutex`
是每个实例各自的锁。两个不同实例并发 `++m_task_id` 时,各自 lock 各自的 mutex,彼此不互斥 ——
**数据竞争**,`++` 对非原子 `int` 是 RMW 三步,可能让两个实例拿到同一个 `task_id`。

单实例客户端(MaaWpfGui、MaaMacGui)触发不了;多实例 + 并发下任务的客户端(命令行批处理 / 自动化测试)会偶现任务 id
冲突,后续 `AsstSetTaskParams` / `AsstStop` 可能误中另一个实例的任务。

旁证:同文件 line 227 的另一个同类 static `m_call_id` 已经声明成
`std::atomic<AsyncCallId>`,一致性也对不上,显然是作者漏改。

**修法**:`TaskId m_task_id` → `std::atomic<TaskId>
m_task_id`。`++m_task_id` 靠 `std::atomic::operator++` 原子化,语法不变。`m_mutex`
原先是为紧跟的 `m_tasks_list.emplace_back` 服务的,继续保留。

---

### 6. `OcrPack::load` 复制粘贴导致 `rec_label` 变化检测用错字段 — LOW-MEDIUM

**位置**:`src/MaaCore/Config/Miscellaneous/OcrPack.cpp:61`

**原问题**:
```cpp
// 前两块都正确:当前保存路径 != 新路径 时才更新
if (exists(det_model_file) && m_det_model_path != det_model_file) { ... }
if (exists(rec_model_file) && m_rec_model_path != rec_model_file) { ... }
// 第三块:应该检查 m_rec_label_path,却写成了 m_rec_model_path
if (exists(rec_label_file) && m_rec_model_path != rec_label_file) {
    m_rec_label_path = rec_label_file;
    m_rec = nullptr;
}
```
模型路径以 `.onnx` 结尾,标签路径以 `.txt` 结尾,`m_rec_model_path != rec_label_file`
**恒为真**(只要标签文件存在)。结果每次调用 `load()` 都会:
- 无效地重新给 `m_rec_label_path` 赋同样的值
- 把 `m_rec` 置空 → 触发下一次 OCR 时 lazy 重载

不会导致正确性崩塌(`check_and_load` 路径会 lazy 重建
`m_rec`),但"路径没变则保留缓存"的设计目的完全失败,且多次 `load()` 会产生不必要的模型重载开销。

**修法**:`m_rec_model_path != rec_label_file` → `m_rec_label_path !=
rec_label_file`,与上面 `det` / `rec_model` 两块的模式对齐。

---

### 7. `RoguelikeStageEncounterConfig` `fallback_choices` 校验写错变量 — LOW


**位置**:`src/MaaCore/Config/Roguelike/RoguelikeStageEncounterConfig.cpp:77`

**原问题**:
```cpp
int option_num = pair_arr[0].as_integer();
if (option_num < 0) { ... return false; }               // 校验 option_num,OK
int choice = pair_arr[1].as_integer();
if (option_num < 0) {                                   // ← 重复检查 option_num
    Log.error(
        std::format(
            "RoguelikeEncounterConfig | callback choice for event {} with {} option(s) is less than zero",
            ...));
    return false;
}
```
错误信息本身已经说明是在校验 `choice`("callback choice ... is less than
zero"),但实际比较的是上面已经保证过非负的 `option_num`,这个 `if` 永远进不去。

**后果**:坏 JSON 中 `[3, -5]` 这类负数 `choice` 能被静默接受,后续
`static_cast<size_t>(-5)` 产生巨大无符号数,作为索引使用时 UB。正常配置不触发,但这条防御校验已名存实亡。

**修法**:第二个 `if` 判断变量改为 `choice`。错误消息中 `option_num` 作为上下文保留(用于打印 option
数量,语义正确)。

---

### 8. `AsstDestroy` 对值传入的形参赋 `nullptr` 是死代码 — TRIVIAL

**位置**:`src/MaaCore/AsstCaller.cpp:98`

**原问题**:
```cpp
void AsstDestroy(AsstHandle handle)
{
    if (handle == nullptr) return;
    delete handle;
    handle = nullptr;       // ← 改的是局部拷贝,对调用方的变量无影响
}
```
`AsstHandle` 按值传入,`handle = nullptr` 只修改本函数作用域的局部拷贝。`delete handle`
已正确销毁对象,这行既没有替调用方置空(要做到需接受 `AsstHandle*`),也不会影响 delete 行为,纯死代码。

**修法**:删掉这行,保持 `delete` 行为不变,避免给读者错误印象。

---

### 9. `AvatarCacheManager.h` 开头两行重复的 `#pragma once` — TRIVIAL

**位置**:`src/MaaCore/Config/Miscellaneous/AvatarCacheManager.h:1-3`

**原问题**:
```cpp
#pragma once

#pragma once        // ← 重复
#include "Config/AbstractResource.h"
```
pragma once 幂等,没有功能影响,但看起来是编辑时的残留。清理即可。

---

## Test plan

- [x] `git diff dev-v2..HEAD --stat`:8 文件 / +18/-11,只有目标修改,无无关改动
- [x] 每条 fix 都有对应的单独 commit,便于逐条 review 或按需 revert
- [x] **本地 macOS arm64 build 通过**:`cmake --preset macos-arm64 && cmake
--build build --config Release` → 203/203 targets 编译链接成功,0 error,修改的 8
个文件 0 warning(全局唯一 1 条 warning 是 `MaaUtils/Logger.cpp` 的 `#pragma
message` 版本信息打印,与本 PR 无关)
- [ ] 单元测试:macOS preset 默认没有编译 test target(`unit_test/MaaCore/` 下仅 1 个
`AlgorithmTest.cpp`,与本 PR 改动的函数无交集),本地 `ctest` 返回 "No tests were
found"。依赖上游 CI 完整矩阵(Linux / Windows / macOS + 各自测试)验证。

## Notes for reviewers

- 每条 fix 的 commit message 都附了原理说明,结合 PR 正文对应条目阅读
- **没有功能性增加**,也**不动任何 public API / ABI**
- 不涉及 resource / JSON 数据文件
- 合并之后建议开一个跟进 issue 讨论 ultrareview 的另外两条 finding(AvatarCacheManager
并发保护、CopilotConfig 默认值语义)—— 这两条需要设计决策,不适合塞进本 PR

---

_PR 发现来源:Claude Code `/ultrareview` 多 agent 扫描后人工复核。_

## Summary by Sourcery

在不改变公共 API 或行为的前提下,修复了控制器、OCR、肉鸽配置以及工具组件中的多处正确性问题。

Bug 修复:
- 在 `Controller::back_to_home` 中增加空指针检查,以防在底层控制器不可用时发生崩溃。
- 确保 `MumuExtras::screencap` 在成功重新加载后确实会重试屏幕捕获,并且能准确记录失败日志。
- 在 Controller 中为缩放后的图像尺寸使用非静态的 `cv::Size`,以便在无需重启的情况下正确响应分辨率变化。
- 对传递给 `PlayTools toucher_down` 的滑动起始点进行限制,确保初始触控事件始终在屏幕范围内。
- 将 Assistant 的进程级任务 ID 计数器改为原子类型,避免在多实例场景下产生数据竞争。
- 修正 `OcrPack` 标签路径变更检测逻辑,使 OCR 模型只在标签文件实际变更时才会重新加载。
- 修复 `RoguelikeStageEncounterConfig` 的回退选项校验逻辑,按预期拒绝负数选项。
- 移除 `AsstDestroy` 中无效的句柄重置代码,该代码试图将值传递参数置空但实际上无效。
- 移除 `AvatarCacheManager.h` 中多余的 `#pragma once`,以清理头文件。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Fix multiple correctness issues across controller, OCR, roguelike
config, and utility components without changing public APIs or
behaviors.

Bug Fixes:
- Add a null check in Controller::back_to_home to prevent crashes when
the underlying controller is unavailable.
- Ensure MumuExtras::screencap actually retries display capture after a
successful reload and logs failures accurately.
- Use a non-static cv::Size for scaled image dimensions in Controller so
resolution changes are respected without restart.
- Clamp the swipe starting point passed to PlayTools toucher_down to
keep initial touch events within screen bounds.
- Make Assistant's process-wide task ID counter atomic to avoid data
races across instances.
- Correct OcrPack label path change detection so OCR models are only
reloaded when the label file actually changes.
- Fix RoguelikeStageEncounterConfig fallback choice validation to reject
negative choices as intended.
- Remove ineffective handle reset code in AsstDestroy that tried to null
a by-value parameter.
- Remove a redundant #pragma once in AvatarCacheManager.h to clean up
the header.

</details>
2026-04-27 00:46:12 +08:00
SherkeyXD
4a77baba13 feat: 适配界面主题「重构」 (#16349)
* feat: 界面主题「重构」预载

* fix: 修复小工具 updater 路径错误
2026-04-27 00:45:09 +08:00
uye
b9fca6f03d chore: 连接方式使用 PC 端时禁用不支持的完成后操作 2026-04-27 00:32:13 +08:00
srdr0p
1b1bc15aca feat: 支持腾讯应用宝 5.10.56.xx (#16292)
* feat(connection): 新增腾讯应用宝模拟器支持

在 WinAdapter 和 config.json 中添加应用宝(Androws)模拟器入口。
本次仅支持 ADB Input 方式和官方渠道。

同步更新各语言连接文档(zh/en/ja/ko/tw)及 UI 本地化字符串。

* feat(controller): 为腾讯应用宝新增多渠道与 Minitouch 支持

应用宝的应用与 DisplayId 绑定,需在 connect() 前确定包名。
新增 InstanceOptionKey::ClientType (= 6),经由
AsstSetInstanceOption -> Assistant::set_instance_option
-> Controller::set_client_type 传递渠道信息;
AdbController::connect 在建立连接时通过 ctrler()->get_client_type()
读取并写入 AdbConnectionContext,用于替换命令模板中的 [PackageName]。

引入 AdbConnectionContext 保存 ADB 连接信息供 Minitouch 使用,
并通过 eventId 标识所绑定的输入设备。
2026-04-26 23:48:24 +08:00
status102
54f07fc3ad perf(wpf): 优化1星词条选项操作描述 2026-04-26 12:59:09 +08:00
github-actions[bot]
ce9fc40ef5 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24940764290
[skip changelog]
2026-04-25 21:12:38 +00:00
晓丶梦丶仁
fa5929a5f5 feat: 争锋频道 绿藤城 (#16345)
* feat: 争锋频道 绿藤城

* i18n: jp kr

* fix: key
2026-04-25 23:53:09 +08:00
status102
adcf581ab3 fix: 干员仓储识别未跳过数据查找失败的干员 2026-04-25 23:17:06 +08:00
SherkeyXD
7567ca7950 chore: 周年月卡文本更新 2026-04-25 23:12:09 +08:00
github-actions[bot]
83ce081ac5 chore: Auto Update Game Resources - 2026-04-25
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24932890662

[skip changelog]
2026-04-25 14:18:43 +00:00
Constrat
d6cdfc6c77 fix: EN IS6 trail regex 2026-04-25 15:27:15 +02:00
status102
b0f46de1e6 perf: 理智上限增加到210 2026-04-25 20:47:49 +08:00
SherkeyXD
a1064f7c21 fix: 月度小队不再隐藏分队选择 2026-04-25 18:10:04 +08:00
uye
ac3b986d7a feat: updater 支持暗色模式 2026-04-25 05:51:09 +08:00
uye
f08793369e feat: updater 支持显示进度条或控制台输出 2026-04-25 05:51:09 +08:00
Goat Boring(山羊博宁88)
8da0b89e6e docs: 修改部分注释 (#16215)
* docs: 修改部分注释

* docs: Fix typo in JSON file usage note

* docs: 改改改

* style: format

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

* docs: 换地址

* docs: 作业最低支持版本

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-04-25 01:57:35 +08:00
uye
0913148a69 Release v6.8.0 (#16335)
## 由 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>
2026-04-25 00:49:14 +08:00
github-actions[bot]
5eb161a390 docs: Auto Update Changelogs of v6.8.0 (#16336)
* docs: Auto Generate Changelog of Release v6.8.0

* docs: changelog

* feat(changelog): 更新 v6.8.0 版本日志,优化更新流程与功能介绍

* docs: 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>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
2026-04-25 00:46:20 +08:00
uye
0c4bcf6aae fix: 使用本地注册的更新包会导致从 API 获取的更新信息被置空 2026-04-24 23:19:16 +08:00
MistEO
f90cc11100 ci: disable MAA cos 2026-04-24 22:21:04 +08:00
github-actions[bot]
f1be7f5711 chore: Auto Update Game Resources - 2026-04-24
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24893433596

[skip changelog]
2026-04-24 14:00:14 +00:00
Roland125
e6fad34468 修复截图延迟极低时,可能会随机出现,更换产物/订单失败的问题 (#16330)
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>
2026-04-24 21:25:13 +08:00
github-actions[bot]
4a3780528a chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24803125569
[skip changelog]
2026-04-22 21:18:18 +00:00
uye
c45b476a30 chore: 简化公告日志记录 2026-04-23 00:43:39 +08:00
uye
3214aa96e7 fix: local-install 找不到 Artifact 2026-04-22 22:30:38 +08:00
uye
9c1ac90446 chore: tool 更新 2026-04-22 22:19:46 +08:00
uye
a1fb539856 fix: 内测版与其他类型版本对比时 removelist 会错误添加所有目录 2026-04-22 22:04:25 +08:00
uye
31fdcf191f chore: updater 额外保留 cache 文件夹 2026-04-22 20:32:03 +08:00
uye
f888adb99a feat: updater 增加移除和移动文件列表打印 2026-04-22 20:30:21 +08:00
uye
2976930308 feat: updater 日志增加大小上限 2026-04-22 20:18:54 +08:00
github-actions[bot]
4fb1570f91 chore: Auto Update Game Resources - 2026-04-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24769128852

[skip changelog]
2026-04-22 08:48:02 +00:00
status102
beedbd37cc fix: 临时修复rect完全超限时的超限返回值 2026-04-22 16:23:21 +08:00
Rbqwow
3d29fcb8ed ci: 发版打包时移除 *.bak 文件 2026-04-22 14:27:20 +08:00
dependabot[bot]
3e5691fe1b ci: bump the github-actions group across 1 directory with 4 updates (#16301)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lucien Shaw <myxlc55@outlook.com>
2026-04-22 13:13:56 +08:00
萨拉托加
3a050d301a chore: 更新保全作业 2026-04-22 09:16:47 +08:00
uye
5788be68d3 Release v6.8.0-beta.2 (#16318) 2026-04-22 06:49:01 +08:00
github-actions[bot]
0487ff3288 docs: Auto Update Changelogs of v6.8.0-beta.2 (#16324)
* docs: Auto Generate Changelog of Release v6.8.0-beta.2

* docs: 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>
2026-04-22 06:47:56 +08:00
uye
478de0cccb fix: updater utf8 解析 2026-04-22 05:06:48 +08:00
uye
b7598d8f66 ci: ci 和 nightly 打出来的包不带 updater 2026-04-22 03:40:12 +08:00
uye
4ce5e9bf97 rft: 外部更新使用分离的 updater (#16326)
* rft: 外部更新使用分离的 updater

* fix: review

* chore: 调整注释

* chore: 调整提示文本
2026-04-22 02:50:13 +08:00
uye
e68a07feff fix: warnings 2026-04-21 10:36:53 +08:00
uye
9b7624da39 rft: 外部更新不再读配置 2026-04-21 10:20:12 +08:00
status102
7df2736fbc chore(wpf): 注释推错了 2026-04-21 10:09:14 +08:00
uye
92192d969b rft: 简化更新代码 2026-04-21 10:04:44 +08:00
status102
3645360869 fix(wpf): 描述误导 2026-04-21 09:44:19 +08:00
uye
f607149e4c rft: 涉及 dll 的更新使用外部更新 2026-04-21 09:21:27 +08:00
github-actions[bot]
a3fd3055c0 chore: Auto Update Game Resources - 2026-04-20
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24696524499

[skip changelog]
2026-04-20 23:56:57 +00:00
github-actions[bot]
d9991239b7 chore: Auto Templates Optimization
Triggered by af783dd558

[skip changelog]
2026-04-20 23:37:10 +00:00
travellerse
af783dd558 feat: 线索交流时先移除所有放置的线索 (#16054)
* feat: 线索交流时先移除所有放置的线索

* feat: 线索过多时向下滑动线索列表

* feat: 优化重试机制以处理线索过多情况

* perf: 优化移除线索逻辑

* fix: 线索板为空时移除线索视为成功
2026-04-21 07:36:43 +08:00
uye
df92aa2716 chore: 调整手动更新方法描述 2026-04-21 07:30:58 +08:00
uye
0336b45de8 feat: 启动时判断版本是否一致 2026-04-21 07:09:13 +08:00
uye
7bd54ce7e9 fix: 基建开启设施无法保存 2026-04-21 06:13:19 +08:00
uye
b355c6cbc5 ci: 单引号 2026-04-21 05:43:03 +08:00
uye
42473f1ede rft: 重构更新逻辑,允许拖入指定名称的压缩包进行更新 (#16308)
* rft: 重构更新

* feat: 允许拖入指定名称的压缩包进行更新

* chore: 添加日志

* chore: 更改完整包更新逻辑

* chore: 简化代码,调整注释
2026-04-21 05:33:24 +08:00
github-actions[bot]
b3f9ecc259 chore: Auto Update Game Resources - 2026-04-20
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24688942932

[skip changelog]
2026-04-20 20:34:27 +00:00
status102
e0564099b2 fix: index越界 2026-04-20 10:12:25 +08:00
github-actions[bot]
5b6dfc3d50 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24639205418
[skip changelog]
2026-04-19 21:11:48 +00:00
Alex Gu
d8df4e753e fix: macOS PlayTools/SCK 几处小修正 (#16276)
fix: macOS 相关几处小修正

- PlayToolsController: screencap_rgba/screencap_bgr/toucher_commit 调用
  open() 时未检查返回值,连接失败时继续操作会写坏的 socket
- PlayToolsController: start_game() 日志写成了 InputText,应该是 StartGame
- OcrPack: macOS 分支日志里残留了多余的 "rec" 字样
- MacSCKHelper: 析构时 stopCapture 是异步的,没等回调完成就释放了
  stream/output/queue,可能踩到野指针;改用信号量等停完再释放
2026-04-19 23:18:27 +08:00
status102
8b287f36c7 fix: 干员库存识别返回错误id 2026-04-19 21:09:19 +08:00
HX3N
39960ed8ef i18n: KR UseExpireMedicineForActivity 2026-04-19 16:45:46 +09:00
soundofautumn
1e0d04fe48 feat: 新增吃指定天数过期的理智药 (#13849)
* chore: 格式化

i18n: 日志本地化

# Conflicts:
#	src/MaaWpfGui/Main/AsstProxy.cs
#	src/MaaWpfGui/Res/Localizations/en-us.xaml
#	src/MaaWpfGui/Res/Localizations/ko-kr.xaml
#	src/MaaWpfGui/Res/Localizations/zh-tw.xaml

feat: 删除48小时选项

# Conflicts:
#	src/MaaWpfGui/Constants/ConfigurationKeys.cs
#	src/MaaWpfGui/Res/Localizations/en-us.xaml
#	src/MaaWpfGui/Res/Localizations/ja-jp.xaml
#	src/MaaWpfGui/Res/Localizations/ko-kr.xaml
#	src/MaaWpfGui/Res/Localizations/zh-cn.xaml
#	src/MaaWpfGui/Res/Localizations/zh-tw.xaml
#	src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
#	src/MaaWpfGui/Views/UserControl/TaskQueue/FightSettingsUserControl.xaml

feat: wpf添加吃N天理智药的选项

# Conflicts:
#	src/MaaWpfGui/Constants/ConfigurationKeys.cs
#	src/MaaWpfGui/Res/Localizations/zh-cn.xaml
#	src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
#	src/MaaWpfGui/Views/UserControl/TaskQueue/FightSettingsUserControl.xaml

feat: api兼容

chore: 添加注释

feat: deprecated提示

feat: 每次执行任务时修改expiring_task

feat: 支持i18n

feat: 修改expiring_task

feat: 新增吃几天之内的过期药的接口

# Conflicts:
#	src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs

* fix: ocr require

* rft: 参数迁移

* rft: core结构完善

* feat: Wpf支持

* fix: 还原 StageManager中的天书, 刷理智中使用 n+标识鹰历天书

* perf: 下拉选小时

* i18n: 占位

* i18n: wpf

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-04-19 10:59:30 +08:00
lhhxxxxx
1a689cbf0b feat: 添加单元测试框架和验证角色分配算法的测试用例 (#16245) 2026-04-18 20:48:29 +08:00
github-actions[bot]
110db7ab85 chore: Auto Templates Optimization
Triggered by d88d4ad484

[skip changelog]
2026-04-18 08:39:50 +00:00
HY
d88d4ad484 chore: 繁中服宿舍截圖 & 部分 OCR 內容 (#16298)
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>
2026-04-18 10:39:26 +02:00
Leo91314
8e4e4c16ee docs: add FAQ guidance for Windows Defender false positives (#16145) 2026-04-18 10:48:33 +08:00
github-actions[bot]
d9c793cfd3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24587013396
[skip changelog]
2026-04-17 21:16:33 +00:00
Yi Zhang
733ce5bd81 fix: baseList 无法编译的问题 (#16293)
fix: baseList无法编译的问题
2026-04-17 22:51:42 +08:00
Frog Chen
50000b988a feat: AVD截图增强的售后(文档、CI变更等) (#16031)
Co-authored-by: Rbqwow <55343783+Rbqwow@users.noreply.github.com>
Co-authored-by: MistEO <mistereo@hotmail.com>
2026-04-17 22:38:56 +08:00
Halo
98dd6f7ba1 feat(Avalonia): V0.2 新构建跨平台前端界面MAAUnified,合并代码请求 (#16048)
* feat(MaaUnified): MaaUnified构建完成,作为submodule加入

* fix(MaaUnified): 修复自动构建时 submodule拉取错误问题

* feat(MaaUnified): MaaUnified submodule更换为组织仓库

* ci: do not fetch useless module

---------

Co-authored-by: MistEO <mistereo@hotmail.com>
2026-04-17 22:33:33 +08:00
Status102
9fd6602f11 feat(wpf): 配置存储支持条件优化 (#15850) 2026-04-17 13:48:54 +08:00
SherkeyXD
4e45915f37 feat: 界园肉鸽月度小队和深入调查 (#16271)
* feat: 界园肉鸽月度小队和深入调查

* feat: 月度小队和深入调查ui隐藏不需要的选项
2026-04-17 11:04:24 +08:00
Constrat
98f9fcfe4f Release v6.8.0-beta.1 (#16284) 2026-04-16 22:07:46 +02:00
github-actions[bot]
857d5d5f37 docs: Auto Update Changelogs of v6.8.0-beta.1 (#16285)
* 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>
2026-04-16 21:42:32 +02:00
Constrat
4d08a2cdbd chore: implement Quickly Place Clues for Global (#14966) 2026-04-16 14:03:44 +02:00
Constrat
52157f505c i18n: EN 2026-04-16 12:59:48 +02:00
Constrat
84b7ed59d9 chore: EN OS minigame (#16283)
* feat: minigame

* fix: typo

* fix: typo optimized
2026-04-16 12:51:55 +02:00
status102
9ce2794841 ci: 将.Net SDK限制置于CI内, 以便于本地开发 2026-04-16 09:42:08 +08:00
uye
a627c68485 ci: dotnet Security patch Update SDK version from 10.0.201 to 10.0.202 2026-04-16 00:31:08 +08:00
status102
2a5cdf24e7 perf: 自动编队预编队后检查选中情况 2026-04-16 00:13:02 +08:00
status102
0772aa9168 chore: 加点注释
[skip changelog]
2026-04-16 00:12:45 +08:00
github-actions[bot]
3180374a19 feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24425274742
[skip changelog]
2026-04-14 22:06:53 +00:00
晓丶梦丶仁
a1b6f0e9bb fix: KR OSChapterToOS OCR 2026-04-14 22:34:17 +08:00
github-actions[bot]
a852ab31b0 chore: Auto Templates Optimization
Triggered by 757cfbf99a

[skip changelog]
2026-04-14 14:28:42 +00:00
uye
757cfbf99a fix: yj 怎么还暗改老主题
fix #16218
2026-04-14 22:28:12 +08:00
Manicsteiner
7ed7d8af92 chore: YostarJP OS stages and more ocr 2026-04-14 22:21:13 +08:00
github-actions[bot]
b8f279abfa chore: Auto Templates Optimization
Triggered by 4443367709

[skip changelog]
2026-04-14 14:10:54 +00:00
HX3N
4443367709 chore: YostarKR OS ocr and minigame (#16268)
* chore: KR OS stage

* chore: minigame placeholder

* chore: MiniGame OS

* chore: ocr edit

* i18n: MiniGame OS
2026-04-14 22:10:00 +08:00
Manicsteiner
32805735ed chore: YostarJP OS ocr and minigame (#16267) 2026-04-14 22:09:33 +08:00
github-actions[bot]
b8a052fc88 chore: Auto Update Game Resources - 2026-04-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24399489743

[skip changelog]
2026-04-14 12:42:59 +00:00
github-actions[bot]
db35bf16c8 chore: Auto Update Game Resources - 2026-04-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24389664505

[skip changelog]
2026-04-14 08:45:37 +00:00
github-actions[bot]
5cb72d7d64 chore: Auto Update Game Resources - 2026-04-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24381737109

[skip changelog]
2026-04-14 04:59:05 +00:00
Reverse0xCC
5b75f1caed chore: 肉鸽添加怒潮凛冬招募逻辑 (#16217)
* chore: 肉鸽添加怒潮凛冬招募逻辑

* chore: 肉鸽添加怒潮凛冬招募逻辑

* chore: 肉鸽添加怒潮凛冬招募逻辑

* chore: 肉鸽添加怒潮凛冬招募逻辑

* chore: 肉鸽添加怒潮凛冬招募逻辑
2026-04-13 23:05:50 +08:00
drway
98070cb7f7 chore: 添加贝洛内、怒潮凛冬基建技能数值 (#16260)
* chore: 添加贝洛内、怒潮凛冬基建技能数值

添加贝洛内、怒潮凛冬基建技能数值

* fix: i am stupid
2026-04-13 23:05:11 +08:00
晓丶梦丶仁
9bfa2dab87 chore: git ignore 添加 claude code 2026-04-13 17:32:58 +08:00
github-actions[bot]
1d54789dd5 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24316471820
[skip changelog]
2026-04-12 21:10:27 +00:00
MistEO
01a26f207d Revert "ci: issue bot skills 添加 at 符号检测 (#16239)"
This reverts commit 578ffc266e.
2026-04-12 19:30:53 +08:00
uye
e8d5982b60 perf: 优化提示元素展示效果 2026-04-12 19:27:29 +08:00
Goat Boring(山羊博宁88)
f2dcefda54 docs: i18n for install.md (#16214)
* docs: i18n for install.md

* docs: merge ABA2396 & sourcery-ai[bot] revises

Apply suggestion from @sourcery-ai[bot]

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* docs: 略作修改

* i18n: ko-kr

* docs: Apply changes

* i18n: JP

* i18n: zh-tw

* chore: 哭阿刪多了 補回來

* i18n: ko-kr edit

ref 4efd3ac67f

* i18n: EN fix

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: Manicsteiner <Manicsteiner@outlook.com>
Co-authored-by: momomochi987 <as99us301@gmail.com>
Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-04-12 12:37:02 +02:00
status102
0266db8144 chore: 存在DEBUG.txt时MaaCore额外在Log开始时额外输出提示
[skip changelog]
2026-04-12 13:51:24 +08:00
status102
d44cd057a4 fix(wpf): 自动战斗鼠标长按分页时, 可能会反复触发切换 2026-04-12 13:51:24 +08:00
status102
c825f823de Revert "fix: prts.plus改为zoot.plus"
This reverts commit d9b6eb7020.
2026-04-12 13:51:23 +08:00
Constrat
8c51447c86 fix: EN IS6 DLC1 regexes 2026-04-11 13:29:49 +02:00
status102
25481d16ca perf: 作业版本号需求允许省略patch 2026-04-11 16:34:37 +08:00
晓丶梦丶仁
578ffc266e ci: issue bot skills 添加 at 符号检测 (#16239)
* ci: issue bot skills 添加 at 符号检测

* fix: review
2026-04-11 13:24:07 +08:00
github-actions[bot]
4173760050 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24264327755
[skip changelog]
2026-04-10 21:11:51 +00:00
status102
a98df31323 perf: 使用SemaphoreSlim替换Lock 2026-04-11 00:07:41 +08:00
status102
eac28656e4 chore: AnnihilationName 2026-04-11 00:07:40 +08:00
status102
bc0d5c8707 fix: 在定时任务触发时, 固定等待UpdateStageList 2026-04-11 00:07:40 +08:00
uye
f479192400 chore: pc 端禁用完成后退出模拟器 2026-04-10 22:49:33 +08:00
uye
4d58dd5f97 perf: 分辨率不支持时打印当前分辨率 2026-04-10 22:36:07 +08:00
EzraRT
9c96a11ba1 perf: 移除 NotificationImplWinRT 中二次进入 UI 线程 (#16196)
rft: 优化 ToastNotification 处理
2026-04-10 22:12:18 +08:00
lhhxxxxx
7e93a0dacd perf: 提升 Algorithm.hpp 算法性能及其鲁棒性 (#16235) 2026-04-10 22:07:25 +08:00
status102
2746e7a645 fix: 修复LinkStart期间UpdateStageList内进入SetFightParams导致死锁
修复后依旧存在UpdateStageList过晚导致定时启动时, 关卡信息未更新的可能. 不过活动信息自带过期时间, 应该不会触发问题
2026-04-10 13:48:24 +08:00
github-actions[bot]
40d1ef967b feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24215516568
[skip changelog]
2026-04-09 22:02:11 +00:00
github-actions[bot]
77df12afc2 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24213715144
[skip changelog]
2026-04-09 21:16:58 +00:00
Status102
de4740af06 feat(wpf): 非法Enum值将使用属性设置的默认值作为替代 (#16138)
feat(wpf): 非法Enum值将使用属性默认值作为替代
2026-04-09 12:01:09 +08:00
github-actions[bot]
fc2726bd65 feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24161039695
[skip changelog]
2026-04-08 22:03:23 +00:00
github-actions[bot]
1e3e97556f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24159097562
[skip changelog]
2026-04-08 21:16:39 +00:00
HY
e2ebf09bd8 chore: 繁中服「次生方案」小活動 (#16216) 2026-04-08 23:11:05 +08:00
github-actions[bot]
645f402865 chore: Auto Update Game Resources - 2026-04-08
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24126353103

[skip changelog]
2026-04-08 08:44:37 +00:00
Status102
88a1e4fb68 rft: 干员数据重构, 支持跨职业重名干员 (#16084)
* rft: 干员数据重构, 支持跨职业重名干员

* fix: 查找优化

* fix: default value

* perf: 重新加载时清空数据

* fix: 默认值

* perf: 查找
2026-04-08 11:39:52 +08:00
Status102
e53fb4ff14 chore: 重新将natvis添加到MaaCore (#16133)
* chore: 将natvis添加到MaaCore

* perf: review
2026-04-08 11:39:08 +08:00
github-actions[bot]
fc9c7b707d feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24106580879
[skip changelog]
2026-04-07 22:02:26 +00:00
status102
d9b6eb7020 fix: prts.plus改为zoot.plus
prts.maa.plus 不做变更 By.玛丽
2026-04-07 23:42:30 +08:00
MistEO
ee887fe3c0 Release v6.7.1 (#16178) 2026-04-07 21:05:09 +08:00
github-actions[bot]
7c385b3a73 docs: Auto Update Changelogs of v6.7.1 (#16195)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-07 19:55:27 +08:00
github-actions[bot]
e367029b05 feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24079494426
[skip changelog]
2026-04-07 11:42:05 +00:00
SherkeyXD
36d47d6b89 fix: 欸我草我是啥比 2026-04-07 18:07:58 +08:00
SherkeyXD
ca3b2fa65f fix: 我是🐖 2026-04-07 18:04:49 +08:00
SherkeyXD
20c8f8ec22 feat: SideStory「人们,我们」导航 2026-04-07 12:33:14 +08:00
github-actions[bot]
041d1aa712 chore: Auto Update Game Resources - 2026-04-07
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24064379048

[skip changelog]
2026-04-07 04:32:23 +00:00
github-actions[bot]
fbbcbc6d78 chore: Auto Update Game Resources - 2026-04-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24055824962

[skip changelog]
2026-04-06 23:13:36 +00:00
github-actions[bot]
f5520e3985 chore: Auto Update Game Resources - 2026-04-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24055245319

[skip changelog]
2026-04-06 22:55:36 +00:00
github-actions[bot]
98a0a8fcdf feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24053352736
[skip changelog]
2026-04-06 22:00:42 +00:00
MistEO
68af86f17a ai: add deepwiki config 2026-04-07 02:19:13 +08:00
MistEO
c373f49656 ci: 临时固定一下maafw版本 2026-04-06 21:52:00 +08:00
github-actions[bot]
6722c724fe feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24026807945
[skip changelog]
2026-04-06 09:35:43 +00:00
github-actions[bot]
b9c593f535 feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24011353883
[skip changelog]
2026-04-05 21:57:55 +00:00
github-actions[bot]
c0f225231f chore: Auto Update Game Resources - 2026-04-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24009463476

[skip changelog]
2026-04-05 20:09:10 +00:00
github-actions[bot]
d3c04050c4 feat: Update Submodules MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/23988419258
[skip changelog]
2026-04-04 21:57:42 +00:00
Constrat
fe36a0b734 docs: stderr redirection no longer needed for waydroid as it's enabled by default 2026-04-04 10:23:05 +02:00
uye
c627cfcb42 chore: 优化时间对比 2026-04-03 22:38:36 +08:00
vonnoq
d4c44bf19f fix: 繁中服基建幹員識別 (#16183)
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>
2026-04-03 22:36:00 +08:00
uye
bfa7d98eb6 fix: 错误的 DateTimeOffset 与 DateTime 对比 2026-04-03 12:41:47 +08:00
951 changed files with 123658 additions and 6551 deletions

11
.clangd
View File

@@ -1,5 +1,14 @@
If:
PathMatch: unit_test/.*\.(c|cc|cpp|cxx|h|hh|hpp)$
CompileFlags:
CompilationDatabase: build/unit_test
Add: [-Wunused-variables]
---
If:
PathExclude: unit_test/.*\.(c|cc|cpp|cxx|h|hh|hpp)$
CompileFlags:
CompilationDatabase: build
Add: [-Wunused-variables]
---
Diagnostics:
UnusedIncludes: None
UnusedIncludes: None

View File

@@ -0,0 +1,332 @@
---
name: changelog
description: 根据 git 提交记录、diff、现有 CHANGELOG 与 tag整理符合 MAA 发布规范的 changelog Markdown。过滤噪音、合并同类改动输出可直接写入 CHANGELOG.md 的最终版本。
---
# MAA Changelog Skill
## 目标
读取待发布范围内的 commit、diff、现有 CHANGELOG 与历史 tag输出可直接写入 `CHANGELOG.md` 的最终 Markdown。
- **只输出最终 Markdown**,不输出分析过程、分类理由或代码围栏。
- 第一目标:"最终用户看得懂、历史版本不断裂、同类改动不重复"。
## 必要输入
- 目标版本号(如 `v6.13.0-beta.3`)。
- 待发布提交范围(可由 tag、PR、分支信息推导
- 当前 CHANGELOG 内容。
## 核心规则
### 1. 净变更优先
- 同一功能/问题的多条相关 commit **合并为单条**,面向用户描述最终效果。
- commit 标题含糊、口语化、玩梗时,**必须查看 diff 后改写**为专业可理解的描述。
- **Revert 处理**:原改动被完整撤销则删除该项;仍保留部分语义则合并为一条准确描述最终结果的条目。
- "review""typo""日志顺序""调整坐标""build warning" 等缺乏用户语义的提交不单独保留,除非 diff 证明修复了用户可感知问题。
- **多服同类改动合并**:按**单项改动**(而非 commit/PR 整体)为粒度拆分,每项改动再跨服合并。同一 commit/PR 中若包含多项不同改动,应先按改动类型拆开,再将每项在实现了它的所有服务器上合并。服务器名用 `/` 连接(如 `YostarEN/JP/KR`),多位作者依次排列(如 `@author1 @author2 @author3`)。
- 示例:某 PR 为 JP 同时更新了主题、新增了章节导航,而 EN/KR 只更新了主题。应拆为两行:`YostarEN/JP/KR 更新主题`(三服共同)+ `YostarJP 新增章节导航`(仅 JP
### 2. 按用户价值分类
| 模块 | 适用场景 |
|------|----------|
| **新增 \| New** | 新功能、新支持、新入口、新兼容性 |
| **改进 \| Improved** | 能力增强、性能/稳定性/体验优化、识别优化、重构收益 |
| **修复 \| Fix** | 缺陷修正、兼容性/异常/回归修复 |
| **文档 \| Docs** | 纯文档变更 |
| **其他 \| Other** | 仅内部维护、CI、脚本等不适合省略时 |
| **MaaMacGui** | 子仓库独立区块,放在 `### 其他 \| Other` 之后内部复用相同分类结构PR 格式 `([#数字](https://github.com/MaaAssistantArknights/MaaMacGui/pull/数字))` |
### 3. 模块内排序与文案
- **中文在前,纯英文条目排最后**。
- 按重要性排序:功能/接口变更 > 兼容性/优化 > 次要修复/杂项。
- 列表前缀统一 `*`
- 中英文与数字间留空格(如"修复 3 个 bug""支持 3D 功能")。
- 术语统一大小写WPF、Json、Markdown、CSV、Info。
- 保留作者与 PR 引用,主仓库格式为 `([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author`;多条合并时引用合并括注。
### 4. 版本历史连续性
**版本类型定义**:不带 `-beta`/`-alpha` 后缀的均为正式版(包含首个正式版 `X.Y.0` 与 patch 正式版 `X.Y.1``X.Y.2` 等);带后缀的为测试版。
- **跨次版本号的正式版**(如 v6.12.x → v6.13.0):不保留上一个次版本号的任何历史折叠块。
- **同次版本号的 patch 正式版**(如 v6.13.1 相对 v6.13.0):当前版本只写相对上一版本的增量变化(放在 `<details open>` 展开块),不得复制更早版本已发布条目。更早版本保留为各自独立的 `<details>` 收起块,紧跟在当前版本展开块之后。
### 5. 测试版与 patch 版的折叠块规则
- 同次版本号内的测试版beta.1、beta.2…)与 patch 版之间**保留历史折叠块**。
- **发布正式版时**:将所有前置测试版条目按模块合并到正式版单一详细区块,去重后统一展示。测试版间被覆盖的条目只保留最终有效版本。正式版使用 `<details open>`,其后不再保留 beta 版本历史折叠块(除非有更早正式版)。
#### 正式版的详细内容来源:基于已有测试版 changelog 合并,而非全量重分析
**禁止**在发布正式版时从 git 历史全量重新分析提交、重新阅读 diff。正式版的详细内容应**直接合并已发布各测试版 changelog 的条目**,工作流如下:
1. 读取现有 CHANGELOG 中同次版本号的所有测试版区块beta.1、beta.2…直至最新测试版)。
2. 将这些区块的条目按模块(新增/改进/修复/其他…)汇总,跨测试版去重:
- 同一条目在多个测试版出现 → 只保留最终(最新)版本表述。
- 被后续测试版修正/覆盖的条目 → 保留修正后的最终结果。
3. **唯一需要新增分析的增量**:仅为「最后一个测试版 tag → HEAD」之间的提交。这部分通常是少量改动逐一检查后补充进正式版详细区块有用户可感知效果才补否则丢弃
4. 合并后统一排序、统一文案,不重复、不断裂。
**理由**:测试版发布时已完成对应提交范围的分析与改写,正式版只是对同一发布周期的汇总收尾,全量重分析会引入不一致、重复劳动,且容易把已被测试版 changelog 过滤/改写的噪音重新捞回。
### 6. Highlights 规则
- **中英双语,先中后英**。中文直接展示,英文放入 `<details><summary><b>English</b></summary>` 折叠块。
- Highlights 只总结最值得强调的变化,不要机械搬运所有条目。
- **复用规则(适用于 patch 版、测试版、以及由测试版晋升的正式版)**
- 判定标准:相对**直接前驱版本**patch 的父正式版、测试版的上一测试版、正式版晋升时的最后一个测试版)有无用户可感知的重大变化。
- 无重大变化 → **直接复用前驱版本 Highlights**,仅改版本号标题和日期,不改写内容。
- 有重大新变化 → 保留原有内容,新段落追加在末尾。
- 正式版的补丁版本不应修改 Highlights除非确实有用户可感知的重要变化。
- **由测试版晋升的正式版X.Y.0**:判定基准是最后一个测试版(如 beta.3。若最后一个测试版到正式版之间只有内部维护、CI、通知文案等无用户可感知的变化则 Highlights 一字不改地复用最后一个测试版的内容,只更新顶部版本号标题与日期。
### 7. 必须过滤的噪音
删除以下类型提交:
- bot 自动生成(`Auto Update Game Resources``Auto Templates Optimization` 等)
- `Release vX.Y.Z``Auto Update Changelogs``Auto Generate Changelog`
- `Update CHANGELOG``Bump version` 等 changelog 维护提交
-`[skip changelog]` 标记的提交
**不过滤**chore、perf 或看似内部优化的提交——只要有用户可感知效果(启动体验、性能、稳定性等),一律保留并放入合适模块。
### 8. git 历史编码处理Windows PowerShell
```powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; git -c core.quotepath=false -c i18n.logoutputencoding=utf-8 -c i18n.commitencoding=utf-8 log --encoding=utf-8 --format="%H %s" RANGE | ForEach-Object { [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($_)) }
```
如仍乱码,写入临时文件后用 read_file 读取:`| Out-File -Encoding utf8 -FilePath "$env:TEMP\commits.txt"`
### 9. 翻译判断规则(外服条目保留英文原文)
changelog 主体面向中文用户,但**并非所有条目都应译成中文**。判断依据是「该条目的目标读者是谁」:玩外服的用户能看懂英文/该服语言,而中文用户一般不接触外服内容,因此外服专有条目保留原文更准确、更不易误导。
**用中文描述(默认)**
- 国服CN、繁中服txwy相关改动。
- 跨服/全服通用的功能、架构、性能、稳定性改动。
- 行为描述、用户操作说明(如 `add support for X` → 「新增支持 X」
- 含糊/口语化/玩梗的英文 commit 标题,改写为专业可理解的中文表述。
**整条保留英文原文(不翻译)——外服专有条目**
- **适用范围**:仅针对 YostarEN / YostarJP / YostarKR 等外服的改动,且该改动不涉及国服。整条描述(含动词、行为)均保留英文,**不要**只保留专有名词而把描述译成中文。
- **原因**:① 外服条目的目标读者是玩该外服的用户,能看懂英文;② 外服的关卡、活动、章节、主题名(如 `lone trail``JieGarden`)在中文服可能不存在或译名不同,翻译会丢失原文标识、产生误导。
- **条目格式**:服务器代号前置,后接英文描述。跨多服同改时用 `/` 连接(如 `YostarEN/JP/KR ...`)。
-`YostarEN preload lone trail + fix JieGarden themes`
-`YostarEN/JP/KR update LoneTrail and JieGarden themes`
-`YostarEN/JP/KR 更新落叶逐火与界园主题`(把外服描述整条译成中文,且「落叶逐火」是中服译名)
-`YostarEN 预加载孤星轨道并修复界园主题`(把外服描述译成中文,丢失原文)
- ❌ 把 `Stage 10-2` 翻成「第十章第二节」
**混合判断**:同一 commit/PR 同时含国服与外服改动时,按 §1 拆为多条:国服部分用中文,外服部分保留英文,各自独立成行。
**代码/技术标识始终保留原文**(不分中外服):任务名(`Stage``Roguelike``Depot`、配置项、接口名、文件名、命令名以及技术术语与产品名WPF、Json、Markdown、CSV、onnx、ADB、minitouch 等,大小写见 §3
**判断要点**:翻译的目的是让「该条目的目标读者」看得懂。国服/通用条目译给中文用户看;外服专有条目保留英文给外服用户看——不要为了「消灭英文」而过度翻译。
## 完整文件结构
patch / 测试版结构(严格自上而下,不得打乱层次):
1. `## vX.Y.Z (YYYY-MM-DD)` — 顶部版本标题
2. `### Highlights` — 中文直接展示
3. 英文 Highlights 折叠块
4. `----` 分隔线
5. `以下是详细内容:`
6. `<details open><summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>` — 当前版本(展开)
7. `<details><summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>` — 上一版本(收起)
8. 更早版本各自独立折叠块…
9. `<details><summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>` — 最早正式版(收起)
**要点**
- 折叠块内只保留详细内容,不重复 Highlights、不写 `## vX.Y.Z` 子标题。
- 历史区块不重复 Highlights 和"以下是详细内容:"引导语——这些只在顶部出现一次。
## 工作流程
### 通用步骤patch / 测试版)
1. 确定发布边界:目标版本、上一版本 tag、提交范围。
2. 读取现有 CHANGELOG 与范围内的 diff不只看 commit 标题)。
3. 过滤 bot、release、`[skip changelog]`、revert 等噪音。
4. 按净变更合并同类提交,必要时从 diff 改写标题。
5. 按用户价值分类到正确模块。
6. 模块内排序、术语统一、中英文整理。
7. 编写中英双语 Highlights。
8. 输出完整 Markdown顶部版本 + Highlights + 详细内容 + 历史折叠块)。
### 正式版(由测试版晋升)专属流程
**关键区别**:正式版**不做全量重分析**,而是「合并已有测试版 changelog + 补少量增量 + 处理 Highlights 复用」。步骤如下:
1. 读取现有 CHANGELOG 中同次版本号的所有测试版区块beta.1 … beta.N
2. 判定「最后一个测试版 tag → HEAD」是否有用户可感知的重大变化
- 若有 → 分析这小段增量提交并整理成条目;若足以影响 Highlights 则追加(一般不追加)。
- 若无(仅 CI、chore、内部维护等→ 增量条目为空。
3. **Highlights**:直接复用最后一个测试版的 Highlights仅改顶部版本号标题与日期不重写。
4. **详细内容**:将各测试版区块条目按模块汇总去重,补入第 2 步的增量条目,按 §3 排序。
5. 输出跨次版本号X.Y.0)不保留历史折叠块;同次版本号 patch 正式版保留历史折叠块。
## 模块标题格式
```
### 新增 | New
### 改进 | Improved
### 修复 | Fix
### 文档 | Docs
### 其他 | Other
### MaaMacGui
```
仅保留有内容的模块,空模块省略。列表项统一 `*`
## 输出模板
### 正式版
```markdown
## vX.Y.Z
### Highlights
#### 中文标题
中文正文。
<details>
<summary><b>English</b></summary>
#### English Title
English paragraph.
</details>
----
以下是详细内容:
<details open>
<summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>
### 新增 | New
* 条目 ([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author
### 改进 | Improved
* 条目 @author
### MaaMacGui
#### 新增 | New
* 子仓库条目 ([#85](https://github.com/MaaAssistantArknights/MaaMacGui/pull/85)) @author
</details>
```
- **跨次版本号正式版**X.Y.0,如 v6.13.0):按规则 §4 不保留任何历史折叠块。
- **同次版本号 patch 正式版**X.Y.Z, Z≥1如 v6.13.1 相对 v6.13.0):保留历史折叠块,与下方 patch / 测试版模板结构一致。
### patch / 测试版
```markdown
## vX.Y.Z
### Highlights
#### 中文标题
中文正文。
<details>
<summary><b>English</b></summary>
#### English Title
English paragraph.
</details>
----
以下是详细内容:
<details open>
<summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>
### 改进 | Improved
* 条目 ([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author
### 修复 | Fix
* 条目 @author
</details>
<details>
<summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>
### 改进 | Improved
* 历史版本条目 @author
</details>
<details>
<summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>
### 新增 | New
* 正式版条目 @author
</details>
```
## 常见错误
- ❌ 旧版本条目整段复制到当前 patch 版本
- ❌ Revert 原样保留为单独条目
- ❌ bot/release/auto generate/update changelog 提交写入文档
- ❌ 同一功能拆成多条重复表述
- ❌ 保留玩梗/口语化/半成品标题
- ❌ 机械沿用 commit type 导致分类错误
- ❌ patch/测试版无重大变化却重写独立 Highlights
- ❌ 详细内容插入到 Highlights 与历史区块之间,破坏文件结构
- ❌ 历史区块重复 Highlights 或"以下是详细内容:"引导语
- ❌ 正式版按 beta 小版本分别折叠而非合并
- ❌ git 历史未指定编码导致中文乱码
- ❌ chore/perf 提交默认当噪音过滤(应判断是否有用户可感知效果)
- ❌ 跨次版本号时仍保留旧版本历史折叠块
- ❌ 正式版晋升时全量重新分析 git 提交,而非合并已有测试版 changelog
- ❌ 正式版晋升时重写 Highlights而非复用最后一个测试版的 Highlights无重大变化时
- ❌ 将外服专有条目YostarEN/JP/KR 等)的英文描述整条译成中文,应保留原文给外服用户阅读
## 最终检查
- [ ] 只保留最终有效净变更,非机械罗列 commit
- [ ] 已删除 bot、Release、Generate、Update CHANGELOG、Revert 等噪音?
- [ ] 未把旧版本已发布内容重复抄入当前版本?
- [ ] 所有条目用户可独立理解?
- [ ] 分类正确、排序合理、中文在前英文在后?
- [ ] 输出完整 Markdown非代码块
- [ ] patch/测试版无重大变化时复用了父版本 Highlights
- [ ] 详细内容紧跟"以下是详细内容:"之后?
- [ ] 历史区块无重复 Highlights 和引导语?
- [ ] 英文 Highlights 在 `<details>` 折叠块内?
- [ ] 每个版本各自独立 `<details>` 折叠块?
- [ ] 当前版本 `<details open>`,历史版本默认收起?
- [ ] 子仓库MaaMacGui作为独立子项放在 `### 其他 | Other` 之后?
- [ ] 正式版已合并所有测试版条目为单一区块?
- [ ] 正式版是合并已有测试版 changelog而非全量重分析提交
- [ ] 正式版 Highlights 无重大变化时复用了最后一个测试版的 Highlights
- [ ] git 历史查询已指定编码参数?
- [ ] 跨次版本号时已移除旧版本历史折叠块?
- [ ] 外服专有条目YostarEN/JP/KR 等)保留英文原文描述,未被整条翻译成中文?

View File

@@ -0,0 +1,178 @@
---
name: maa-cyber-fortune-master
description: 用“赛博道士 + 故障玄学 + 半懂不懂技术分析”的风格回复 MAA 用户的简略求助。用于用户只给一句模糊问题、没有日志、没有截图、没有报错时,做一段短小离谱但认真的玄学诊断。触发词可包括“赛博算卦”“玄学回复”“评论区整活”“帮我写一段离谱但正经的故障分析”
---
# MAA Cyber Fortune Master
## Purpose
- 用于生成适合评论区、工单区、聊天区的短回复。
- 核心目标不是排查问题,而是在信息不足时先活跃气氛,再把对话引回有效诊断材料。
- 输出必须短小、好发、像在一本正经地胡说八道。
## When To Use
仅在同时满足以下条件时使用:
- 用户正在描述 MAA 相关故障、异常、闪退、识别失败、连接失败、卡死、掉资源、界面异常等问题。
- 用户给的信息非常少,通常只有一句现象描述。
- 当前没有足够日志、截图、报错文本、导出诊断或复现步骤支持正常技术分析。
- 用户希望“整活”“玩梗”“赛博道士”“玄学分析”“评论区风格”这类表达,或上下文明显接受这种风格。
## When Not To Use
出现以下任一情况时,不要进入玄学模式,改为正常技术回复:
- 用户已经贴出日志、截图、报错、调用栈、导出诊断。
- 用户明确要求严肃、直接、纯技术的答复。
- 当前场景不适合玩梗,例如正式公告、变更说明、文档正文、真实 root cause 分析。
- 问题涉及安全、隐私、账号处罚、付款、法律风险等敏感内容。
## Core Behavior
你是一名“赛博道长”,专门替 MAA 用户算故障卦。
当用户只给出极简问题描述时:
1. 先复述用户的问题现象,保持简短。
2. 再用一本正经的口吻说“掐指一算”“夜观天象”“观此命盘”等。
3. 接着输出一小段离谱但像模像样的玄学分析。
4. 最后自然收束到信息不足,提醒对方补日志、截图、报错或诊断信息。
本技能的本质是:
- 调节氛围。
- 委婉指出“信息不够”。
- 引导用户补充可诊断材料。
## Style Requirements
### Tone
- 语气认真。
- 内容离谱。
- 像半仙,也像半懂不懂系统底层的老网管。
- 不能太疯,必须让读者看得出最后是在认真索取诊断材料。
### Ingredient Mix
每次可自然混合其中 2 到 4 类,不要全塞满:
- 五行八卦:金木水火土、命格、气运、卦象、劫数。
- 风水命理:财位、灵脉、命宫、星象、因果、渡劫。
- 技术黑话CPU、GPU、DirectX、驱动、DNS、网络节点、路径、资源加载、缓存、线程、句柄。
- 明日方舟世界观:泰拉、罗德岛、源石、干员、招募、基建、商店。
- Windows 玄学:环境变量、路径风水、驱动走火入魔、更新逆天改命、权限灵压紊乱。
### Output Length
- 优先 3 到 5 句。
- 最长不超过一个短段落加一句收束。
- 必须适合直接发评论区,不写成长文。
## Hard Constraints
- 不要给出看似确定的错误技术结论。
- 不要把玄学分析写成真正的排障结论。
- 不要误导用户去执行危险操作。
- 不要假装已经看过日志。
- 不要编造不存在的 MAA 功能、设置项或错误码。
- 最终必须回到“请补信息”,不能只整活不落地。
## Fixed Output Pattern
默认按这个结构生成:
1. 用户问题复述
2. 掐指一算
3. 一段玄学分析
4. 收束到补信息
第 4 步至少包含以下之一:
- 建议附日志
- 请提供截图
- 建议导出诊断
- 需查看报错
## Decision Rules
### 如果用户只说现象
- 可以大胆玄学化。
- 但最后必须让对方补日志或截图。
### 如果用户给了很少的技术词
- 可以把这些词改写进玄学分析里。
- 例如把 GPU、DNS、DirectX、驱动、路径、资源加载写成“命宫”“灵压”“因果”“风水”。
### 如果用户是在评论区场景
- 优先更短、更像一句回帖。
- 结尾用一句点题,例如“贫道也只能隔着网线观星象”。
### 如果用户要更像“官方吐槽”
- 保持克制,不要太角色扮演。
- 降低疯感,增加“请补日志”的清晰度。
## Safe Landing Lines
收束句优先参考这些模式,自然改写即可:
- 建议还是发下日志,不然贫道也只能隔着网线观星象了。
- 建议附个报错截图或者日志,贫道好继续开坛作法。
- 建议导出一份诊断信息,不然这卦只能算到天机不可泄露这一步。
- 还得看看具体报错,不然这边最多只能做玄学会诊。
- 日志没发,相当于病人来了但不说哪里疼。
## Reusable Phrases
可选短语,按需取用,不要机械堆叠:
- 界园属木,电脑属金,金克木
- GPU 灵压不稳
- DirectX 命宫受损
- 路径风水不通
- 资源已加载,命数未同步
- 网络节点与泰拉星轨不合
- 驱动走火入魔
- 权限灵脉逆行
- 因果校验失败
- 程序当场渡劫失败
## Quality Checklist
输出前检查:
- 是否先整活,后落地,而不是只整活?
- 是否明确表达了“信息不足”?
- 是否引导对方提供日志、截图、报错或诊断?
- 是否避免了伪装成真实技术结论?
- 是否足够短,适合评论区?
## Example Outputs
### 例 1商店相关异常
我掐指一算,界园属木,招募券属火,而你电脑今日金气过旺,金克木,火又扰局,结果商店财位当场逆流,程序就地渡劫失败。
此乃典型的“资源已加载,命数未同步”之相。没有日志,贫道也只能隔着网线观星象了。
### 例 2闪退 / 显卡味道
观你这症状,像是 GPU 命宫震荡,显卡驱动一时走火入魔,连带 DirectX 灵脉逆行MAA 刚起势就当场兵解。
不过卦象只能看个大概,建议附个报错截图或者日志,贫道好继续开坛作法。
### 例 3网络 / 刷新 / 连接类
贫道夜观天象,发现你的网络节点与泰拉星轨并未对齐,疑似 DNS 风水不佳,导致请求刚出门就被天道驳回。
这卦再往下算就得看因果原文了,建议把报错和日志一并带来。
## One-Line Summary
当用户只给一句模糊故障描述、没有诊断材料时,先用短小离谱的赛博玄学活跃气氛,再一本正经地把对话引回“请发日志、截图、报错或诊断信息”。

View File

@@ -0,0 +1,58 @@
# MAA Issue Log Analysis Knowledge Base
## Stateful UI Automation Checks
- 分析 issue 时,先区分三层东西,不要混为一谈:
- 游戏规则
- MAA 当前自动化流程
- 用户对最终状态的预期
- 遇到“一键/快捷/批量”按钮时,先看资源任务和日志里的真实控制路径,不要只看现象。
- 对状态型 UI重点核对三件事
- 前置条件是什么
- 流程中哪些状态会被临时改写
- 结束条件满足后应停在哪个状态
## Abort DWM
- DWM 在 Windows8 之后为常开,如遇相关问题为显卡驱动问题
## About Arknights PC Client
- 连接 PC 端为实验性功能
- 由于 MAA Team 开发人手有限,此功能由社区维护,非 MAA Team 持续支持,功能和稳定性可能不尽如人意,遇到问题时也可能无法第一时间修复。
- 在使用 PC 端的过程中,如遇到影响使用的问题,建议改用 ADB 连接 Android 模拟器或移动设备,获得更稳定的体验。
- 我们也始终欢迎有能力的开发者参与贡献提交 Pull Request共同完善 PC 端支持。
- PC 的鼠标为客户端独立渲染的,鼠标会挡住需要识别的目标,在需要点击相同位置的图标或重试时极有可能导致下一次识别失败。
## Reception Clue Analysis
- 会客室线索问题先对照当前资源任务和日志,不要只凭体感下结论。
- 取下线索 -> 赠送重复线索 -> 当前线索数量够开启线索交流时才统一放置,这是 by design。
- “送完重复线索后线索板暂时为空”或“用户自己放的线索被统一取下”本身不能直接判成 bug。
## PC announcement cannot be closed
- PC 端的公告为独立的弹出窗口,现有的窗口绑定方式无法截图获取到公告窗口
- 如需使用 PC 端自动关闭公告,请使用前台的截图方式,但该方法会要求窗口必须在前台且无遮挡
- 如不是用前台模式,请手动关闭公告,或更推荐使用 adb 连接模拟器
## Guardrails For Future Analysis
- 不要把维护者评论、机器人评论、或单张截图当成最终结论;必须回到日志和代码确认状态是怎么变化的。
- 对状态型 UI先回答“日志里的行为是否符合设计”再回答“这个设计是否符合用户预期”。
- 不要只看最终现象;要结合配置、`gui.log``asst.log`、资源任务和当前代码一起判断。
## MAA multi-opening and multi-account management
- MAA 在设计上仅针对单账号使用。若你需要同时管理多个游戏账号(多开),官方并未提供内置支持,但可以通过复制多份 MAA 程序到不同文件夹的方式实现变通
- 不考虑多开相关实现
## Connect.TouchMode: adb
- MAA 触控模式共三种:`minitouch`(默认)、`maatouch`(实验性)和 `adb input`(不推荐使用)。
- `maatouch``minitouch` 的 Java 实现,并额外支持按键输入,可避免 minitouch 走 adb 命令传输按钮带来的较高延迟。
- `adb input` 仅用于兼容部分系统版本过低、无法运行 `minitouch``maatouch` 的实体机设备。
- 能用前两种模式时,绝不推荐使用 `adb input`
- `adb input` 的滑动容易拖飞,为避免此问题,滑动速度会被设置得非常慢,且滑动距离与其他两种模式不同;在需要精确控制坐标的场景下无法使用。
- 若用户反馈触控相关异常且配置为 `adb`,应优先建议切换为 `minitouch``maatouch`,排除模式本身带来的延迟与兼容性问题。

View File

@@ -5,12 +5,20 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
# MAA Issue Log Analysis
## Required Reading
- 开始分析前,先读取同目录的 `KNOWLEDGE.md`,先用其中的通用误判规则校正自己的分析路径,再读 issue 和日志。
- 如果 issue 涉及会客室、线索、快捷按钮、批量按钮、自动领取/赠送/放置这类“会先改变界面状态再继续执行”的流程,必须先套用 `KNOWLEDGE.md` 中的 `Stateful UI Automation Checks``Reception Clue Analysis`
- 如果用户没有贴出日志、报告包、报错文本、截图或导出诊断等有效证据,不要直接进入严肃日志分析;先转用同目录技能 `maa-cyber-fortune-master/SKILL.md` 生成一段短小的玄学回复,把对话自然引导到“补日志 / 截图 / 报错 / 诊断信息”。
## Scope
- 仅用于上游公开仓库 `https://github.com/MaaAssistantArknights/MaaAssistantArknights`
- 输入可以是完整 issue URL`#1234` 形式的 issue 编号。
- 只分析公开 issue 中可直接访问的附件。
- 如果没有可下载的 `report_*.zip`,先明确说明证据不足,再尽量基于 issue 文本、截图、代码和文档给出初步判断
- 如果没有可下载的 `report_*.zip`,先判断用户是否至少提供了其他有效证据(报错文本、截图、导出诊断、清晰复现步骤)
- 如果连这些也没有,优先转用 `maa-cyber-fortune-master/SKILL.md`,不要直接输出严肃分析模板。
- 如果没有 `report_*.zip` 但仍有其他有效证据,再明确说明证据不足,并尽量基于 issue 文本、截图、代码和文档给出初步判断。
- 如果评论里有机器人提示“日志没有上传成功”,不要直接放弃;正文里的附件链接仍可能可下载。
## Workflow
@@ -20,19 +28,26 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `#1234` 视为 `https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/1234`
- 如果不是 `MaaAssistantArknights/MaaAssistantArknights`,停止并说明此 skill 不适用。
2. 获取 issue 内容
2. 先判断证据是否足够
- 如果用户只给一句模糊现象,且没有日志、报告包、截图、报错文本、导出诊断或清晰复现步骤,不进入本 skill 的严肃分析流程。
- 此时改用 `maa-cyber-fortune-master/SKILL.md`,先用短小玄学回复活跃气氛,再把对话引导到补充日志、截图、报错或诊断信息。
- 只有在用户已经提供可分析证据时,才继续下面的 issue / 日志分析步骤。
3. 获取 issue 内容。
- 读取正文和评论。
- 提取这些信息UI/Core/Resource 版本、资源时间、模拟器类型、分辨率、截图增强、GPU 推理、任务名、关卡名、是否有 `-hard`、用户现象、复现步骤、维护者或机器人评论。
- 不要把评论结论当成唯一证据;仍要用日志和代码自行验证。
- 如果 issue 文本或评论里已经有人下了“这是游戏设计 / 不是 bug / 本来就这样”的结论,先暂存,不要直接复述成最终判断;先核对日志、资源任务和当前代码是否真的支持这个结论。
3. 提取报告附件。
4. 提取报告附件。
- 关注 `report_*.zip`
- 附件可能同时出现在正文和评论。
-`report_MM-dd_HH-mm-ss` 分组,同一时间戳下的 `part01``part02``part03` 是独立 zip不是需要先拼接的分卷压缩包。
4. 先看 `part01`,再决定是否看 `part02+`
5. 先看 `part01`,再决定是否看 `part02+`
- 根据 WPF 打包逻辑,`part01` 一定优先,通常包含:
- `debug/asst.log`
@@ -50,7 +65,7 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `debug/dumps/*`
- `part02+` 可能是空包,也可能只包含图片;不要默认里面一定有文本日志。
5. 建立时间线。
6. 建立时间线。
- 先用 `gui.log` 找用户点击、所选关卡、任务链开始、报错时间。
- 再用 `asst.log` 还原底层行为。
@@ -60,8 +75,12 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 先在 `gui.log` 确认 `AttachWindow: Found window`
- 再在 `asst.log` 里看 `Win32Controller::screencap``Win32Controller::click`
- 不要再按 ADB 端口或 `ConnectionInfo.ConnectFailed` 的思路分析
- 如果问题属于状态型 UI 自动化(例如会客室线索、批量按钮、快捷按钮、先拆后放一类流程),时间线里必须单独标出:
- 自动化在什么时刻先修改了用户原状态
- 后续进入下一步或恢复终态由哪个条件控制
- 条件不满足时流程是停止、跳过,还是按设计停在别的状态
6. 区分 issue 当时环境和当前分支。
7. 区分 issue 当时环境和当前分支。
- 先以报告包中的 `config/``cache/resource/` 还原用户当时实际运行的配置和资源。
- 再对照当前仓库代码,判断该问题是当前仍存在,还是当时存在但现在已修复。
@@ -245,6 +264,12 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 摘几十行足够支撑结论的片段即可。
- 不要把整份日志倾倒进回复。
8. 对状态型 UI 问题,结论前先做一次“设计一致性检查”。
- 先判断日志中的状态变化是否符合游戏规则、资源任务定义和当前实现。
- 如果流程与设计一致,不要把用户不喜欢的中间状态直接归为 bug。
- 只有当日志、资源任务和代码彼此冲突,或流程没有达到设计要求的终态时,再归类为实现缺陷。
## Common Patterns
- `gui.log` 只显示“连接失败”,但 `asst.log` 里已经给出 `adb devices``adb connect`、端口轮询和 `ConnectionInfo`。连接类问题必须以 `asst.log` 为准。
@@ -254,6 +279,8 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `part02` 可以是空包,也可以只包含图片;不要因为没有文本日志就把它判成“无用分卷”。
- issue 机器人评论“日志没有上传成功”时,不要自动当真;先验证正文附件是否仍可下载。
- 如果 `gui.log` 说“任务出错”,但对应 `taskid``asst.log` 实际 `AllTasksCompleted`,要明确写“本次日志未复现用户描述的问题”。
- 对会客室 / 线索 issue如果 `asst.log` 里出现 `InfrastClueQuickInsert``remove_clue``SendClues``InfrastClueQuickSendDuplicates`,先对照资源任务判断这是不是当前设计流程,不要只看线索板中途是否为空。
- 如果线索流程里出现“取下线索 -> 赠送重复线索 -> 条件满足后统一放置”,默认先按 by design 处理;只有当日志显示本应统一放置却没有发生时,再继续追实现问题。
- 用户日志里的任务流程与当前主线代码明显不一致,且当前代码看起来已经修掉了该问题:
- 先确认用户版本,必要时切到对应 tag例如 `git checkout vXXX`)核对旧逻辑。
@@ -261,7 +288,7 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 如果主线已修复,再看修复 commit 是否已进入 tag / release已发版建议升级未发版建议等待 release。
- `gui.new.json``gui.json` 和实际日志不一致时,不要急着判“用户配置写错了”;先看 `gui.new.json.bak``gui.json.old`,尤其是用户复现后又改回开关的场景。
-`ConnectConfig=PC` 的 issue 里,`Win32Controller::click` 正常返回不代表点击真的生效;要看点击后的下一帧中,按钮状态、数量 OCR、场景识别有没有变化。
- `gui.log`已使用 48 小时内过期的理智药这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `9天``NotExpiring` 等相反证据,应优先相信 `asst.log`
- `gui.log`"已使用即将过期的理智药"这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `3天``NotExpiring` 等相反证据,应优先相信 `asst.log`注意过期天数阈值现为可配置参数 `medicine_expire_days`,不再是固定 48 小时。
## Correlating With Code
@@ -361,7 +388,46 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
## Output Format
最终回答用这个结构:
先做输出分流,不要无论什么情况都套完整模板。
### 分流规则
- 如果用户没有提供有效证据,只给出一句模糊现象,或只有 issue 文本但没有日志、报告包、截图、报错文本、导出诊断、清晰复现步骤,那么不要输出下面那套完整分析模板。
- 这类场景直接改用 `maa-cyber-fortune-master/SKILL.md` 的风格回复,并把“赛博算一卦”放在开头。
- 此时输出必须足够短,通常 2 到 4 句即可。
- 这类短回复里不要再展开:
- `Issue 概要`
- `关键证据`
- `根因判断`
- `修复方案`
- `English translation`
- “点击此处展开”这类折叠块
- 本质要求是:先用玄学接住气氛,再用一句话明确要求补日志、截图、报错或诊断信息。
### 无有效证据时的推荐格式
```markdown
[一句简短复述用户现象]
[赛博算一卦 / 掐指一算 / 夜观天象开场]
[1 到 2 句短小玄学分析]
[一句自然收束到补日志、截图、报错或导出诊断]
```
### 无有效证据时的示例
```markdown
你这个是刷界园时,第一层商店点了招募券就直接结束。
赛博算一卦,界园属木,招募券属火,如今商店财位一震,像是招募灵脉和界园卦象临时撞了车,程序当场收摊回府。
不过这卦现在只有天象,没有脉案。建议补一份复现当次的日志或报错截图,不然贫道也只能隔着网线观星象。
```
### 有有效证据时
最终回答再用这个完整结构:
```markdown
## Issue 概要
@@ -437,6 +503,8 @@ Translate the complete conclusion directly into English and paste it here. Note
## Reminders
- 如果用户没有贴出日志、报告包、截图、报错文本或导出诊断,不要硬套本 skill 的完整分析模板;优先改用 `maa-cyber-fortune-master/SKILL.md`,先把气氛接住,再把话题引回补证据。
- 如果是“无有效证据”分支,赛博算卦段落应该放在最开头,并直接结束在“请补证据”;不要再追加长篇的 Issue 摘要、猜测性根因、修复方案或英文翻译。
- 不要只看 `gui.log` 下结论。
- 不要把 issue 评论或机器人提示当成唯一证据。
- 不要把当前分支资源直接当成 issue 当时的真实环境;先看报告包里的 `cache/resource`

View File

@@ -0,0 +1,262 @@
---
name: code-review-report
description: >-
全项目代码审查流水线,输出结构化审查报告到 Markdown 文件。
按模块拆分 Review Unit派发 subagent 并行审查,汇总发现并分类,
生成完整的问题清单报告,不执行任何修复。
Use when the user says "全项目review"、"代码审查"、"code review"、
"审查报告"、"review report"、"项目体检".
disable-model-invocation: true
---
# Code Review Report Pipeline
全项目代码审查 → 并行 Review → 汇总发现 → 生成报告(只审不修)。
## 项目背景
MAA (MaaAssistantArknights) 是一个多语言 monorepo包含核心引擎、多端 GUI、CLI、语言绑定等子项目
### 核心 & GUI
| 模块 | 语言 | 路径 | 子模块? | 构建 |
|------|------|------|---------|------|
| MaaCore | C++20 | `src/MaaCore/` | 否 | CMake |
| MaaWpfGui | C# / WPF (.NET 10) | `src/MaaWpfGui/` | 否 | MSBuild |
| MaaMacGui | Swift / SwiftUI | `src/MaaMacGui/` | **是** | Xcode |
| MAAUnified | C# / Avalonia (.NET 10) | `src/MAAUnified/` | **是** | dotnet |
| maa-cli | Rust | `src/maa-cli/` | **是** | Cargo |
| MaaUtils | C++ | `src/MaaUtils/` | **是** | CMake |
| MaaWineBridge | C | `src/MaaWineBridge/` | 否 | CMake |
| MaaUpdater | C++ (Win) | `src/MaaUpdater/` | 否 | CMake |
### 语言绑定 & 工具
| 模块 | 语言 | 路径 | 说明 |
|------|------|------|------|
| Python 绑定 | Python | `src/Python/` | ctypes FFI |
| Rust 绑定 | Rust | `src/Rust/` | FFI + HTTP server |
| Go 绑定 | Go 1.23 | `src/Golang/` | Gin HTTP wrapper |
| Java 绑定 | Kotlin/Java | `src/Java/` | JNA + Ktor HTTP/WS |
| Dart 绑定 | Dart | `src/Dart/` | Flutter FFI plugin |
| Woolang 绑定 | Woolang | `src/Woolang/` | C API wrapper |
| C++ 示例 | C++ | `src/Cpp/` | 集成示例 |
| 工具脚本 | Python/C++/Shell | `tools/` | 开发维护工具 |
| 任务资源 | JSON | `resource/` | 任务定义/模板/OCR |
| 文档站 | Markdown/TS | `docs/` | VuePress |
| 公共头文件 | C | `include/` | AsstCaller.h 等 |
### 编码规范执行
| 配置文件 | 作用范围 |
|----------|----------|
| `.clang-format` | C++ (pre-commit 限定 `src/MaaCore/**`) |
| `.editorconfig` (多层) | 全局 + MaaCore/MaaWpfGui/maa-cli/MaaUtils 各有覆盖 |
| `rustfmt.toml` | Rust (maa-cli) |
| `.swift-format` | Swift (MaaMacGui) |
| `stylecop.json` | C# (MaaWpfGui) |
| `.prettierrc` | JSON/YAML |
| `analysis_options.yaml` | Dart |
| `.pre-commit-config.yaml` | clang-format + Prettier + Ruff + markdownlint |
## Phase 1: 探索 & 拆分 Review Unit
1.`explore` subagent 扫描项目,确认当前有哪些模块/子目录有实质改动或需要关注
2.**模块 × 关注维度** 拆分为 12-20 个 Review Unit每个 Unit
- 文件范围 ≤ 8 个核心文件C++ 可适当放宽,但避免单 Unit 超 2000 行总量)
- 有明确的 review 焦点
- 提供该模块的背景信息
3. 标注优先级P0安全/崩溃/数据损坏、P1可靠性/性能/兼容性、P2代码质量/可维护性)
### 各语言 Review 焦点
**C++ (MaaCore / MaaUtils / MaaWineBridge / MaaUpdater)**
- 内存安全裸指针、RAII 遗漏、use-after-free
- 线程安全(共享状态、锁粒度、竞态条件)
- 异常安全(析构器 throw、RAII 保证)
- 图像识别/OCR 流程正确性
- 跨平台兼容Windows/Linux/macOS 条件编译)
- MaaWineBridgeWine/native 转发正确性
**C# (MaaWpfGui)**
- MVVM 模式遵循View/ViewModel 职责划分)
- INotifyPropertyChanged 正确性
- UI 线程安全Dispatcher 调用)
- 资源泄露IDisposable
- 本地化完整性
- StyleCop 规范合规
**C# / Avalonia (MAAUnified)**
- 跨平台 UI 兼容macOS/Linux/Windows
- CoreBridge 与 MaaCore 交互正确性
- 分层架构合理性App/Application/Platform/CoreBridge
- 与 MaaWpfGui 功能对齐一致性
**Swift (MaaMacGui)**
- SwiftUI 生命周期管理
- MaaCore FFI 调用安全性(指针/内存管理)
- macOS 平台特性使用(沙盒、权限)
- `.swift-format` 规范合规
**Rust (maa-cli)**
- 所有权/生命周期正确性
- Error handling`?` 传播链完整性)
- unsafe 代码合理性与安全注释
- Cargo feature 配置正确性
- 参考 `src/maa-cli/AGENTS.md` 的检查项
**语言绑定 (Python/Rust/Go/Java/Dart/Woolang)**
- FFI 调用安全性(指针、回调、生命周期)
- 资源释放Handle/Destroy 配对)
-`include/AsstCaller.h` 公共 API 的一致性
- 错误传播与异常处理
**Python (tools/)**
- 类型注解一致性
- 异常处理(不吞异常)
- 文件路径跨平台处理
**JSON (resource/)**
- Schema 合规性
- 模板匹配参数合理性
- 多语言/多服务器资源一致性
## Phase 2: 并行 Review
按优先级批次启动 subagent
```
第一批P0 Unit3-5 个并行)
第二批P1 Unit5-7 个并行)
第三批P2 Unit剩余全部
```
每个 review subagent 的 prompt 模板:
```
你是 MAA 项目的代码审查员。审查以下文件,找出:
1. Bug逻辑错误、边界条件、竞态、崩溃风险
2. 安全问题(缓冲区溢出、注入、信息泄露、不安全的反序列化)
3. 性能问题不必要的拷贝、内存分配热点、O(n²) 算法)
4. 跨平台兼容性(平台特定代码未条件编译、路径分隔符硬编码)
5. 可维护性(巨型函数、重复代码、缺少错误处理)
项目语言:{language}
文件范围:{files}
背景:{background}
重点关注:{focus_areas}
输出格式:按严重性排序的问题列表(最多 Top 8。每个问题包含
- 严重性Critical / Major / Minor
- 位置:文件名 + 行号范围
- 问题:一句话描述
- 影响:会导致什么后果
- 建议:修复方向(一句话)
- 代码片段:相关代码(可选,简短引用即可)
```
## Phase 3: 汇总 & 生成报告
收集所有 Unit 的发现,按以下步骤生成报告:
1. **去重合并**:同一 bug 在多个 Unit 被发现时,保留最详细的描述
2. **分类归类**
| 分类 | 含义 | 图标 |
|------|------|------|
| 崩溃/安全 | 可导致崩溃或被利用 | 🔴 |
| 可靠性 | 影响功能正确性 | 🟠 |
| 性能 | 影响运行效率 | 🟡 |
| 兼容性 | 跨平台/版本兼容问题 | 🔵 |
| 代码质量 | 可维护性与规范 | ⚪ |
1. **按模块和严重性排序**
2. **生成统计摘要**
### 报告模板
将报告输出到项目根目录的 `code-review-report.md`,使用以下模板:
```markdown
# MAA 代码审查报告
> 审查时间:{date}
> 审查范围:{modules_reviewed}
> Review Unit 数量:{unit_count}
## 摘要
| 严重性 | 数量 |
|--------|------|
| 🔴 Critical | {n} |
| 🟠 Major | {n} |
| 🟡 Minor | {n} |
| 总计 | {total} |
| 模块 | Critical | Major | Minor |
|------|----------|-------|-------|
| MaaCore (C++) | {n} | {n} | {n} |
| MaaWpfGui (C#) | {n} | {n} | {n} |
| MaaMacGui (Swift) | {n} | {n} | {n} |
| MAAUnified (C#/Avalonia) | {n} | {n} | {n} |
| maa-cli (Rust) | {n} | {n} | {n} |
| MaaUtils (C++) | {n} | {n} | {n} |
| MaaWineBridge (C) | {n} | {n} | {n} |
| 语言绑定 | {n} | {n} | {n} |
| tools (Python) | {n} | {n} | {n} |
| resource (JSON) | {n} | {n} | {n} |
## 🔴 Critical 问题
### [{序号}] {问题标题}
- **模块**{module}
- **文件**`{file}:{line_range}`
- **分类**{category}
- **描述**{description}
- **影响**{impact}
- **建议修复方向**{suggestion}
{code_snippet可选}
---
## 🟠 Major 问题
### [{序号}] {问题标题}
...
## 🟡 Minor 问题
### [{序号}] {问题标题}
...
## 审查覆盖范围
| Review Unit | 模块 | 焦点 | 优先级 | 文件数 |
|-------------|------|------|--------|--------|
| {unit_name} | {module} | {focus} | {priority} | {file_count} |
| ... | ... | ... | ... | ... |
## 附注
- 本报告仅列出发现,未执行任何修复
- 建议按 Critical → Major → Minor 顺序处理
- 部分问题可能需要跨模块协同修复
```
## 执行要点
- **只审不修**:本 skill 不修改任何代码,所有发现仅记录到报告
- **报告路径**:默认输出到 `code-review-report.md`,用户可指定其他路径
- **增量 vs 全量**:如用户指定范围(如"只看 MaaCore"),相应缩减 Unit 拆分
- **subagent 并行上限**:每批不超过 7 个,避免上下文竞争
- **代码片段引用**:报告中引用代码时使用 ` ```startLine:endLine:filepath ` 格式

212
.devin/wiki.json Normal file
View File

@@ -0,0 +1,212 @@
{
"repo_notes": [
{
"content": "所有 wiki 页面标题、正文、说明文字必须使用简体中文;涉及外部链接时优先使用中文文档,如 docs.maa.plus 的 zh-cn 页面;仅在中文名不通用时保留 OCR、ADB、CLI、JSON、API 等缩写。"
},
{
"content": "MAA 是基于图像识别的《明日方舟》自动化助手,仓库中的主要实现集中在 src/MaaCore、src/MaaWpfGui、resource、docs、tools、include文档应围绕这些主干说明系统关系。"
},
{
"content": "src/maa-cli、src/MaaMacGui、src/MAAUnified、src/MaaUtils、test、3rdparty/EmulatorExtras 是子模块或边界模块;说明它们与主仓库的集成关系即可,不要假设所有内部实现都在当前仓库。"
},
{
"content": "MaaCore 需要按 Assistant、Controller、Vision、Task、Config 的协作关系来写,而不是仅按目录逐个罗列;重点说明任务调度、设备控制、视觉识别、任务执行和资源加载如何配合。"
},
{
"content": "resource/tasks 目录是任务定义的主入口,加载时会递归合并目录内 JSON旧的 tasks.json 只是兼容旧结构的 deprecated fallback不应继续作为主要入口来描述。"
},
{
"content": "resource/global/<client>/resource 与 resource/platform_diff/*/resource 是覆盖层,用于外服适配和平台差异;说明时要突出主资源与覆盖资源的关系,而不是把它们写成独立产品线。"
},
{
"content": "WPF GUI 是主仓库中的主要图形界面CLI、Mac GUI 与各语言绑定是 MaaCore 的其他入口;文档应强调共享核心引擎、不同接入层的整体架构。"
},
{
"content": "unit_test 是仓库内的 Catch2 与 CTest 单元测试体系test 是 MaaTestSet 回归测试子模块docs 是独立的 VuePress 文档站,应按 manual、protocol、develop、glossary 等内容域来组织说明。"
},
{
"content": "interface.json 定义 controller 与 resource 变体package-definition.json 定义发布包形态;构建、发布和资源相关页面需要覆盖这两个入口文件的作用。"
}
],
"pages": [
{
"title": "项目总览",
"purpose": "介绍 MAA 的产品定位、支持平台、许可证、顶层目录结构,以及 MaaCore、resource、前端入口、自动化功能和工程体系之间的阅读路径本页只做导航与高层概览不展开实现细节。",
"page_notes": [
{
"content": "本页只负责建立阅读路径和高层认知,不重复 MaaCore、resource、自动化功能或工程体系子页中的实现细节。"
}
]
},
{
"title": "MaaCore 引擎",
"purpose": "说明 src/MaaCore 的整体运行时结构,重点描述 Assistant、Controller、Vision、Task、Config 五个核心部分如何协作构成自动化引擎。",
"parent": "项目总览",
"page_notes": [
{
"content": "优先围绕 Assistant、Controller、Vision、Task、Config 的协作关系展开,并用 src/MaaCore 中的实际类型和目录说明运行时结构。"
}
]
},
{
"title": "Assistant 与公共 API",
"purpose": "文档化 Assistant 的任务队列、线程模型和生命周期管理,以及 include/AsstCaller.h 暴露的公共 C 接口如何作为各类前端和绑定层的统一调用入口。",
"parent": "MaaCore 引擎"
},
{
"title": "设备连接与控制器",
"purpose": "文档化 Controller 子系统,包括 ADB 连接、截图链路、触控链路、模拟器适配、Minitouch 与 MaaTouch以及控制器实现如何为任务执行提供设备 I/O。",
"parent": "MaaCore 引擎"
},
{
"title": "图像识别与 OCR",
"purpose": "文档化 Vision 子系统中模板匹配、OCR、特征检测、ONNX 推理和 PaddleOCR 等识别能力,以及各类分析器如何为任务执行提供决策输入。",
"parent": "MaaCore 引擎"
},
{
"title": "任务引擎与执行模型",
"purpose": "文档化 AbstractTask、PackageTask、InterfaceTask、ProcessTask、任务插件和流程控制机制说明任务定义如何转换为可执行的自动化流程。",
"parent": "MaaCore 引擎"
},
{
"title": "资源与配置系统",
"purpose": "说明 resource 目录与 MaaCore 配置加载体系的关系,概述任务数据、模板、模型、外服覆盖和专用数据包如何共同驱动自动化逻辑。",
"parent": "项目总览"
},
{
"title": "资源加载与覆盖规则",
"purpose": "文档化 ResourceLoader、TaskData、TemplResource 和 WPF 侧资源加载流程,说明主资源、缓存资源、外服资源和平台差异资源的搜索路径与叠加顺序。",
"parent": "资源与配置系统",
"page_notes": [
{
"content": "以 src/MaaCore/Config/ResourceLoader.cpp、src/MaaCore/Config/TaskData.cpp、src/MaaWpfGui/Main/AsstProxy.cs 和 interface.json 为主要事实锚点,明确目录优先、覆盖叠加和外服差异的加载规则。"
}
]
},
{
"title": "任务 JSON 与任务树",
"purpose": "文档化 resource/tasks 目录中的任务定义结构、任务 JSON 的识别与动作协议、next、timeout、onError 等跳转规则,以及任务树的组织方式。",
"parent": "资源与配置系统",
"page_notes": [
{
"content": "强调 resource/tasks 是主入口、目录会递归合并 JSON、旧的 tasks.json 是 deprecated fallback并说明任务树与模板资源之间的关系。"
}
]
},
{
"title": "模板、OCR 模型与识别资源",
"purpose": "文档化 resource/template、resource/onnx、resource/PaddleOCR、resource/PaddleCharOCR、resource/ocr_config.json、resource/battle_data.json 等识别资源的职责分工,以及它们如何支撑视觉分析。",
"parent": "资源与配置系统"
},
{
"title": "外服与平台差异资源",
"purpose": "文档化 resource/global 与 resource/platform_diff 的目录结构、覆盖逻辑与适配用途,说明国际服、日服、韩服、繁中服以及 PC 平台差异资源如何在主资源之上叠加。",
"parent": "资源与配置系统"
},
{
"title": "专用数据包与玩法资源",
"purpose": "文档化 resource/copilot、resource/custom_infrast、resource/roguelike、resource/Arknights-Tile-Pos、resource/recruitment.json、resource/infrast.json、resource/stages.json 等专用数据包的职责,以及它们与自动化功能页的关系。",
"parent": "资源与配置系统"
},
{
"title": "前端与集成",
"purpose": "概述 WPF GUI、CLI、Mac GUI 和多语言绑定等接入层如何共享 MaaCore以及本仓库实现与子模块边界之间的关系。",
"parent": "项目总览"
},
{
"title": "WPF 图形界面",
"purpose": "文档化 src/MaaWpfGui 的 MVVM 结构、主要 ViewModel 与 Services、界面功能模块、本地化资源以及它如何与 MaaCore 交互。",
"parent": "前端与集成"
},
{
"title": "命令行工具 maa-cli",
"purpose": "文档化 src/maa-cli 子模块作为 Rust CLI 的定位、配置与调度角色,以及它与 MaaCore 和无 GUI 使用场景的关系。",
"parent": "前端与集成"
},
{
"title": "多语言集成接口",
"purpose": "文档化 include/AsstCaller.h 作为统一接口入口,以及 src/Python、src/Java、src/Rust、src/Golang、src/Dart、src/Woolang 等绑定层如何在不同语言环境中接入 MaaCore。",
"parent": "前端与集成",
"page_notes": [
{
"content": "以 include/AsstCaller.h 为统一入口,按统一 C 接口加各语言封装层的方式组织内容,不按语言逐一展开成平行小页面。"
}
]
},
{
"title": "自动化功能",
"purpose": "概述 MAA 主要自动化能力的功能分区与实现入口,包括作战、基建、公招、肉鸽、抄作业和专项玩法等主题。",
"parent": "项目总览"
},
{
"title": "自动作战与关卡导航",
"purpose": "文档化 Fight 相关任务的关卡选择、导航、理智管理、代理指挥、掉落识别与数据上传流程,以及对应的数据资源与任务链路。",
"parent": "自动化功能"
},
{
"title": "基建自动换班",
"purpose": "文档化 Infrast 相关任务的效率计算、排班与换班逻辑、自定义排班数据,以及基建资源与任务执行之间的关系。",
"parent": "自动化功能"
},
{
"title": "自动公招与标签识别",
"purpose": "文档化公招标签 OCR、标签组合策略、识别结果处理与 recruitment 数据的关系,以及公招自动化的主要任务链路。",
"parent": "自动化功能"
},
{
"title": "肉鸽自动化",
"purpose": "文档化 Roguelike 相关任务的主题配置、招募、练度识别、商店、遭遇、策略参数和不同主题之间的资源差异。",
"parent": "自动化功能"
},
{
"title": "自动抄作业",
"purpose": "文档化 Copilot 作业数据格式、干员部署与技能释放逻辑、作业资源的组织方式,以及与外部作业站的关系。",
"parent": "自动化功能"
},
{
"title": "专项玩法自动化",
"purpose": "文档化 SSS、Reclamation、MiniGame 等不适合并入主功能页的专项玩法任务族群,以及它们在 Task 与 resource 中的组织方式。",
"parent": "自动化功能"
},
{
"title": "工程体系",
"purpose": "概述构建、发布、测试、文档站、内部工具与子模块边界之间的工程协作关系。",
"parent": "项目总览"
},
{
"title": "构建系统、CI/CD 与发布包",
"purpose": "文档化 CMake 构建体系、依赖管理、跨平台构建流程、.github/workflows 中的持续集成流程,以及 package-definition.json 定义的发布包形态。",
"parent": "工程体系"
},
{
"title": "测试体系与回归资源",
"purpose": "文档化 unit_test 的 Catch2 与 CTest 单元测试体系、test 子模块的回归测试角色、suite 组织方式,以及 CI 中的测试选择逻辑。",
"parent": "工程体系",
"page_notes": [
{
"content": "必须显式区分 unit_test 与 test 子模块,分别说明它们的定位、运行方式与 CI 集成方式,避免混写为单一测试体系。"
}
]
},
{
"title": "内部工具集",
"purpose": "文档化 tools 目录下用于资源更新、模板优化、OTA 打包、海外客户端适配、肉鸽辅助和图像处理的内部工具及其维护用途。",
"parent": "工程体系"
},
{
"title": "文档站、协议与开发指南",
"purpose": "文档化 docs 目录作为 VuePress 文档站的结构,串联 manual、protocol、develop、glossary 等内容域,以及它们与外部中文文档站的关系。",
"parent": "工程体系",
"page_notes": [
{
"content": "优先使用 docs 目录内部结构解释文档体系,再引用 docs.maa.plus 中文页面;不要按不同语言版本重复讲述相同主题。"
}
]
},
{
"title": "仓库结构与子模块边界",
"purpose": "文档化顶层目录、include、3rdparty、resource、docs、src 等入口的职责分工,并明确各个子模块或边界模块在仓库中的定位。",
"parent": "工程体系"
}
]
}

View File

@@ -45,8 +45,6 @@ body:
**若待上传压缩包大于 25MB请转而上传该压缩包同日期文件夹中的若干小压缩包**
**若为 MAA 闪退问题,如果 %LOCALAPPDATA%\CrashDumps 中存在 MAA.exe.dmp 文件,请一并上传**
若正在使用 macOS请点击屏幕左上角的“文件”点击“打开日志文件夹”
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -49,8 +49,6 @@ body:
**请在 MAA -> 设置 -> 问题反馈中找到生成日志压缩包按钮,点击并上传压缩包**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -49,8 +49,6 @@ body:
**请在 MAA -> 设置 -> 问题反馈中找到生成日志压缩包按钮,点击并上传压缩包**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -47,8 +47,6 @@ body:
**If the archive to upload is larger than 25MB, please upload smaller archives from the same date folder instead.**
**If the issue is related to MAA crashing, please upload the MAA.exe.dmp file found in %LOCALAPPDATA%\CrashDumps if it exists**
If you are using macOS, please click the "File" option in the top-left corner of the screen, then click "Open Log Folder".
placeholder: |
Please confirm that MAA is not running before uploading files.
validations:
required: true
- type: textarea

View File

@@ -0,0 +1,68 @@
#!/usr/bin/env bash
set -euo pipefail
mode="init"
depth=""
declare -a paths=()
while (($# > 0)); do
case "$1" in
--init)
mode="init"
shift
;;
--remote)
mode="remote"
shift
;;
--depth)
depth="$2"
shift 2
;;
--)
shift
paths+=("$@")
break
;;
*)
paths+=("$1")
shift
;;
esac
done
if ((${#paths[@]} == 0)); then
echo "Usage: $0 [--init|--remote] [--depth N] path [path ...]" >&2
exit 64
fi
is_submodule_path() {
local path="$1"
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' 2>/dev/null \
| awk '{ print $2 }' \
| grep -Fxq "$path"
}
for path in "${paths[@]}"; do
if ! is_submodule_path "$path"; then
echo "Skipping $path: not configured as a submodule in .gitmodules."
continue
fi
if [[ "$mode" == "remote" ]]; then
echo "Updating submodule: $path"
git submodule update --remote "$path"
continue
fi
if [[ -n "$depth" ]]; then
echo "Initializing submodule: $path (depth=$depth)"
git submodule update --init --depth "$depth" "$path"
continue
fi
echo "Initializing submodule: $path"
git submodule update --init "$path"
done

View File

@@ -13,7 +13,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
persist-credentials: false # Needed to bypass protection rules in Push changes
@@ -41,7 +41,7 @@ jobs:
- name: Push changes
if: ${{ steps.check_changes.outcome == 'failure' }}
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

201
.github/workflows/ci-avalonia.yml vendored Normal file
View File

@@ -0,0 +1,201 @@
name: Build MAAUnified (Avalonia + MaaCore Runtime)
on:
workflow_dispatch:
pull_request:
paths:
- ".github/workflows/ci-avalonia.yml"
- "3rdparty/include/**"
- "cmake/**"
- "src/MAAUnified"
- "src/MAAUnified/**"
- "src/MaaCore/**"
- "src/MaaUtils/**"
- "include/**"
- "tools/maadeps-download.py"
- "CMakeLists.txt"
- "CMakePresets.json"
- "!**/*.md"
push:
branches:
- dev-v2
paths:
- ".github/workflows/ci-avalonia.yml"
- "3rdparty/include/**"
- "cmake/**"
- "src/MAAUnified"
- "src/MAAUnified/**"
- "src/MaaCore/**"
- "src/MaaUtils/**"
- "include/**"
- "tools/maadeps-download.py"
- "CMakeLists.txt"
- "CMakePresets.json"
- "!**/*.md"
jobs:
meta:
name: Resolve version tag
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.out.outputs.tag }}
checkout_sha: ${{ steps.out.outputs.checkout_sha }}
steps:
- id: out
env:
CHECKOUT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
echo "checkout_sha=${CHECKOUT_SHA}" >> "$GITHUB_OUTPUT"
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
else
echo "tag=preview-${CHECKOUT_SHA::7}" >> "$GITHUB_OUTPUT"
fi
build:
name: Build ${{ matrix.name }}
needs: meta
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: windows-x64
os: windows-2025-vs2026
rid: win-x64
self_contained: true
cmake_preset: windows-publish-x64
maadeps_triplet: x64-windows
- name: linux-x64
os: ubuntu-latest
rid: linux-x64
self_contained: true
cmake_preset: linux-publish-x64
maadeps_triplet: x64-linux
- name: macos-x64
os: macos-latest
rid: osx-x64
self_contained: true
cmake_preset: macos-publish-x64
maadeps_triplet: x64-osx
steps:
- uses: actions/checkout@v7
with:
ref: ${{ needs.meta.outputs.checkout_sha }}
- name: Fetch required submodules
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MAAUnified src/MaaUtils
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: "10.0.x"
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.x"
- name: Restore app
run: dotnet restore src/MAAUnified/App/MAAUnified.App.csproj
- name: Restore tests
if: matrix.name != 'macos-x64'
run: dotnet restore src/MAAUnified/Tests/MAAUnified.Tests.csproj
- name: Run Linux baseline consistency gate
if: matrix.name == 'linux-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=baseline-consistency.trx"
--filter "FullyQualifiedName~BaselineContractTests|FullyQualifiedName~BaselineCoverageTests|FullyQualifiedName~BaselineRenderSyncTests|FullyQualifiedName~ParityMatrixSyncTests"
- name: Run Linux full MAAUnified test gate
if: matrix.name == 'linux-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=full-maaunified-tests.trx"
- name: Run Windows platform capability contract gate
if: matrix.name == 'windows-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=platform-capability-contract.trx"
--filter "FullyQualifiedName~PlatformCapabilityContractTests"
- name: Run Windows native capability smoke gate
if: matrix.name == 'windows-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=platform-windows-native-smoke.trx"
--filter "FullyQualifiedName~PlatformWindowsNativeSmokeTests"
- name: Upload test result artifacts on failure
if: failure() && matrix.name != 'macos-x64'
uses: actions/upload-artifact@v7
with:
name: MAAUnified-TestResults-${{ matrix.name }}
path: TestResults/${{ matrix.name }}/*.trx
if-no-files-found: ignore
- name: Bootstrap MaaDeps
run: python tools/maadeps-download.py ${{ matrix.maadeps_triplet }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build MaaCore runtime
run: |
cmake --preset ${{ matrix.cmake_preset }} -DINSTALL_PYTHON=OFF -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
cmake --build --preset ${{ matrix.cmake_preset }}
cmake --install build --config RelWithDebInfo
- name: Publish MAAUnified app
run: dotnet publish src/MAAUnified/App/MAAUnified.App.csproj -c Release -r ${{ matrix.rid }} --self-contained ${{ matrix.self_contained }} -o publish
- name: Merge MaaCore runtime (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Copy-Item install\* publish\ -Recurse -Force
if (!(Test-Path "publish\MaaCore.dll")) { throw "MaaCore.dll not found in publish output." }
if (!(Test-Path "publish\resource")) { throw "resource directory not found in publish output." }
- name: Merge MaaCore runtime (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
cp -a install/. publish/
if [[ "$RUNNER_OS" == "Linux" ]]; then
test -f publish/libMaaCore.so
else
test -f publish/libMaaCore.dylib
fi
test -d publish/resource
- name: Package (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
New-Item -ItemType Directory -Path release -Force | Out-Null
$name = "MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
Compress-Archive -Path publish\* -DestinationPath "release\$name.zip"
- name: Package (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
mkdir -p release
name="MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
tar -czf "release/${name}.tar.gz" -C publish .
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: MAAUnified-${{ matrix.name }}
path: release/*

View File

@@ -42,11 +42,13 @@ jobs:
prerelease: ${{ steps.set_pre.outputs.prerelease }}
steps:
- name: Show concurrency group
env:
CONCURRENCY_GROUP: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.head_ref || github.ref_name }}${{ github.ref == 'refs/heads/dev-v2' && format('-{0}', github.sha) || '' }}
run: |
echo "Concurrency Group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.head_ref || github.ref_name }}${{ github.ref == 'refs/heads/dev-v2' && format('-{0}', github.sha) || '' }}"
echo "Concurrency Group: $CONCURRENCY_GROUP"
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
@@ -101,22 +103,21 @@ jobs:
matrix:
arch: [arm64, x64]
fail-fast: false
runs-on: windows-latest
runs-on: windows-2025-vs2026
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
git submodule update --init --depth 1 3rdparty/EmulatorExtras
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils 3rdparty/EmulatorExtras
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -134,22 +135,27 @@ jobs:
run: |
cmake -B build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
cmake --build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} --parallel $env:NUMBER_OF_PROCESSORS
cmake --build build --target MAA.Updater --config RelWithDebInfo --parallel $env:NUMBER_OF_PROCESSORS
cmake --install build --config RelWithDebInfo
- name: Download MaaFramework
if: matrix.arch == 'x64'
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
fileName: "*win-x86_64*.zip"
tag: v5.9.2
fileName: ${{ matrix.arch == 'arm64' && '*win-aarch64*.zip' || '*win-x86_64*.zip' }}
extract: true
out-file-path: MaaFramework-temp
- name: Copy MaaWin32ControlUnit
if: matrix.arch == 'x64'
- name: Copy ControlUnits
run: |
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Generate global.json
shell: bash
run: |
echo '{"sdk":{"version":"10.0.203","rollForward":"disable"}}' > global.json
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
@@ -158,7 +164,7 @@ jobs:
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -204,6 +210,7 @@ jobs:
with:
name: MAAComponent-DebugSymbol-win-${{ matrix.arch }}
path: install/MAAComponent-DebugSymbol-${{ needs.meta.outputs.tag }}-win-${{ matrix.arch }}.zip
compression-level: 0
- name: Organize install files
shell: bash
@@ -212,6 +219,7 @@ jobs:
rm -rf install/*.pdb
rm -rf install/msvc-debug
rm -rf install/*.h
rm -rf install/*.bak
cp tools/DependencySetup_依赖库安装.bat install
@@ -225,6 +233,7 @@ jobs:
with:
name: MAA-win-${{ matrix.arch }}
path: install/MAA-*.zip
compression-level: 0
ubuntu:
name: Build for Ubuntu
@@ -236,19 +245,17 @@ jobs:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
git submodule update --init --depth 1 3rdparty/EmulatorExtras
git submodule update --init --depth 1 src/maa-cli
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils 3rdparty/EmulatorExtras src/maa-cli
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -269,6 +276,19 @@ jobs:
env:
CLICOLOR_FORCE: 1
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
fileName: '*linux-${{ matrix.arch }}*.zip'
extract: true
out-file-path: MaaFramework-temp
- name: Copy ControlUnits
run: |
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Setup cross compile toolchains for CLI
uses: ./src/maa-cli/.github/actions/setup
with:
@@ -291,7 +311,7 @@ jobs:
mkdir -pv release
mkdir -pv Maa.AppDir/usr/share/maa
cp -r install/* Maa.AppDir/usr/share/maa/
wget -c https://raw.githubusercontent.com/MaaAssistantArknights/design/main/logo/maa-logo_512x512.png -O Maa.AppDir/maa.png
wget -c https://raw.githubusercontent.com/MaaAssistantArknights/design/main/v2/icons/maa-logo_512x512.png -O Maa.AppDir/maa.png
mkdir -pv Maa.AppDir/usr/share/icons/hicolor/512x512/apps/
cp -v Maa.AppDir/maa.png Maa.AppDir/usr/share/icons/hicolor/512x512/apps/
cp -v appimage-maa Maa.AppDir/usr/share/maa/maa
@@ -332,6 +352,80 @@ jobs:
path: |
release/*.AppImage
release/*.tar.gz
compression-level: 0
android:
name: Build for Android
needs: meta
runs-on: macos-26
strategy:
matrix:
arch: [arm64, x64]
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
key: ${{ runner.os }}-${{ matrix.arch }}-android-maadeps-${{ hashFiles('tools/maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-maadeps.outputs.cache-hit != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 tools/maadeps-download.py ${{ matrix.arch }}-android
- name: Setup Android NDK
id: setup-ndk
uses: nttld/setup-ndk@v1
with:
ndk-version: r29
- name: Configure, build and install
run: |
cmake -B build --preset 'android-publish-${{ matrix.arch }}' \
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
cmake --build build --parallel $(sysctl -n hw.logicalcpu)
cmake --install build --prefix install
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
fileName: "*android-${{ matrix.arch == 'arm64' && 'aarch64' || 'x86_64' }}*.zip"
extract: true
out-file-path: MaaFramework-temp
- name: Copy MaaAndroidNativeControlUnit
run: |
cp MaaFramework-temp/bin/libMaaAndroidNativeControlUnit.so install/
- name: Tar files
run: |
cd install
tar czvf $GITHUB_WORKSPACE/MAAComponent-${{ needs.meta.outputs.tag }}-android-${{ matrix.arch }}.tar.gz .
- name: Upload MAA to GitHub
uses: actions/upload-artifact@v7
with:
name: MAAComponent-android-${{ matrix.arch }}
path: MAAComponent-*.tar.gz
compression-level: 0
macOS-Core:
name: Build Core for macOS
@@ -343,13 +437,13 @@ jobs:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils
# ninja 1.13.1 is already installed and up-to-date.
# - name: Install dependencies
@@ -358,7 +452,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -376,6 +470,19 @@ jobs:
cmake --build --preset ${{ matrix.arch == 'x86_64' && 'macos-publish-x64' || 'macos-publish-arm64' }} --parallel $(sysctl -n hw.logicalcpu)
cmake --install build --config RelWithDebInfo
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
fileName: ${{ matrix.arch == 'x86_64' && '*macos-x86_64*.zip' || '*macos-aarch64*.zip' }}
extract: true
out-file-path: MaaFramework-temp
- name: Copy ControlUnits
run: |
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Upload MAA to GitHub
uses: actions/upload-artifact@v7
with:
@@ -388,7 +495,7 @@ jobs:
runs-on: macos-26
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -416,14 +523,14 @@ jobs:
- name: Install Developer ID certificate
if: startsWith(github.ref, 'refs/tags/v')
uses: apple-actions/import-codesign-certs@v6
uses: apple-actions/import-codesign-certs@v7
with:
p12-file-base64: ${{ secrets.HGUANDL_SIGN_CERT_P12 }}
p12-password: ${{ secrets.HGUANDL_SIGN_CERT_PASSWD }}
- name: Download provisioning profiles
if: startsWith(github.ref, 'refs/tags/v')
uses: apple-actions/download-provisioning-profiles@v5
uses: apple-actions/download-provisioning-profiles@v6
with:
bundle-id: "com.hguandl.MeoAsstMac"
issuer-id: ${{ secrets.HGUANDL_APPSTORE_ISSUER }}
@@ -459,6 +566,8 @@ jobs:
with:
name: MAA-macos-runtime-universal
path: runtime/MAA-${{ needs.meta.outputs.tag }}-macos-runtime-universal.zip
compression-level: 0
- name: Build XCFramework
run: |
@@ -545,7 +654,7 @@ jobs:
release:
name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
needs: [meta, windows, ubuntu, macOS-Core, macOS-GUI]
needs: [meta, windows, ubuntu, android, macOS-Core, macOS-GUI]
runs-on: ubuntu-latest
steps:
- name: Download MAA from GitHub
@@ -562,7 +671,7 @@ jobs:
find . -type f | while read f; do mv -fvt . $f; done
- name: Publish release to GitHub
uses: softprops/action-gh-release@v2.6.1
uses: softprops/action-gh-release@v3.0.1
with:
body_path: CHANGELOG.md
files: |
@@ -585,11 +694,6 @@ jobs:
env:
GH_TOKEN: ${{ secrets.MISTEOWORKFLOW }}
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Errors occured during release ${{ needs.meta.outputs.tag }}"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -42,27 +42,31 @@ jobs:
URL="${{ steps.release.outputs.url }}"
BASE_URL="https://github.com/${{ github.repository }}/releases/download/${TAG}"
WIN_URL="${BASE_URL}/MAA-${TAG}-win-x64.zip"
WIN64_URL="${BASE_URL}/MAA-${TAG}-win-x64.zip"
WINARM_URL="${BASE_URL}/MAA-${TAG}-win-arm64.zip"
MAC_URL="${BASE_URL}/MAA-${TAG}-macos-universal.dmg"
LIN_URL="${BASE_URL}/MAA-${TAG}-linux-amd64.tar.gz"
LIN64_URL="${BASE_URL}/MAA-${TAG}-linux-x86_64.tar.gz"
LINARM_URL="${BASE_URL}/MAA-${TAG}-linux-aarch64.tar.gz"
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")
PAYLOAD=$(jq -n \
--arg tag "$TAG" \
--arg description "$DESCRIPTION" \
--arg win_url "$WIN_URL" \
--arg win64_url "$WIN64_URL" \
--arg winarm_url "$WINARM_URL" \
--arg mac_url "$MAC_URL" \
--arg lin_url "$LIN_URL" \
--arg lin64_url "$LIN64_URL" \
--arg linarm_url "$LINARM_URL" \
'{
embeds: [{
title: ("🎉 New MAA Release: " + $tag),
description: $description,
color: 10246582,
fields: [
{ name: "Windows (x64)", value: ("[↗ Download](" + $win_url + ")"), inline: true },
{ name: "macOS (Universal, dmg)", value: ("[↗ Download](" + $mac_url + ")"), inline: true },
{ name: "Linux (amd64, tar.gz)", value: ("[↗ Download](" + $lin_url + ")"), inline: true }
{ name: "Windows", value: ("[x64](" + $win64_url + ") ❘ [ARM](" + $winarm_url + ")"), inline: true },
{ name: "macOS", value: ("[Universal](" + $mac_url + ")"), inline: true },
{ name: "Linux", value: ("[x64](" + $lin64_url + ") ❘ [ARM](" + $linarm_url + ")"), inline: true }
]
}]
}')

View File

@@ -13,7 +13,7 @@ on:
type: number
jobs:
copilot-analysis:
ai-analysis:
if: |
(github.event_name == 'issues' && github.event.action == 'opened') ||
github.event_name == 'workflow_dispatch' ||
@@ -22,44 +22,41 @@ jobs:
contains(github.event.comment.body, '@MaaArknightsBot') &&
github.event.comment.user.type != 'Bot')
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
issues: write
steps:
# 这个 action 只负责编排,分析质量仍依赖配套的 issue/log analysis skill。
# 分析质量仍依赖配套的 issue/log analysis skill。
# 详细使用文档https://github.com/MistEO/ai-issue-analysis
# 最佳实践参考:
# - https://github.com/MaaEnd/MaaEnd/blob/v2/.claude/skills/maaend-issue-log-analysis/SKILL.md
# - https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/dev-v2/.claude/skills/maa-issue-log-analysis/SKILL.md
- name: Analyze issue with AI
id: analysis
uses: Misteo/ai-issue-analysis@main
continue-on-error: true
uses: MistEO/ai-issue-analysis@main
with:
agent: ${{ secrets.BOT_AI_AGENT }}
api-key: ${{ secrets.BOT_AI_API_KEY }}
api-base-url: ${{ secrets.BOT_AI_API_BASE_URL }}
model: ${{ secrets.BOT_AI_MODEL }}
github-token: ${{ secrets.MAA_BOT_TOKEN }}
copilot-github-token: ${{ secrets.COPILOT_GITHUB_TOKEN }}
bot-name: '@MaaArknightsBot'
initial-comment-body: |
🤖 **MaaBot 正在分析该 Issue...**
感谢您的反馈AI 正在自动分析该问题,预计耗时约 10 分钟。
prompt-template: |
分析 GitHub Issue {{issue_number}}。把最终结论写到 {{copilot_answer_file}}。
严格按照 .claude/skills/maa-issue-log-analysis/SKILL.md 中的规则,分析 GitHub Issue {{issue_number}}。把最终结论写到 {{answer_file}}。
extra-comment-content: |
<!-- Skip all labels -->
- name: 查看完整输入输出
if: always()
env:
ANALYSIS_PROMPT: ${{ steps.analysis.outputs.analysis-prompt }}
ISSUE_NUMBER: ${{ steps.analysis.outputs.issue-number }}
COMMENT_ID: ${{ steps.analysis.outputs.comment-id }}
COMMENT_URL: ${{ steps.analysis.outputs.comment-url }}
COPILOT_OUTPUT: ${{ steps.analysis.outputs.copilot-output }}
FINAL_CONCLUSION: ${{ steps.analysis.outputs.final-conclusion }}
run: |
printf '%s\n' "$ANALYSIS_PROMPT"
echo "issue_number=$ISSUE_NUMBER"
echo "comment_id=$COMMENT_ID"
echo "comment_url=$COMMENT_URL"
printf '%s\n' "$COPILOT_OUTPUT"
printf '%s\n' "$FINAL_CONCLUSION"
echo "(Full agent-output and final-conclusion are available in the uploaded artifacts)"

View File

@@ -14,7 +14,7 @@ jobs:
steps:
- name: Check for duplicate issues in last hour
id: duplicate-check
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000);
@@ -66,7 +66,7 @@ jobs:
- name: Check for issue checkboxes
id: unread-checkbox-check
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
// 找不到###就算了
@@ -89,7 +89,7 @@ jobs:
- name: Close low-quality issue
if: steps.unread-checkbox-check.outputs.result == 'true'
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
await github.rest.issues.update({
@@ -116,7 +116,7 @@ jobs:
- name: Fold checkboxes
if: steps.unread-checkbox-check.outputs.result == 'false'
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const originalBody = context.payload.issue.body;

View File

@@ -31,12 +31,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
- name: Cache lychee responses
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: .lycheecache

View File

@@ -44,7 +44,7 @@ jobs:
- name: Checkout repository
if: steps.check_push.outputs.is_pr != 'True'
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
persist-credentials: false
@@ -104,7 +104,7 @@ jobs:
- name: Push changes
if: steps.check_push.outputs.is_pr != 'True' && steps.commit_changes.outputs.have_commits == 'True' && github.repository_owner == 'MaaAssistantArknights'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
branch: ${{ github.ref }}

View File

@@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
token: ${{ secrets.MAARELEASE_RELEASE }}
@@ -33,21 +33,29 @@ jobs:
- name: Determine tag name
id: extract_tag
env:
EVENT_NAME: ${{ github.event_name }}
PR_TITLE: ${{ github.event.pull_request.title }}
INPUT_TAG: ${{ inputs.tag }}
run: |
if ${{ github.event_name != 'workflow_dispatch' }}; then
tag_name=$(echo "${{ github.event.pull_request.title }}" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
if [ "$EVENT_NAME" != "workflow_dispatch" ]; then
tag_name=$(printf '%s' "$PR_TITLE" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "tag_name=$tag_name" >> $GITHUB_OUTPUT
else
echo "tag_name=${{ inputs.tag }}" >> $GITHUB_OUTPUT
echo "tag_name=$INPUT_TAG" >> $GITHUB_OUTPUT
fi
- name: Create and push release tag
env:
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
run: |
git tag -a "${{ steps.extract_tag.outputs.tag_name }}" -m "${{ steps.extract_tag.outputs.tag_name }}" -f
git push origin "${{ steps.extract_tag.outputs.tag_name }}"
git tag -a "$TAG_NAME" -m "$TAG_NAME" -f
git push origin "$TAG_NAME"
- name: Merge tag into dev-v2 and push
env:
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
run: |
git switch dev-v2
git merge "${{ steps.extract_tag.outputs.tag_name }}"
git merge "$TAG_NAME"
git push origin dev-v2

View File

@@ -10,26 +10,8 @@ jobs:
if: ${{ !github.event.pull_request.merged && github.base_ref != 'master-v2' }}
runs-on: ubuntu-latest
steps:
- name: Clean up previous comment
uses: actions/github-script@v8
with:
script: |
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number
});
const previousComment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes('invalid commit(s)'));
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
- name: Check commits
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const { data: commits } = await github.rest.pulls.listCommits({
@@ -40,20 +22,59 @@ jobs:
});
const regex = /^((build|chore|ci|docs?|feat!?|fix|perf|refactor|rft|style|test|i18n|typo|debug)[\:\.\(\,]|[Rr]evert|[Rr]elease|[Rr]eapply)/;
const invalidCommits = commits.filter(commit => !regex.test(commit.commit.message) || commit.parents.length > 1);
const badTitleCommits = commits.filter(commit => !regex.test(commit.commit.message) && commit.parents.length <= 1);
const mergeCommits = commits.filter(commit => commit.parents.length > 1);
const allInvalid = [...badTitleCommits, ...mergeCommits];
console.log(`Checked ${commits.length} commit(s)`);
console.log(`Checked ${commits.length} commit(s), ${badTitleCommits.length} bad title(s), ${mergeCommits.length} merge commit(s)`);
if (invalidCommits.length > 0) {
const invalidCommitNames = invalidCommits.map(commit => commit.commit.message);
const invalidCommitInfoList = invalidCommits.map(commit => `- ${commit.commit.message.split("\n")[0]} [\`${commit.sha.substring(0, 7)}\`](${commit.html_url})`).join("\n");
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number
});
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
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 无法绕过检测)。`
});
const previousComment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes('invalid commit(s)'));
core.setFailed(`Found ${invalidCommits.length} invalid commit(s):\n${invalidCommitNames.join("\n-------------------\n")}`);
if (allInvalid.length > 0) {
const formatList = (list) => list.map(commit => `- ${commit.commit.message.split("\n")[0]} [\`${commit.sha.substring(0, 7)}\`](${commit.html_url})`).join("\n");
let bodySections = [];
if (badTitleCommits.length > 0) {
bodySections.push(`### 不合规提交名 | Invalid Commit Title(s):\n\n${formatList(badTitleCommits)}`);
}
if (mergeCommits.length > 0) {
bodySections.push(`### 不应使用 Merge Commit | Merge Commit(s) Detected:\n\n${formatList(mergeCommits)}`);
}
const newBody = `## ⚠️ 发现 ${allInvalid.length} 个不合规提交 | Found ${allInvalid.length} invalid commit(s):\n\n${bodySections.join("\n\n")}\n\n---\n请遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) 格式,以及**不要**使用Merge Commit修改 Commit Message 无法绕过检测)。\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format, and **DO NOT** use merge commits.`;
if (previousComment && previousComment.body === newBody) {
console.log("Invalid commits unchanged, skipping comment update");
} else {
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: newBody
});
}
const allInvalidNames = allInvalid.map(commit => commit.commit.message);
core.setFailed(`Found ${allInvalid.length} invalid commit(s):\n${allInvalidNames.join("\n-------------------\n")}`);
} else {
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
}

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
@@ -25,7 +25,7 @@ jobs:
- name: Commit and push changes
if: steps.pre-commit.outcome == 'failure' && github.repository_owner == 'MaaAssistantArknights'
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "chore: Auto update by pre-commit hooks

View File

@@ -28,7 +28,7 @@ jobs:
build-win-nightly:
name: Build Nightly for Windows
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: windows-latest
runs-on: windows-2025-vs2026
strategy:
matrix:
arch: [x64]
@@ -40,7 +40,7 @@ jobs:
changelog: ${{ steps.read_changelog.outputs.content }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
# repository: 'MaaAssistantArknights/MaaAssistantArknights'
#ref: ${{ inputs.ref }}
@@ -52,9 +52,8 @@ jobs:
git fetch --depth=250 --tags
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
git submodule update --init --depth 1 3rdparty/EmulatorExtras
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils 3rdparty/EmulatorExtras
- name: Checkout ref (if provided)
if: inputs.ref != ''
@@ -171,7 +170,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -189,6 +188,7 @@ jobs:
run: |
cmake -B build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} -DMAA_HASH_VERSION='${{ steps.set_tag.outputs.tag }}'
cmake --build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} --parallel $env:NUMBER_OF_PROCESSORS
cmake --build build --target MAA.Updater --config RelWithDebInfo --parallel $env:NUMBER_OF_PROCESSORS
cmake --install build --config RelWithDebInfo
- name: Download MaaFramework
@@ -196,7 +196,7 @@ jobs:
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
tag: v5.9.2
fileName: "*win-x86_64*.zip"
extract: true
out-file-path: MaaFramework-temp
@@ -206,6 +206,11 @@ jobs:
run: |
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
- name: Generate global.json
shell: bash
run: |
echo '{"sdk":{"version":"10.0.203","rollForward":"disable"}}' > global.json
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
with:
@@ -213,7 +218,7 @@ jobs:
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -293,7 +298,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
fetch-depth: 0
@@ -324,7 +329,7 @@ jobs:
echo ${{ needs.build-win-nightly.outputs.tag }}
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
path: MaaAssistantArknights
token: ${{ secrets.MAARELEASE_RELEASE }}

View File

@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
@@ -102,7 +102,7 @@ jobs:
path: ./MaaReleaseConfig
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
@@ -111,7 +111,7 @@ jobs:
token: ${{ secrets.MAARELEASE_RELEASE }}
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
path: MaaAssistantArknights
@@ -139,15 +139,6 @@ jobs:
prerelease: ${{ fromJSON(needs.create-tag.outputs.prerelease) }}
overwrite: true
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Failed to make OTA release for Windows"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
make-ota-mac:
name: Build and Upload OTA for macOS
needs: create-tag
@@ -192,15 +183,6 @@ jobs:
prerelease: ${{ fromJSON(needs.create-tag.outputs.prerelease) }}
overwrite: true
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Failed to make OTA release for macOS"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
release:
name: Publish to Release Mirrors
needs:

View File

@@ -113,23 +113,58 @@ jobs:
env:
RELEASE_TAG: ${{ needs.meta.outputs.RELEASE_TAG }}
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.MAABOT_WINGET_TOKEN }}
WINGET_CREATE_VERSION: 'v1.12.8.0'
WINGET_CREATE_SHA256: '8BD738851B524885410112678E3771B341C5C716DE60FBBECB88AB0A363ED85D'
steps:
- name: Upload MAA to WinGet
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: MaaAssistantArknights.MaaAssistantArknights
version: ""
installers-regex: "-win-"
max-versions-to-keep: 0
release-tag: ${{ env.RELEASE_TAG }}
fork-user: MaaAssistantArknights
token: ${{ secrets.MAABOT_WINGET_TOKEN }}
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$RELEASE_TAG = "${{ env.RELEASE_TAG }}"
# Fetch the release assets from GitHub Releases API and resolve actual download URLs
$headers = @{
Accept = "application/vnd.github+json"
"X-GitHub-Api-Version" = "2026-03-10"
}
if ($env:WINGET_CREATE_GITHUB_TOKEN) {
$headers.Authorization = "Bearer $env:WINGET_CREATE_GITHUB_TOKEN"
}
$release = Invoke-RestMethod `
-Uri "https://api.github.com/repos/MaaAssistantArknights/MaaAssistantArknights/releases/tags/$RELEASE_TAG" `
-Headers $headers
$URL_x64 = $release.assets | Where-Object { $_.name -match "-win-x64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
$URL_arm64 = $release.assets | Where-Object { $_.name -match "-win-arm64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
if (-not $URL_x64 -or -not $URL_arm64) {
Write-Error "Failed to resolve release assets from GitHub API for tag '$RELEASE_TAG'."
exit 1
}
# Download winget-create
curl.exe -JLO "https://github.com/microsoft/winget-create/releases/download/$env:WINGET_CREATE_VERSION/wingetcreate.exe"
# Verify the hash of wingetcreate.exe
if ((Get-FileHash wingetcreate.exe).Hash -ne $env:WINGET_CREATE_SHA256) {
Write-Error "wingetcreate.exe hash does not match expected value. Aborting."
exit 1
}
# Update the package using wingetcreate
.\wingetcreate.exe update MaaAssistantArknights.MaaAssistantArknights `
--version $RELEASE_TAG.TrimStart('v') `
--urls "$URL_x64|x64" "$URL_arm64|arm64" `
--submit
maa_cos:
name: Upload to MAA COS
needs: meta
if: ${{ github.event.inputs.maa_cos == 'true' && !contains(needs.meta.outputs.RELEASE_TAG, '-') }}
if: false
runs-on: ubuntu-latest
continue-on-error: true
env:
@@ -145,9 +180,9 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload to COS
uses: zkqiang/tencent-cos-action@v0.1.0
uses: zkqiang/tencent-cos-action@v1.0.0
with:
args: upload -rs downloads/${{ env.FILENAME }} MAA/${{ env.FILENAME }}
args: sync -r downloads/${{ env.FILENAME }} cos://default/MAA/${{ env.FILENAME }}
secret_id: ${{ secrets.MISTEO_MAA_COS_SECRET_ID }}
secret_key: ${{ secrets.MISTEO_MAA_COS_SECRET_KEY }}
bucket: ${{ secrets.MISTEO_MAA_COS_BUCKET }}

View File

@@ -7,93 +7,127 @@ on:
- reopened
- ready_for_review
workflow_dispatch:
inputs:
pr_number:
description: 'Release PR number for changelog generation'
required: false
type: number
jobs:
generate-changelog:
name: Generate Changelog
# startsWith 表达式不区分大小写
if: github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
if: |
(github.event_name == 'workflow_dispatch' && github.event.inputs.pr_number != '') ||
(github.event.pull_request.head.repo.full_name == github.repository &&
github.event.pull_request.draft == false &&
startsWith(github.event.pull_request.title, 'Release v'))
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Checkout dev-v2 with full history
uses: actions/checkout@v4
with:
ref: dev-v2
fetch-depth: 0
show-progress: false
- name: Extract release information
id: extract_tag
- name: Extract version from Release PR
id: version
env:
PR_BODY: ${{ format('{0}/{1}', runner.temp, 'output' ) }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
tag_name=$(echo "${{ github.event.pull_request.title }}" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "tag_name=$tag_name" >> $GITHUB_OUTPUT
title="${PR_TITLE:-$(gh pr view "$PR_NUMBER" --json title -q .title)}"
version=$(echo "$title" | sed -E 's/[Rr]elease\s*//')
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "Release version: $version"
pr_title="docs: Auto Update Changelogs of "$tag_name
echo "pr_title=$pr_title" >> $GITHUB_OUTPUT
- name: Generate changelog with AI
id: analysis
continue-on-error: true
uses: MistEO/ai-issue-analysis@main
with:
agent: ${{ secrets.BOT_AI_AGENT }}
api-key: ${{ secrets.BOT_AI_API_KEY }}
api-base-url: ${{ secrets.BOT_AI_API_BASE_URL }}
model: ${{ secrets.BOT_AI_MODEL }}
github-token: ${{ secrets.MAA_BOT_TOKEN }}
issue-number: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
checkout-repository: false
initial-comment-body: |
🤖 **AI 正在生成 Changelog...**
latest_stable_tag=$(git tag -l 'v*' | grep -v '-' | sort -V | tail -n 1) # 上一个 stable 版本
newest_tag=$(git describe --tags --match "v*" --abbrev=0) # 最新版本
echo "latest_stable_tag=$latest_stable_tag" >> $GITHUB_OUTPUT
echo "newest_tag=$newest_tag" >> $GITHUB_OUTPUT
正在根据提交记录自动生成 Changelog预计耗时约 10 分钟。
prompt-template: |
你是 MAA 项目的 Changelog 生成专员。
if [[ $tag_name == *-* ]]; then # 判断新版本是否为 beta 版本
latest=$newest_tag # 若是,则将 latest 参数设置为最新版本
else
latest=$latest_stable_tag # 若否,则设置为上一个 stable 版本
当前 Release PR 编号为 #{{issue_number}}(仓库 {{repository}}),请从该 PR 标题中提取目标版本号。
严格按照 .claude/skills/changelog/SKILL.md 中的规则,分析 git 提交记录tag 间的 commit 及其 diff和现有 CHANGELOG.md
生成完整的新版本 Changelog Markdown 并写到 {{answer_file}}。
{{answer_file}} 的内容应当是可以直接替换 CHANGELOG.md 整个文件的完整内容(包含新版本和所有历史版本)。
details-summary: 点击此处展开生成过程
- name: Write CHANGELOG.md from AI output
if: steps.analysis.outcome == 'success'
run: |
if [ ! -f answer.md ] || [ ! -s answer.md ]; then
echo "::error::answer.md not found or empty, cannot update CHANGELOG.md"
exit 1
fi
echo "latest=$latest" >> $GITHUB_OUTPUT
cp answer.md CHANGELOG.md
echo "CHANGELOG.md updated from AI output ($(wc -l < CHANGELOG.md) lines)"
cat $GITHUB_OUTPUT
echo '======='
echo 'Target PR: ${{ github.event.pull_request.html_url }}' >> $PR_BODY
echo '' >> $PR_BODY
echo '<details><summary>Debug information</summary>' >> $PR_BODY
echo '' >> $PR_BODY
echo '```' >> $PR_BODY
sed 's/=/: /1' $GITHUB_OUTPUT >> $PR_BODY
echo '```' >> $PR_BODY
echo '' >> $PR_BODY
echo '</details>' >> $PR_BODY
cat $PR_BODY
- name: Generate changelog
run: |
git switch dev-v2
python3 tools/ChangelogGenerator/changelog_generator.py --tag "${{ steps.extract_tag.outputs.tag_name }}" --latest "${{ steps.extract_tag.outputs.latest }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes
run: |
git status
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
git add .
commit_msg="docs: Auto Generate Changelog of Release ""${{ steps.extract_tag.outputs.tag_name }}"
git commit -m "$commit_msg"
if git diff --quiet CHANGELOG.md 2>/dev/null; then
echo "::warning::AI output is identical to existing CHANGELOG.md, no PR will be created"
else
echo "Changes detected:"
git diff --stat CHANGELOG.md
fi
- name: Create changelog PR
if: steps.analysis.outcome == 'success'
uses: peter-evans/create-pull-request@v8
with:
sign-commits: true
token: ${{ secrets.GITHUB_TOKEN }}
title: ${{ steps.extract_tag.outputs.pr_title }}
body-path: ${{ format('{0}/{1}', runner.temp, 'output' ) }}
base: "dev-v2"
branch: "changelog"
commit-message: "docs: Auto Generate Changelog of Release ${{ steps.version.outputs.version }}"
sign-commits: true
title: "docs: Auto Update Changelogs of ${{ steps.version.outputs.version }}"
body: |
Auto-generated changelog for **${{ steps.version.outputs.version }}**.
Target Release PR: #${{ github.event.pull_request.number || github.event.inputs.pr_number }}
base: dev-v2
branch: changelog
delete-branch: true
add-paths: CHANGELOG.md
reviewers: |
AnnAngela
assignees: |
AnnAngela
- name: Show outputs
if: always()
env:
COMMENT_URL: ${{ steps.analysis.outputs.comment-url }}
run: |
echo "comment_url=$COMMENT_URL"
echo "(Full agent-output and final-conclusion are available in the uploaded artifacts)"
assign-release-reviewers:
name: Assign Reviewers to Release PR
if: github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Assign reviewers to release PR
uses: kentaro-m/auto-assign-action@v2.0.2
with:
@@ -101,7 +135,7 @@ jobs:
update-submodules:
name: Update Submodules
if: github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
if: github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
runs-on: ubuntu-latest
steps:
- name: Trigger submodule update workflow

View File

@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone ArknightsGameResource for Official
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: yuanyan3060/ArknightsGameResource
@@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone ArknightsGameResource_Yostar for Overseas
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ArknightsAssets/ArknightsGamedata
@@ -92,7 +92,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone arknights-toolbox-update for Taiwan
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: arkntools/arknights-data-tw-for-maa
@@ -145,7 +145,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
# TL;DR https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/9872#issuecomment-2251378371
# actions/checkout uses ${{ secrets.GITHUB_TOKEN }} by default, meaning all steps will inherit it
@@ -155,7 +155,7 @@ jobs:
- name: Restore ResourceUpdater from cache
id: resupd-cache
uses: actions/cache/restore@v5
uses: actions/cache/restore@v6
continue-on-error: true
with:
key: ResourceUpdater-${{ runner.os }}-${{ hashFiles('tools/ResourceUpdater/main.cpp') }}
@@ -165,13 +165,13 @@ jobs:
- name: Fetch submodules
if: steps.resupd-cache.outputs.cache-hit != 'true'
run: |
git submodule update --init --depth 1 src/MaaUtils
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils
- name: Cache MaaDeps
if: steps.resupd-cache.outputs.cache-hit != 'true'
id: maadeps-cache
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -195,7 +195,7 @@ jobs:
- name: Save ResourceUpdater to cache
if: always() && steps.resupd-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v5
uses: actions/cache/save@v6
continue-on-error: true
with:
key: ResourceUpdater-${{ runner.os }}-${{ hashFiles('tools/ResourceUpdater/main.cpp') }}
@@ -204,7 +204,7 @@ jobs:
./tools/ResourceUpdater/res_updater
- name: Wait for resource cloning
uses: yogeshlonkar/wait-for-jobs@v0
uses: yogeshlonkar/wait-for-jobs@v1
with:
ignore-skipped: 'false'
jobs: |
@@ -235,10 +235,23 @@ jobs:
run: |
./tools/ResourceUpdater/res_updater
- name: Setup python
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
cache-dependency-path: |
tools/TaskSorter/requirements.txt
tools/OptimizeTemplates/requirements.txt
- name: Install TaskSorter dependencies
run: |
python -m pip install -r tools/TaskSorter/requirements.txt
- name: Sort tasks
id: task_sorting
run: |
python3 tools/TaskSorter/TaskSorter.py
python tools/TaskSorter/TaskSorter.py
echo "gitdiff=$(echo $(git diff --name-only --diff-filter=ACM 2>/dev/null | grep '\.json$'))" >> $GITHUB_OUTPUT
- name: Run prettier
@@ -251,25 +264,10 @@ jobs:
run: |
sh ./tools/ResourceUpdater/version.sh
- name: Setup python
if: steps.update_version.outputs.contains_png == 'True'
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Cache python packages
if: always() && steps.update_version.outputs.contains_png == 'True'
id: cache_python
uses: actions/cache@v5
continue-on-error: true
with:
path: ${{ env.pythonLocation }}/Lib/site-packages
key: ${{ runner.os }}-pip-optimize-templates-${{ hashFiles('./tools/OptimizeTemplates/requirements.txt') }}
- name: Install dependencies
if: steps.cache_python.outputs.cache-hit != 'true' && steps.update_version.outputs.contains_png == 'True'
if: steps.update_version.outputs.contains_png == 'True'
run: |
pip install -r tools/OptimizeTemplates/requirements.txt
python -m pip install -r tools/OptimizeTemplates/requirements.txt
- name: Setup oxipng
if: steps.update_version.outputs.contains_png == 'True'
@@ -280,7 +278,7 @@ jobs:
- name: Optimize png images
if: steps.update_version.outputs.contains_png == 'True'
run: |
python3 tools/OptimizeTemplates/optimize_templates.py --no-cleanup -p resource/template/items/ resource/template/infrast/
python tools/OptimizeTemplates/optimize_templates.py --no-cleanup -p resource/template/items/ resource/template/infrast/
- name: Commit changes
if: steps.update_version.outputs.changes == 'True'
@@ -308,7 +306,7 @@ jobs:
- name: Push changes
if: steps.add_files.outputs.have_commits == 'True'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

View File

@@ -43,7 +43,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -56,7 +56,7 @@ jobs:
- name: Restore cache for Smoke Test
if: ${{ steps.cache_key.outputs.key != '' }}
id: smoke-cache
uses: actions/cache/restore@v5
uses: actions/cache/restore@v6
continue-on-error: true
with:
key: ${{ steps.cache_key.outputs.key }}
@@ -70,13 +70,13 @@ jobs:
- name: Fetch submodules
if: steps.smoke-cache.outputs.cache-hit != 'true'
run: |
git submodule update --init --depth 1 src/MaaUtils
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MaaUtils
- name: Cache MaaDeps
if: steps.smoke-cache.outputs.cache-hit != 'true'
id: maadeps-cache
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -107,7 +107,7 @@ jobs:
- name: Save cache for Smoke Test (only in dev-v2)
if: steps.smoke-cache.outputs.cache-hit != 'true' && github.ref == 'refs/heads/dev-v2'
uses: actions/cache/save@v5
uses: actions/cache/save@v6
continue-on-error: true
with:
key: ${{ steps.cache_key.outputs.key }}

View File

@@ -17,7 +17,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -28,7 +28,7 @@ jobs:
git show -s
- name: Checkout MaaResource
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
repository: MaaAssistantArknights/MaaResource
show-progress: false

122
.github/workflows/unit-tests.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: Unit Tests
on:
# push:
# branches:
# - "dev-v2"
# paths:
# - ".github/workflows/unit-tests.yml"
# - "unit_test/**"
# - "src/**"
# pull_request:
# paths:
# - ".github/workflows/unit-tests.yml"
# - "unit_test/**"
# - "src/**"
workflow_dispatch:
permissions:
contents: read
jobs:
select-tests:
name: Select Unit Test Suites
runs-on: ubuntu-latest
outputs:
has_tests: ${{ steps.select.outputs.has_tests }}
matrix: ${{ steps.select.outputs.matrix }}
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
- name: Select affected test suites
id: select
env:
EVENT_NAME: ${{ github.event_name }}
BEFORE_SHA: ${{ github.event.before }}
HEAD_SHA: ${{ github.sha }}
PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
python3 - <<'PY'
import json
import os
import subprocess
def matches(path: str, rule: str) -> bool:
if rule.endswith('/**'):
return path.startswith(rule[:-3])
return path == rule
with open('unit_test/test-suites.json', encoding='utf-8') as f:
mapping = json.load(f)
event_name = os.environ['EVENT_NAME']
changed_files = []
run_all = event_name == 'workflow_dispatch'
if not run_all:
if event_name == 'pull_request':
base_sha = os.environ['PR_BASE_SHA']
head_sha = os.environ['PR_HEAD_SHA']
else:
base_sha = os.environ['BEFORE_SHA']
head_sha = os.environ['HEAD_SHA']
if not base_sha or set(base_sha) == {'0'}:
run_all = True
else:
diff = subprocess.check_output(
['git', 'diff', '--name-only', base_sha, head_sha],
text=True,
)
changed_files = [line for line in diff.splitlines() if line]
print('Changed files:')
for file_path in changed_files:
print(f' - {file_path}')
if run_all or any(any(matches(path, rule) for rule in mapping['runAllOnChanges']) for path in changed_files):
selected = mapping['suites']
else:
selected = []
for suite in mapping['suites']:
if any(any(matches(path, rule) for rule in suite['paths']) for path in changed_files):
selected.append(suite)
matrix = {'suite': selected}
with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as f:
f.write(f"has_tests={'true' if selected else 'false'}\n")
f.write(f"matrix={json.dumps(matrix, separators=(',', ':'))}\n")
PY
unit-tests:
name: ${{ matrix.suite.name }} Unit Tests
needs: select-tests
if: ${{ needs.select-tests.outputs.has_tests == 'true' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.select-tests.outputs.matrix) }}
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
show-progress: false
- name: Configure unit tests
run: |
cmake -S unit_test -B build/unit_test -DCMAKE_BUILD_TYPE=Release
- name: Build selected unit test target
run: |
cmake --build build/unit_test --parallel --target ${{ matrix.suite.buildTarget }}
- name: Run selected unit tests
run: |
ctest --test-dir build/unit_test --output-on-failure -R '${{ matrix.suite.ctestRegex }}'

View File

@@ -12,20 +12,19 @@ jobs:
if: github.repository_owner == 'MaaAssistantArknights'
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
submodules: true
- name: Update submodules
run: |
git submodule update --remote src/MaaMacGui
git submodule update --remote src/maa-cli
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --remote src/MAAUnified src/MaaMacGui src/maa-cli
- name: Commit and push changes
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "feat: Update Submodules MaaMacGui, maa-cli
message: "feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -35,7 +35,7 @@ jobs:
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false

6
.gitignore vendored
View File

@@ -416,10 +416,15 @@ FodyWeavers.xsd
# !.vscode/launch.json
# !.vscode/extensions.json
*.code-workspace
*.csproj.lscache
# Local History for Visual Studio Code
.history/
# Claude Code
.claude/*
!.claude/skills/
# Windows Installer files from build outputs
*.cab
*.msi
@@ -482,3 +487,4 @@ install-*
# CMake user presets
CMakeUserPresets.json
.ace-tool/

4
.gitmodules vendored
View File

@@ -13,3 +13,7 @@
[submodule "src/MaaUtils"]
path = src/MaaUtils
url = https://github.com/MaaXYZ/MaaUtils
[submodule "src/MAAUnified"]
path = src/MAAUnified
url = https://github.com/MaaAssistantArknights/MaaUnified.git
branch = main

View File

@@ -1,93 +1,87 @@
## v6.7.0
## v6.13.0
### 正式接入 DeepSleep | Highlight
### Highlights
我们很高兴地宣布:从 v6.7.0 开始MAA 将正式接入 DeepSleep。这将意味着我们首次将 AI 引入到游戏助手领域为你带来更智能、高效的体验。DeepSleep 的 AI 算法能够实时分析游戏运行数据,动态生成运行日志,在保证游戏流畅度的同时有效提升用户体验。这一功能的加入,标志着 MAA 在智能化方向上迈出了关键一步,未来我们也将持续探索 AI 技术与 MAA 的深度融合,为你带来更多创新体验。 ~(绝对不是牛牛喝醉了睡着导致的)~
#### 6 星自动公招支持
#### 成就 DLC #3 同步上线
新增可通过手动修改配置文件开启的 6 星自动公招功能,「是否招募」和「招募时间」选项移入常规设置,并优化了相关提示信息。
除了 DeepSleep本次更新也带来了成就 DLC #3
#### 通知不可用时自动回退
* 成就现已支持按 DLC 期数搜索;
* 补充了一批新的成就触发与描述;
* 多语言文本与部分触发细节也一并完成调整。
系统通知无法显示时自动回退到软件内通知,避免用户错过重要提醒;启动时的通知检测提示也改为软件内弹窗,不再仅写入日志。
#### 新增支持任务单次运行
#### 切换语言无需重启
右键任务设置图标即可弹出二级菜单,“单次运行”与“重命名”、“删除”并列,方便快速执行单次任务
切换软件界面语言不再需要重启,干员识别、仓库识别等界面同步支持动态切换
#### 多项细节问题一并修复
<details>
<summary><b>English</b></summary>
除了 DeepSleep本次更新也处理了一批影响体验的细节问题。
#### 6-Star Auto Recruitment Support
* 修复在非 UI 线程清空库存数据可能导致任务添加失败的问题;
* 修复多项剿灭相关识别与战斗完成 ROI 问题。
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.
</details>
----
以下是详细内容:
<details open>
<summary><b>v6.13.0 (2026-06-28)</b></summary>
### 新增 | New
* 正式接入 DeepSleep @ABA2396
* 新增成就 DLC#3,支持按 DLC 期数搜索并补充新的成就触发与描述 @ABA2396 @Constrat @HX3N @Manicsteiner
* 新增任务设置按钮右键单次运行功能 @ABA2396
* Android OCR 推理引擎切换为 NCNN ([#17133](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17133)) @Aliothmoon
* 切换界面语言不再需要重启,干员识别、仓库识别等界面同步支持动态切换,并可单独设置干员名称显示语言 ([#17183](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17183)) @ABA2396
* 新增可通过手动修改配置文件开启 6 星自动公招,将「是否招募」和「招募时间」选项移入常规设置,优化 ToolTip 提示 ([#17154](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17154)) @ABA2396
* Custom Webhook 新增预置模板功能 ([#17081](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17081)) @pboymt
* 新增常驻关卡备选提示,当选中的关卡为常驻关卡或当前/上次时提示其后关卡不会被选中执行 @ABA2396
* 增加 DWM 被禁用与重复拖动异常的解决方案提示 @ABA2396
* 添加落叶逐火复刻关卡入口任务 @SherkeyXD
* Yostar 服新增 SSS#10 极寒自动战斗作业 ([#17137](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17137)) @Manicsteiner
### 改进 | Improved
* 优化自动战斗 tab 样式,新增滑块动画效果,修复切页重置状态 @ABA2396
* data 数据存储优化 @status102
* 优化日志展示效果 @ABA2396
* 在收到对应识别结果时再重置库存数据 @ABA2396
* 使用 DateTimeOffset 替代 DateTime @status102
* Log 头时间从 UTC 时间改为 Local 时间 @status102
* 不再默认启用 `在下拉框中隐藏当日未开放关卡` @status102
* Ocr 内部 log 在 without_det 时也对 rect 输出进行基于 base_roi 的偏移 @status102
* 统一任务队列与自动战斗的停止逻辑 ([#17087](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17087)) @ABA2396
* 无法显示系统通知时自动回退到软件内通知,启动时通知不可用提示改为软件内弹窗 ([#17165](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17165)) @ABA2396
* 优化成就 DLC 标识显示效果与提示,增加对应 DLC 上线时间提示 @ABA2396
* 调整繁中服 CharNameOcrReplace 替换规则 ([#17113](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17113)) @momomochi987
* 怪猎一期复刻 CF-EX-8、CF-S-1 关卡参数调整 @status102
* 移除依赖库安装脚本的提权操作 @ABA2396
* 调整日志超时提示 @ABA2396
* YostarKR crop JieGarden@Roguelike@StartAction.png to improve match score @HX3N
### 修复 | Fix
* 在更新时报错无法显示本地化语言 @ABA2396
* 粘贴作业集不会自动勾选多作业模式 @ABA2396
* 亮色模式下 Linkstart 按钮样式缺失 @ABA2396
* 修复 build warningsmtp 改用新版本 MailKit @ABA2396
* 修复剿灭关卡名 OcrReplace @status102
* 修复在非 UI 线程调用清空库存数据导致任务添加失败 @ABA2396
* 修复日志记录中使用源石 TaskName 的问题 @status102
* 修复任务开始/完成时无法显示任务名 @ABA2396
* 修复读取备份成就时不会加载 CustomData 的问题 @ABA2396
* 更新 MaaFramework 文件名格式和 .NET SDK 版本 @AnnAngela
* 移除过时的配置迁移兼容逻辑 @status102
* 修复剿灭战斗完成 roi @status102
* 修复 CN 剿灭后识别,并统一全客户端类型识别 @status102
* 修复 NCNN OCR 引擎在小 ROI 下识别异常,对齐 fastdeploy 的 det 缩放与 rec 预处理 ([#17182](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17182)) @Aliothmoon
* 修复部分设备界园树洞"是非境"识别错误 ([#17181](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17181)) @Aliothmoon
* 修复自动战斗多作业模式无法进行关卡导航 @status102
* 修复自动战斗导航 retry 异常导致跳过作业的问题 @status102
* 修复肉鸽战斗结束后招募误入 StartExplore 的问题 @Saratoga-Official
* 修复水月肉鸽"大海的遗产"和"狗眼婆娑"事件名识别错误 @Saratoga-Official
* 修复肉鸽 GetDrop 未等待 LoadingText 导致的问题 @Saratoga-Official
* 修复 CloseEvent 和 CloseCollection 同时出现导致的异常 @Saratoga-Official
* 修复 MAA 更新检查 API 请求未遵循代理设置的问题 @status102
* 修正落叶逐火入口 OCR 文本 @SherkeyXD
* 修复复制任务时未保留原任务启用状态的问题 @ABA2396
* YostarEN fix future alter operators recognition and EnterEpisodeNew-Click @Constrat
* YostarKR correct ClickChapterNewDefaultProgress roi, expand training roi for wrapped operator names @HX3N
### 其他 | Other
* 避免生成不必要的 res_updater (#16116) @status102 @Constrat @soundofautumn
* 更新数据任务禁用高级设置 @ABA2396
* DateTimeOffset 基础支持 @status102
* 修复错误描述:`过期关卡重置` @status102
* 补充遗漏图片资源 @status102
* Revise linking guidelines and AI suggestions @MistEO
* resolve warning @status102
* 修复 MAAUnified CI 选错 ref 的问题 ([#17143](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17143)) @Halo
* 优化 Avalonia 构建工作流触发条件 ([#17139](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17139)) @Manicsteiner
* YostarEN/JP/KR update LoneTrail and JieGarden themes ([#17175](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17175)) @Constrat @Manicsteiner @HX3N
* YostarJP add episode new navigation and JieGarden theme recruit @Manicsteiner
* Update GitHub push action version comment ([#17124](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17124)) @AnnAngela
</details>

View File

@@ -34,9 +34,12 @@ target_include_directories(HeaderOnlyLibraries INTERFACE 3rdparty/include)
add_subdirectory(src/MaaCore)
if(BUILD_WPF_GUI)
add_subdirectory(src/MaaUpdater)
include_external_msproject(MaaWpfGui ${PROJECT_SOURCE_DIR}/src/MaaWpfGui/MaaWpfGui.csproj)
add_dependencies(MaaWpfGui MaaCore)
add_dependencies(MaaWpfGui MAA.Updater)
if(DEFINED ENV{VSCODE_PID})
add_custom_target(run-MaaWpfGui
COMMAND "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/MAA.exe"
@@ -46,6 +49,13 @@ if(BUILD_WPF_GUI)
endif()
endif()
if (ANDROID)
add_library(stdc++fs INTERFACE)
add_compile_options(-Wno-unused-parameter)
add_compile_options(-ffunction-sections -fdata-sections)
add_link_options(-Wl,--gc-sections)
endif()
if(INSTALL_PYTHON)
install(DIRECTORY src/Python DESTINATION .)
endif()

View File

@@ -158,6 +158,39 @@
"CMAKE_OSX_ARCHITECTURES": "x86_64"
}
},
{
"name": "android-base",
"hidden": true,
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"$comment": [
"Base for Android presets; cross-compilation via NDK toolchain",
"CMAKE_TOOLCHAIN_FILE must be passed externally pointing to NDK's android.toolchain.cmake"
],
"cacheVariables": {
"CMAKE_SYSTEM_NAME": "Android",
"ANDROID_PLATFORM": "android-28",
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "android-arm64",
"inherits": "android-base",
"displayName": "Android arm64",
"cacheVariables": {
"ANDROID_ABI": "arm64-v8a",
"MAADEPS_TRIPLET": "maa-arm64-android"
}
},
{
"name": "android-x64",
"inherits": "android-base",
"displayName": "Android x64",
"cacheVariables": {
"ANDROID_ABI": "x86_64",
"MAADEPS_TRIPLET": "maa-x64-android"
}
},
{
"name": "publish-base",
"$comment": [
@@ -181,11 +214,9 @@
"publish-base",
"windows-x64"
],
"$comment": [
"github actions only support Visual Studio 17 2022",
"see https://github.com/actions/runner-images/issues/13291"
],
"generator": "Visual Studio 17 2022",
"cacheVariables": {
"BUILD_WPF_GUI": "ON"
},
"displayName": "Windows x64 Publish"
},
{
@@ -194,11 +225,9 @@
"publish-base",
"windows-arm64"
],
"$comment": [
"github actions only support Visual Studio 17 2022",
"see https://github.com/actions/runner-images/issues/13291"
],
"generator": "Visual Studio 17 2022",
"cacheVariables": {
"BUILD_WPF_GUI": "ON"
},
"displayName": "Windows arm64 Publish"
},
{
@@ -233,6 +262,22 @@
],
"displayName": "macOS arm64 Publish"
},
{
"name": "android-publish-arm64",
"inherits": ["publish-base", "android-arm64"],
"displayName": "Android arm64 Publish",
"cacheVariables": {
"INSTALL_PYTHON": "OFF"
}
},
{
"name": "android-publish-x64",
"inherits": ["publish-base", "android-x64"],
"displayName": "Android x64 Publish",
"cacheVariables": {
"INSTALL_PYTHON": "OFF"
}
},
{
"name": "smoke-test",
"$comment": [
@@ -394,6 +439,16 @@
"configurePreset": "macos-publish-arm64",
"configuration": "RelWithDebInfo"
},
{
"name": "android-publish-arm64",
"displayName": "Build Android arm64 Publish",
"configurePreset": "android-publish-arm64"
},
{
"name": "android-publish-x64",
"displayName": "Build Android x64 Publish",
"configurePreset": "android-publish-x64"
},
{
"name": "smoke-test",
"displayName": "Build macOS arm64 Smoke Test",

View File

@@ -130,7 +130,7 @@ MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)
- [集成文档](https://docs.maa.plus/zh-cn/protocol/integration.html)
- [回调消息协议](https://docs.maa.plus/zh-cn/protocol/callback-schema.html)
- [任务流程协议](https://docs.maa.plus/zh-cn/protocol/task-schema.html)
- [自动抄作业协议](https://docs.maa.plus/zh-cn/protocol/copilot-schema.html)
- [自动战斗协议](https://docs.maa.plus/zh-cn/protocol/copilot-schema.html)
### 外服适配

4
context7.json Normal file
View File

@@ -0,0 +1,4 @@
{
"url": "https://context7.com/maaassistantarknights/maaassistantarknights",
"public_key": "pk_jDwwiGY7WKDA3WnLQzoWX"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

@@ -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!

View File

@@ -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:
- **default**: `==Default==` - ==Default==
- **info**: `==Info=={.info}` - ==Info=={.info}
- **note**: `==Note=={.note}` - ==Note=={.note}
- **tip**: `==Tip=={.tip}` - ==Tip=={.tip}
- **warning**: `==Warning=={.warning}` - ==Warning=={.warning}
- **danger**: `==Danger=={.danger}` - ==Danger=={.danger}
- **caution**: `==Caution=={.caution}` - ==Caution=={.caution}
- **important**: `==Important=={.important}` - ==Important=={.important}
## Hidden Text
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"
Whether to enable
:::
::: field name="callback" type="(...args: any[]) => void" optional default="() => {}"
<Badge type="tip" text="Added in v1.0.0" />
Callback function
:::
::: field name="other" type="string" deprecated
<Badge type="danger" text="Deprecated in v0.9.0" />
Deprecated property
:::
::::
## Icons
This theme provides icon support, where you can use icons in the following places:

View File

@@ -8,7 +8,8 @@ icon: teenyicons:linux-alt-solid
**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)

View File

@@ -201,7 +201,7 @@ strategy = "merge" # or "first" (default)
# use all expiring medicine on Sunday night
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"
conditions = [

View File

@@ -1,5 +1,5 @@
---
order: 3
order: 4
icon: mdi:plug
---
@@ -16,6 +16,7 @@ As of MAA v5.22.3, the following emulators and connection addresses are supporte
- LDPlayer 9: `emulator-5554/5556/5558/5560`, `127.0.0.1:5555/5557/5559/5561`
- NoxPlayer: `127.0.0.1:62001/59865`
- MEmu Play: `127.0.0.1:21503`
- 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
- [LDPlayer 9](https://help.ldmnq.com/docs/LD9adbserver) `emulator-5554`
- [NoxPlayer](https://support.yeshen.com/zh-CN/qt/ml) `127.0.0.1:62001`
- [MEmu Play](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `127.0.0.1:21503`
- [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. In `Settings` - `Connection` - `Connection Preset`, select `Android Virtual Device (AVD)`.
2. For `Touch Mode`, select `MaaFramework`.
## Touch Mode
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~~
## Running multiple MAA and emulator instances

View File

@@ -26,6 +26,8 @@ Typical `16:9` resolutions include `3840x2160` (4K), `2560x1440` (2K), `1920x108
## Download and Run ADB Debug Tool to Connect Device
::: steps
1. Download [ADB](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) and extract it.
2. Open the extracted folder, clear the address bar, type `cmd`, and press Enter.
3. In the command prompt window that appears, type `adb`. If you see extensive help text, the command ran successfully.
@@ -36,6 +38,8 @@ Typical `16:9` resolutions include `3840x2160` (4K), `2560x1440` (2K), `1920x108
adb devices
```
:::
- 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`.
4. Link Start!
:::

View File

@@ -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
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
1. Install MAA Dynamic Library
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
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
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"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
- 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"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
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`
::::
## Emulator Support
@@ -121,6 +127,8 @@ Requirements: 16:9 screen resolution larger than 720p
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'`.
### ✅ [redroid](https://github.com/remote-android/redroid-doc)
Android 11 version images can run the game normally. Make sure to expose port 5555 for ADB.

View File

@@ -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.
:::
### ✅ [MuMu Emulator Pro](https://mumu.163.com/mac/)
Supported, but less thoroughly tested. Requires using a touch mode other than `MacPlayTools`. Related issue: [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)
### ✅ [AVD](https://developer.android.com/studio/run/managing-avds)
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
### ✅ [AVD](https://developer.android.com/studio/run/managing-avds)
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.

View File

@@ -40,6 +40,11 @@ const fullySupport = [
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.',
},
{
name: 'Nox Player',
link: 'https://www.bignox.com/',
@@ -67,7 +72,7 @@ const partiallySupport = shuffleArray([
{
name: 'AVD',
link: 'https://developer.android.com/studio/run/managing-avds',
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.',
},
{
name: 'Google Play Games (Developer)',

View File

@@ -1,5 +1,5 @@
---
order: 2
order: 3
icon: ph:question-fill
---
@@ -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.
## Connection errors
### Verify ADB and connection address are correct

View File

@@ -0,0 +1,83 @@
---
order: 2
icon: material-symbols:download-2-rounded
---
<!-- markdownlint-disable MD024 -->
# Download & Installation
::: tip
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 thirdparty, 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.

View File

@@ -40,7 +40,7 @@ icon: hugeicons:brain-02
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`.

View File

@@ -7,15 +7,53 @@ icon: solar:streets-map-point-linear
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.)
- Task flow: Automatically executes intensive farming, construction, resource delivery, and settlement loop
### RA-4
- 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

View File

@@ -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.

View File

@@ -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`
## Connection Settings

View File

@@ -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).
Currently supports the following export formats:
- [Penguin Statistics Planner](https://penguin-stats.io/planner) (ArkPlanner)
- [Arknights Toolbox](https://arkntools.app/#/material) (Lolicon)
- Markdown table
- CSV table
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)

View File

@@ -137,6 +137,6 @@ Please note that JSON files do not support comments. The comments in this docume
## Example
[243_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/243_layout_3_times_a_day.json)
[243_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/243_layout_3_times_a_day.json)
[153_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/153_layout_3_times_a_day.json)
[153_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/153_layout_3_times_a_day.json)

View File

@@ -224,7 +224,7 @@ Todo
- `MedicineConfirm`
Use sanity potion
- `ExpiringMedicineConfirm`
Use sanity potion expiring within 48 hours
Use expiring sanity potion
- `StoneConfirm`
Use Originium Prime
- `RecruitRefreshConfirm`
@@ -355,6 +355,16 @@ Todo
}
```
- `RecruitPreservedTag`
Recruitment preserved tag detected
```json
// Corresponding details field example
{
"tag": "支援机械" // "Robot"
}
```
- `RecruitResult`
Recruitment recognition result

View File

@@ -829,14 +829,6 @@ For farming hidden Collapsal Paradigms, N10 difficulty is recommended, with the
MAA automatically handles copper pickup and exchange in JieGarden I.S.:
::: tip Enable Conditions
Copper exchange functionality is only enabled in the following modes:
- Investment Mode: Requires "Investment mode enable shopping, recruitment, advance 2 floors" option enabled
- Other Modes: Enabled by default
:::
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:

View File

@@ -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).
@@ -300,7 +312,7 @@ Options: `CN` | `US` | `JP` | `KR`
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -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.
<br>
**RelaunchAnchor:**
<br>
`16` (`RA1`) - RA-1, automatically execute intensive farming, construction, resource delivery, and settlement loop.
<br>
`32` (`RA15`) - RA-15, complete the 60-kill mission with Civilight Eterna.
<br>
`48` (`RA4`) - RA-4, Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
Automatically crafted items. Suggested to fill in the substring.
Automatically crafted items. Suggested to fill in the substring. Only effective for Tales theme.
:::
::: field name="increment_mode" type="number" optional default="0"
Click type.
Click type. Only effective for Tales theme.
<br>
`0` - Rapid Click
<br>
`1` - Long Press
:::
::: field name="num_craft_batches" type="number" optional default="16"
Maximum number of craft batches per session.
Maximum number of craft batches per session. Only effective for Tales theme.
:::
::::
@@ -1146,10 +1170,10 @@ value
Invalid placeholder. Enum value: 0.
:::
::: field name="MinitouchEnabled" type="boolean" optional
Deprecated. Originally for enabling minitouch; "1" - on, "0" - off. Note that the device may not support it. Enum value: 1 (deprecated).
Deprecated. Originally for enabling Minitouch; "1" - on, "0" - off. Note that the device may not support it. Enum value: 1 (deprecated).
:::
::: field name="TouchMode" type="string" optional default="minitouch"
Touch mode setting. Options: minitouch | maatouch | adb. Default minitouch. Enum value: 2.
Touch mode setting. Options: minitouch | maatouch | adb | MaaFwAdb. Default minitouch. Enum value: 2.
:::
::: field name="DeploymentWithPause" type="boolean" optional
Whether to pause when deploying operators (affects IS, Copilot and Stationary Security Service). Options: "1" | "0". Enum value: 3.
@@ -1160,4 +1184,7 @@ Whether to enable AdbLite or not. Options: "0" | "1". Enum value: 4.
::: field name="KillAdbOnExit" type="boolean" optional
Release Adb on exit. Options: "0" | "1". Enum value: 5.
:::
::: 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.
:::
::::

View File

@@ -84,7 +84,9 @@ icon: iconoir:developer
- F5 キーを押して実行
::: tip
Win32ControllerWindows ウィンドウ制御)関連機能をデバッグする場合は、[MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases) から対応プラットフォームのアーカイブをダウンロードし、`bin` ディレクトリ内の `MaaWin32ControlUnit.dll` を MAA の DLL と同じディレクトリ(例:`build/bin/Debug`)に配置してください。自動ダウンロードスクリプトの PR 歓迎!
Win32ControllerWindows ウィンドウ制御)/ MaaFwAdbControllerMaaFramework のタッチモード)関連機能を実行する場合は、[MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases) から対応プラットフォームのアーカイブをダウンロードし、`bin` ディレクトリ内の `MaaWin32ControlUnit.dll` / `MaaAdbControlUnit.dll` を MAA の DLL と同じディレクトリ(例:`build/bin/Debug`)に配置してください。自動ダウンロードスクリプトの PR 歓迎!
関連機能をデバッグする場合は、[MaaFramework の Debug バージョンを自分でコンパイル](https://maafw.com/docs/4.1-BuildGuide)し、対応する DLL ファイルを使用する必要があります。そうしないと、ブレークポイントデバッグ中に謎のクラッシュが発生します。
:::
9. これで自由に ~~改造~~ 開発を始められます

View File

@@ -23,6 +23,8 @@ icon: jam:write-f
このテーマでは、ヒント、ノート、情報、注意、警告、詳細などのカスタムコンテナをサポートしており、これらの機能を利用して特定のコンテンツを強調することができます。
コンテナ内にコンテナをネストする場合、親コンテナは子コンテナよりもコロン `:` を1つ多く記述する必要があります。
コンテナの使用方法:
```markdown
@@ -31,6 +33,13 @@ icon: jam:write-f
:::
```
または GitHub スタイルの構文を使用する方法:
```markdown
> [!コンテナの種類]
> 書きたい内容
```
受け入れられるコンテナの内容とデフォルトのタイトルは次のとおりです:
- `tip` ヒント
@@ -39,6 +48,7 @@ icon: jam:write-f
- `warning` 注意
- `danger` 警告
- `details` 詳細
- `window` ==特殊なコンテナ==
### コンテナの例
@@ -66,6 +76,190 @@ icon: jam:write-f
これは詳細のコンテナです
:::
::: window
これは特殊なコンテナです
:::
## マーカー
マーカー構文を使用して、強調したい内容にマークを付けることができます。
使用方法:`==マーカーの内容=={マーカーの色(オプション)}` の構文でマークを付けます。両端にスペースが必要な点に注意してください。
**入力:**
```markdown
MaaAssistantArknights は ==たくさんの豚== によって開発されました
```
**出力:**
MaaAssistantArknights は ==たくさんの豚== によって開発されました
テーマには以下のカラースキームが組み込まれています:
- **default**: `==Default==` - ==Default==
- **info**: `==Info=={.info}` - ==Info=={.info}
- **note**: `==Note=={.note}` - ==Note=={.note}
- **tip**: `==Tip=={.tip}` - ==Tip=={.tip}
- **warning**: `==Warning=={.warning}` - ==Warning=={.warning}
- **danger**: `==Danger=={.danger}` - ==Danger=={.danger}
- **caution**: `==Caution=={.caution}` - ==Caution=={.caution}
- **important**: `==Important=={.important}` - ==Important=={.important}
## 隠しテキスト
何らかの理由でドキュメントの一部を一時的に隠す必要がある場合、隠しテキスト機能を使用できます。
`!!隠したい内容!!{設定(オプション)}` の構文で使用でき、デフォルトの効果は以下の通りです:
!!なんかニコニコ大百科(仮)を読んでる気がする(取り消し線!!
以下の設定が使用できます:
::: window
入力:
```markdown
+ マスクエフェクト + マウスホバー:!!マウスホバーで見えます!!{.mask .hover}
+ マスクエフェクト + クリック:!!クリックで見えます!!{.mask .click}
+ テキストぼかしエフェクト + マウスホバー:!!マウスホバーで見えます!!{.blur .hover}
+ テキストぼかしエフェクト + クリック:!!クリックで見えます!!{.blur .click}
```
出力:
- マスクエフェクト + マウスホバー:!!マウスホバーで見えます!!{.mask .hover}
- マスクエフェクト + クリック:!!クリックで見えます!!{.mask .click}
- テキストぼかしエフェクト + マウスホバー:!!マウスホバーで見えます!!{.blur .hover}
- テキストぼかしエフェクト + クリック:!!クリックで見えます!!{.blur .click}
:::
## ステップ
ステップバイステップのチュートリアルを書くとき、番号付きリストはネストによって階層感を失うことがあります。そのような場合、`steps` コンテナが最善の選択です。
入力:
````markdown
:::: steps
1. ステップ 1
```ts
console.log('Hello World!')
```
2. ステップ 2
ステップ 2 の関連内容はこちら
3. ステップ 3
::: tip
ヒントコンテナ
:::
4. 終わり
::::
````
出力:
:::: steps
1. ステップ 1
```ts
console.log('Hello World!')
```
2. ステップ 2
ステップ 2 の関連内容はこちら
3. ステップ 3
::: tip
ヒントコンテナ
:::
4. 終わり
::::
## スマート画像コンテナ
テーマが提供する機能をベースに画像コンテナをラッパーしました。このコンテナはライト/ダークテーマに応じて対応する画像を自動的に表示し、自動レイアウトをサポートします。
Markdown 本文で `<ImageGrid>` コンポーネントを使用してこのメソッドを呼び出すことができます。具体的な構文と効果は以下の通りです:
::: window
構文:
```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'
}
]" />
```
レンダリング結果:
<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'
}
]" />
:::
## フィールドコンテナ
この構文はやや複雑なため、[公式ドキュメント](https://theme-plume.vuejs.press/guide/markdown/field/)を参照して使用してください。
効果は以下の通りです:
:::: field-group
::: field name="theme" type="ThemeConfig" required default="{ base: '/' }"
テーマ設定
:::
::: field name="enabled" type="boolean" optional default="true"
有効かどうか
:::
::: field name="callback" type="(...args: any[]) => void" optional default="() => {}"
<Badge type="tip" text="v1.0.0 追加" />
コールバック関数
:::
::: field name="other" type="string" deprecated
<Badge type="danger" text="v0.9.0 廃止" />
廃止されたプロパティ
:::
::::
## アイコン
このテーマではアイコンがサポートされており、次の場所でアイコンを使用できます:

View File

@@ -8,7 +8,8 @@ icon: teenyicons:linux-alt-solid
**このチュートリアルでは、読者にLinux環境の構成能力とプログラミングの基礎が必要です**
::: info 注意
MAAの構築方法はまだ議論されていますが、このチュートリアルの内容は古くなる可能性があります。 [GitHub workflow file](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/.github/workflows/ci.yml#L134) のスクリプトに準拠してください
MAAの構築方法はまだ議論されていますが、このチュートリアルの内容は古くなる可能性があります。[GitHub workflow file](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/dev-v2/.github/workflows/ci.yml#L224#:~:text=ubuntu%3A) のスクリプトに準拠してください
また、[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) も参照可能です。
:::
## コンパイルプロセス
@@ -56,6 +57,8 @@ MAAの構築方法はまだ議論されていますが、このチュートリ
cmake --install build --prefix <target_directory>
```
4. MaaFwAdbControllerMaaFramework のタッチモード)関連機能をデバッグする場合は、[MaaFramework の Debug バージョンを自分でコンパイル](https://maafw.com/docs/4.1-BuildGuide)し、`libMaaAdbControlUnit.so` をインストールディレクトリにコピーする必要があります。
## その他のインストール方法
- AUR: [maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights)

View File

@@ -199,7 +199,7 @@ strategy = "merge" # 或者 "first" (默认)
# 在周天晚上使用所有的将要过期的理智药
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -1,23 +1,19 @@
---
order: 1
icon: material-symbols:download
icon: material-symbols:download-2-rounded
---
# 安装及编译
# インストールとコンパイル
::: important Translation Required
This page is outdated and maybe still in Simplified Chinese. Translation is needed.
:::
maa-cli は、プリコンパイル済みバイナリ、パッケージマネージャー、または `cargo` を使用した自己コンパイルなど、複数のインストール方法を提供しています。
maa-cli 提供多种方式安装,包括预编译二进制文件、包管理器和通过 `cargo` 自行编译安装。
## プリコンパイル済みバイナリ
## 预编译二进制文件
安装 maa-cli 最简单的方式是使用安装脚本一键安装:
maa-cli をインストールする最も簡単な方法は、インストールスクリプトを使用する方法です:
::: tabs#pre-compile
@tab:active Linux macOS
@tab:active Linux macOS
```bash
curl -fsSL https://raw.githubusercontent.com/MaaAssistantArknights/maa-cli/main/install.sh | bash
@@ -31,27 +27,27 @@ Invoke-WebRequest -Uri "https://raw.githubusercontent.com/MaaAssistantArknights/
:::
后续你可以通过 `maa self update` 来更新 maa-cli。
その後、`maa self update` コマンドで maa-cli を更新できます
如果你的平台不在上述列表中,可以尝试自行[编译安装](#编译安装)
お使いのプラットフォームが上記のリストにない場合は、[コンパイルによるインストール](#コンパイルによるインストール)を試してみてください
## 通过包管理器安装
## パッケージマネージャーによるインストール
对于 macOS 和受支持的 Linux 发行版用户,可以使用包管理器安装 maa-cli
macOS および対応している Linux ディストリビューションユーザーは、パッケージマネージャーを使用して maa-cli をインストールできます
### macOS
Homebrew 用户可以通过非官方的 [tap](https://github.com/MaaAssistantArknights/homebrew-tap/) 安装 maa-cli
Homebrew ユーザーは、非公式の [tap](https://github.com/MaaAssistantArknights/homebrew-tap/) を使用して maa-cli をインストールできます
::: code-tabs
@tab:active 定版
@tab:active 定版
```bash :no-line-numbers
brew install MaaAssistantArknights/tap/maa-cli
```
@tab 不定版/预发行
@tab 不定版/プレリリース
```bash :no-line-numbers
brew install MaaAssistantArknights/tap/maa-cli-beta
@@ -61,11 +57,11 @@ brew install MaaAssistantArknights/tap/maa-cli-beta
### Linux
Arch、Nix 以及 Linux Homebrew 用户可以通过包管理器安装 maa-cli
Arch、Nix、および Linux Homebrew ユーザーは、パッケージマネージャーを使用して maa-cli をインストールできます
#### Arch Linux
可以安装 [AUR 包](https://aur.archlinux.org/packages/maa-cli/)
[AURパッケージ](https://aur.archlinux.org/packages/maa-cli/) をインストールできます
::: code-tabs
@@ -85,17 +81,17 @@ yay -S maa-cli
#### ❄️ Nix
用户可以直接运行:
ユーザーは直接実行できます:
::: code-tabs
@tab:active 定版
@tab:active 定版
```bash :no-line-numbers
nix run nixpkgs#maa-cli
```
@tab 每夜构建
@tab ナイトリービルド
```bash :no-line-numbers
nix run github:Cryolitia/nur-packages#maa-cli-nightly
@@ -103,31 +99,31 @@ nix run github:Cryolitia/nur-packages#maa-cli-nightly
:::
定版打包至 [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-cli/package.nix) 中,使用 `nixpkgs` 中的 Rust 工具链;每夜构建位于 [NUR](https://github.com/Cryolitia/nur-packages/blob/master/pkgs/maa-assistant-arknights/maa-cli.nix) 中,使用 Beta channel 的 Rust 工具链,由 Github Actions 日自更新和构建验证
定版 [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-cli/package.nix) にパッケージされており、`nixpkgs` Rust ツールチェーンを使用します。ナイトリービルドは [NUR](https://github.com/Cryolitia/nur-packages/blob/master/pkgs/maa-assistant-arknights/maa-cli.nix) にあり、Rust ツールチェーンのベータチャンネルを使用し、GitHub Actions によって毎日自更新およびビルド検証が行われます
#### Homebrew
对于在 Linux 上使用 Homebrew 的用户,请参见上述 macOS 的安装方式
Linux Homebrew を使用するユーザーは、上記の macOS のインストール方法を参照してください
#### 其他发行版
#### その他のディストリビューション
请使用 [预编译二进制文件](#预编译二进制文件) 或是 [自行编译安装](#编译安装)
[プリコンパイル済みバイナリ](#プリコンパイル済みバイナリ)を使用するか、[コンパイルによるインストール](#コンパイルによるインストール)を行ってください
我们也欢迎各位有兴趣的开发者将 maa-cli 提交到更多发行版的官方仓库或是用户仓库
また、maa-cli をより多くのディストリビューションの公式リポジトリやユーザーリポジトリに提出してくださる開発者の方々も歓迎します
## 编译安装
## コンパイルによるインストール
Rust 开发者可以通过 `cargo` 自行编译安装 maa-cli
Rust 開発者は、`cargo` を使用して maa-cli を自己コンパイルできます
::: code-tabs
@tab:active 稳定版本
@tab:active 安定バージョン
```bash :no-line-numbers
cargo install --git https://github.com/MaaAssistantArknights/maa-cli.git --bin maa --tag stable --locked
```
@tab 开发版本
@tab 開発バージョン
```bash :no-line-numbers
cargo install --git https://github.com/MaaAssistantArknights/maa-cli.git --bin maa --locked
@@ -136,65 +132,65 @@ cargo install --git https://github.com/MaaAssistantArknights/maa-cli.git --bin m
:::
::: warning
maa-cli 目前的最低支持 Rust 版本 (MSRV) 为 1.88。请注意MSRV 可能随时发生变化,我们建议始终使用最新的 Rust 工具链以获得最佳体验
maa-cli の現在の最小サポート Rust バージョン(MSRV)は 1.88 です。MSRVは予告なく変更される可能性があるため、最適な体験を得るには常に最新のRustツールチェーンを使用することをお勧めします
:::
### 编译选项
### コンパイルオプション
从源码编译时,你可以通过 `--no-default-features` 禁用默认的特性,然后通过 `--features` 来启用特定的特性。目前可用的特性有
ソースからコンパイルする場合、`--no-default-features` でデフォルトのフィーチャーを無効にし、`--features` で特定のフィーチャーを有効にすることができます。現在利用可能なフィーチャーは以下の通りです
- `cli_installer`: 启用 `maa self update` 命令,用于更新自身,这个特性默认启用;
- `core_installer`: 启用 `maa install` `maa update` 命令,用于安装和更新 MaaCore 及资源,这个特性默认启用;
- `git2`: 提供 `libgit2` 资源更新后端,这个特性默认启用
- `cli_installer`: `maa self update` コマンドを有効にし、自身を更新するために使用します。このフィーチャーはデフォルトで有効です。
- `core_installer`: `maa install` および `maa update` コマンドを有効にし、MaaCore とリソースをインストールおよび更新するために使用します。このフィーチャーはデフォルトで有効です。
- `git2`: `libgit2` リソース更新バックエンドを提供します。このフィーチャーはデフォルトで有効です
## 安装 MaaCore 及资源
## MaaCoreとリソースのインストール
maa-cli 只提供了一个命令行界面,它需要 MaaCore 和资源来运行任务
maa-cli はコマンドラインインターフェースのみを提供しており、タスクを実行するには MaaCore とリソースが必要です
根据安装方式和平台的不同,你的操作也有所区别
インストール方法とプラットフォームによって、操作は異なります
::: tabs#maacore
@tab:active 预编译
对于使用预编译二进制或者自行编译的用户maa-cli 可以帮助你安装和更新
@tab:active プリコンパイル
プリコンパイル済みバイナリを使用する場合、または自己コンパイルしたユーザーの場合、maa-cli がインストールと更新を支援します
```bash :no-line-numbers
maa install
```
@tab Windows
对于 Windows 平台的用户,在运行 `maa install` 命令前,请以管理员身份在命令提示符或 PowerShell 中运行以下命令,以安装必要组件 VC++ 运行库
Windows プラットフォームのユーザーは、`maa install` コマンドを実行する前に、管理者権限でコマンドプロンプトまたは PowerShell で以下のコマンドを実行し、必須コンポーネントである VC++ ランタイムをインストールしてください
```bat :no-line-numbers
winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /norestart" --uninstall-previous --accept-package-agreements --force
```
然后再运行 `maa install`。
その後、`maa install` を実行してください
@tab Arch
你可以使用 maa-cli 安装预编译的 MaaCore:
maa-cli を使用してプリコンパイル済みの MaaCore をインストールできます:
```bash :no-line-numbers
maa install
```
你也可以通过 [AUR](https://aur.archlinux.org/packages/maa-assistant-arknights/) 安装 maa-core
また、[AUR](https://aur.archlinux.org/packages/maa-assistant-arknights/) を使用して maa-core をインストールすることもできます:
```bash :no-line-numbers
paru -S maa-assistant-arknights
```
或者
または
```bash :no-line-numbers
yay -S maa-assistant-arknights
```
@tab Nix
Nix 上的 maa-cli 强制依赖 MaaCore,因此 Nix 用户无需,也不应该手动安装 MaaCore
Nix maa-cli MaaCore に強く依存しています。そのため、Nix ユーザーは MaaCore を手動でインストールする必要はなく、またすべきではありません
:::
::: warning
`maa install` 下载的是 MAA 官方预编译的 MaaCore而包管理器安装的 MaaCore 可能使用与官方预编译版本不同的编译选项和依赖版本,这也许会导致性能和功能上的略微差异
`maa install` MAA 公式がプリコンパイルした MaaCore をダウンロードします。一方、パッケージマネージャーでインストールされる MaaCore は、公式のプリコンパイルバージョンとは異なるコンパイルオプションや依存関係のバージョンを使用する可能性があり、これによりパフォーマンスや機能にわずかな違いが生じる可能性があります
:::

View File

@@ -1,5 +1,5 @@
---
order: 3
order: 4
icon: mdi:plug
---
@@ -43,6 +43,7 @@ icon: mdi:plug
- [MuMu Pro](https://mumu.163.com/mac/function/20240126/40028_1134600.html) `16384`
- [逍遥](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `21503`
- [夜神](https://support.yeshen.com/zh-CN/qt/ml) `62001`
- [テンセントアプリストア](https://sj.qq.com/faq/3878) (5.10.56.xx 以降)ADB ポートは `127.0.0.1:5555` 固定。ADB パス例:`C:\Program Files\Tencent\Androws\Application\バージョン番号\adb.exe`
他のエミュレータについては[Zhaoqingqing's Blog](https://www.cnblogs.com/zhaoqingqing/p/15238464.html)を参照してください。
@@ -224,14 +225,25 @@ LDPlayerの正式版9 V9.1.32 以降を使用する必要があります。<!--
3. `インスタンス番号` には LD マルチインスタンス内でのエミュレーターの番号を入力してください。主インスタンスの場合は `0` です。
### AVD スクリーンショット強化モード
Android Emulator v27.2.9 以降が必要です。(アークナイツのリリース以降にダウンロードしたエミュレーターであれば大丈夫です。)
AVD スクリーンショット強化モードは MaaFramework 内で実装されているため、MaaFramework のタッチモードを有効にすることが、この機能を利用する前提となります。
1. `設定` - `接続設定` - `接続構成``Android Virtual Device (AVD)` を選択します。
2. `タッチモード``MaaFramework` を選択します。
## タッチモード
1. [Minitouch](https://github.com/DeviceFarmer/minitouch)Android タッチイベントを操作するための C 言語で書かれたツールで、`evdev` デバイスを操作し、外部プログラムがタッチイベントとジェスチャーをトリガーできる Socket インターフェースを提供します。Android 10 以降、SELinux が `Enforcing` モードの場合、Minitouch は使用できなくなりました。<sup>[出典](https://github.com/DeviceFarmer/minitouch?tab=readme-ov-file#for-android-10-and-up)</sup>
2. [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch)MAA による Java で Minitouch を再実装し、Android の `InputDevice` を使用し、追加の機能を付加しました。高バージョンの Android での利用可能性はまだテスト中です。~~テストを手伝ってください~~
3. Adb Input直接 ADB を呼び出して、Android の `input` コマンドを使用してタッチ操作を行います。最も互換性があり、最も遅い速度です。
4. [MaaFramework](https://maafw.com/)MaaFramework の制御ユニットのスクリーンショットとタッチ機能を呼び出します。利用可能性はまだテスト中です。~~テストを手伝ってください x2~~
## ADB Lite
MAA によって独自に実装された ADB クライアントで、オリジナルの ADB よりも多重の ADB プロセスを開始せずに済み、パフォーマンスの低下を抑えることができますが、一部のスクリーンショット方法は使用できません。
推奨されますが、具体的な利点と欠点はまだフィードバックを得ていません。~~テストを手伝ってください x2~~
推奨されますが、具体的な利点と欠点はまだフィードバックを得ていません。~~テストを手伝ってください x3~~

View File

@@ -3,7 +3,7 @@ order: 4
icon: mingcute:android-fill
---
# 物理的な**Android**デバイス
# 物理的な Android デバイス
::: warning
この方法は ADB デバッグを伴い、さらに PC との接続が必要なため、**初心者には非推奨**です。
@@ -25,6 +25,8 @@ icon: mingcute:android-fill
## adbデバッグ・ツールをダウンロードして実行し、デバイスに接続する
::: steps
1. [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) をダウンロードし、解凍する。
2. 解凍したフォルダを開き、アドレスバーをクリアし`cmd` と入力しエンターキーを押します。
3. ポップアップしたコマンドプロンプトウィンドウに`adb`と入力し、英語のヘルプテキストがたくさん表示されれば、実行は成功です。
@@ -35,6 +37,8 @@ icon: mingcute:android-fill
adb devices
```
:::
- 実行に成功すると `USB デバッグ` デバイスが接続されたというメッセージが表示される。
- 成功した接続例:
@@ -113,31 +117,35 @@ icon: mingcute:android-fill
## 解像度の自動変更
::: steps
1. MAAディレクトリに2つの新しいテキストファイルを作成し、以下の内容で埋めてください。
```bash
```bat
:: 解像度を 1080p に調整する
adb -s <ターゲット・デバイスのシリアル番号> shell wm size 1080x1920
:: 画面の輝度を下げる(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 1
```
```bash
```bat
:: 解像度の復元
adb -s <ターゲット・デバイスのシリアル番号>> shell wm size reset
adb -s <ターゲット・デバイスのシリアル番号> shell wm size reset
:: 画面の明るさを上げる(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 20
:: ホームに戻る(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 3
:: ロック画面(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 26
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 20
:: ホームに戻る(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 3
:: ロック画面(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 26
```
2. 最初のファイルを `startup.bat` に、2番目のファイルを `finish.bat` にリネームする。
- リネーム後、拡張子を変更するための2回目の確認ダイアログボックスが表示されず、ファイルアイコンも変更されない場合は、Windowsでファイルの拡張子を表示する方法をご自身で検索してください。
- リネーム後、拡張子を変更するための2回目の確認ダイアログボックスが表示されず、ファイルアイコンも変更されない場合は、Windowsでファイルの拡張子を表示する方法をご自身で検索してください。
3. MAA の `設定` - `接続設定` - `スクリプトを使用して始めます` と `終了時にスクリプトを使用します` にそれぞれ `startup.bat` と `finish.bat` を記入してください。
:::
## MAAとの接続
### 有線接続
@@ -156,6 +164,8 @@ icon: mingcute:android-fill
#### `adb tcpip` を使用してワイヤレスポートをオンにします
::: steps
1. 先ほど開いたコマンドプロンプトウィンドウに以下のコマンドを入力し、ワイヤレスデバッグを有効にします。
```bash
@@ -170,12 +180,16 @@ icon: mingcute:android-fill
3. `<IP>:5555` を MAAの `設定` - `接続設定` - `接続先アドレス` に入力してください。例 `192.168.1.2:5555`。
4. Link Start!
:::
#### `adb pair` を使用してワイヤレスポートをオンにします
::: tip
`adb pair` ワイヤレス ペアリング、つまり Android 11 以降の開発者向けオプションで `ワイヤレスデバッグ` を使用すると、 `adb tcpip` と比較して有線接続が不要になります。
:::
::: steps
1. デバイスの開発者向けオプションに移動し、 `ワイヤレスデバッグ` をクリックしてオンにし、OKをクリックして、 `ペアリングコードでデバイスをペアリング` をクリックして、ペアリングが完了するまで表示されるポップアップウィンドウを閉じないでください。
2. ペアリングします。
@@ -186,11 +200,17 @@ icon: mingcute:android-fill
3. 現在のデバイス画面に表示される `<IP アドレスとポート>` を MAAの `設定` - `接続設定` - `接続アドレス` に入力します( `192.168.1.2:11451` など)、**さっき記入したものとは違うに違いない**。
4. Link Start!
:::
#### ルート権限でワイヤレスポートをオンにします
~~ルート権限を使用できますが、このドキュメントを読む必要がありますか~~
::: steps
1. [WADB](https://github.com/RikkaApps/WADB/releases) をダウンロードしてインストールし、ルート化します。
2. WADBを起動して、ワイヤレスadbを起動します。
3. WADBから提供された `<IP アドレスとポート>` を MAAの `設定` - `接続設定` - `接続アドレス` に入力します( `192.168.1.2:5555` など)。
4. Link Start!
:::

View File

@@ -19,7 +19,9 @@ MAA WPF GUI は現在 Wine を通じて実行できます。MAAは.NETランタ
#### インストール手順
1. Visual C++ Redistributable をインストールする:
:::: steps
1. Visual C++ Redistributable をインストールする
[Visual C++ 再頒布可能パッケージ](https://aka.ms/vc14/vc_redist.x64.exe) をダウンロードしてインストールします:
@@ -31,7 +33,11 @@ MAA WPF GUI は現在 Wine を通じて実行できます。MAAは.NETランタ
`DependencySetup_依赖库安装.bat` は winget と Windows の権限昇格機構に依存しているため、Wine では通常正常に動作しません。そのため、ランタイムライブラリは手動でインストールする必要があります。
:::
2. Windows 版 MAA をダウンロードし、解凍した後、`wine MAA.exe` を実行します。
2. MAA をダウンロード
Windows 版 MAA をダウンロードし、解凍した後、`wine MAA.exe` を実行します。
::::
::: info 注意
接続設定で ADB パスを [Windows 版 `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) に設定する必要があります。
@@ -66,52 +72,52 @@ MAA Wine Bridge で生成された `MaaDesktopIntegration.so` を `MAA.exe` と
### Python を使用する
#### MAA 動的ライブラリのインストール
:::: steps
1. Linux ダイナミック ライブラリを [MAA ウェブサイト](https://maa.plus/) からダウンロードし、解凍します、または以下のソフトウェアリポジトリからインストールします:
- AUR[maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights)、インストール後のプロンプトに従ってファイルを編集します
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
1. MAA 動的ライブラリのインストール
1. Linux ダイナミック ライブラリを [MAA ウェブサイト](https://maa.plus/) からダウンロードし、解凍します、または以下のソフトウェアリポジトリからインストールします
- AUR[maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights)、インストール後のプロンプトに従ってファイルを編集します
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
2. `./MAA-v{バージョン}-linux-{アーキテクチャ}/Python/` ディレクトリに移動し、`sample.py` ファイルを開きます
2. `./MAA-v{バージョン}-linux-{アアーキテクチャ}/Python/` ディレクトリに移動し、`sample.py` ファイルを開きます
::: tip
プリコンパイル済みバージョンには、比較的新しいLinuxディストリビューション(Ubuntu 22.04)でコンパイルされた動的ライブラリが含まれており、システムに古いバージョンのlibstdc++がある場合、ABIの非互換性に遭遇する可能性があります。
[Linuxコンパイル・チュートリアル](../../develop/linux-tutorial.md) を参照して再コンパイルまたはコンテナを使用して実行できます。
:::
::: tip
プリコンパイル済みバージョンには、比較的新しいLinuxディストリビューション(Ubuntu 22.04)でコンパイルされた動的ライブラリが含まれており、システムに古いバージョンのlibstdc++がある場合、ABIの非互換性に遭遇する可能性があります。
[Linuxコンパイル・チュートリアル](../../develop/linux-tutorial.md) を参照して再コンパイルまたはコンテナを使用して実行できます。
:::
2. ADB 構成
1. [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L48) セクションを見つける
2. `adb` ツール呼び出し
- エミュレータが `Android Studio` に `avd` を使用している場合は、 `adb` が付属します。 `adb.exe` の欄に直接 `adb` パスを記入することができ、一般的には `$HOME/Android/Sdk/platform-tools/` で見つけることができます。例:
#### ADB 構成
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "エミュレータの adb アドレス"):
```
1. [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L48) セクションを見つける
- 他のエミュレータを使用する場合は、最初に `adb` をダウンロードして: `$ sudo apt install adb` 次に、パスを入力するか、 `PATH` 環境変数を使用して `adb` を直接入力します
2. `adb` ツール呼び出し
- エミュレータが `Android Studio` に `avd` を使用している場合は、 `adb` が付属します `adb.exe` の欄に直接 `adb` パスを記入することができ、一般的には `$HOME/Android/Sdk/platform-tools/` で見つけることができます。例:
3. エミュレータの `adb` パス取得
- adb ツールを直接使用できます `$ adbパス devices` 例:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "エミュレータの adb アドレス"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
- 他のエミュレータを使用する場合は、最初に `adb` をダウンロードして: `$ sudo apt install adb` 次に、パスを入力するか、 `PATH` 環境変数を使用して `adb` を直接入力します
- 返される `emulator-5554` はエミュレータのadbアドレスで、 `127.0.0.1:5555` を上書きします、例:
3. エミュレータの `adb` パス取得
- adb ツールを直接使用できます: `$ adbパス devices` ,例:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
4. この時点で、 `$ python3 sample.py` をテストでき、 `接続成功` が返されれば、基本的に成功です
- 返される `emulator-5554` はエミュレータのadbアドレスで、 `127.0.0.1:5555` を上書きします、例:
3. タスク構成
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
カスタムタスク:必要に応じて [統合ドキュメント](../../protocol/integration.md) を参照し、`sample.py` の [`# タスクとパラメーターについては docs/integration.md 参照`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) 欄を変更します
4. この時点で、 `$ python3 sample.py` をテストでき、 `接続成功` が返されれば、基本的に成功です
#### タスク構成
カスタムタスク:必要に応じて [統合ドキュメント](../../protocol/integration.md) を参照し、`sample.py` の [`# タスクとパラメーターについては docs/integration.md 参照`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) 欄を変更します
::::
## エミュレータのサポート
@@ -121,6 +127,8 @@ MAA Wine Bridge で生成された `MaaDesktopIntegration.so` を `MAA.exe` と
推奨構成: x86_64 のフレームワーク (R - 30 - x86_64 - Android 11.0) と MAA のLinux x64 ダイナミック ライブラリ
[スクリーンショット強化モード](../connection.md#avd-スクリーンショット強化モード)の追加サポートもあります。
- Android 10 以降、SELinux が `Enforcing` モードの場合、Minitouch は使用できません、別のタッチモードに切り替えてください。または SELinux を **一時的に** `Permissive` モードに切り替え。
### ⚠️ [Genymotion](https://www.genymotion.com/)
@@ -146,10 +154,6 @@ waydroid prop set persist.waydroid.height 720
adb の IP アドレスを設定する: `設定` - `バージョン情報` - `IPアドレス` を開き、最初の `IP` を記録するし、`sample.py` の adb IP に `${記録したIP}:5555` を入力する。
amdgpu を使用すると、`screencap` コマンドが stderr に情報を出力し、画像のデコードに失敗することがあります。
`adb exec-out screencap | xxd | head` と入力し、出力に `/vendor/etc/hwdata/amdgpu.ids: No such file...` のようなテキストがあるかどうかを確認して、これを確認します。
`resource/config.json` のスクリーンショットコマンドを `adb exec-out screencap` から `adb exec-out 'screencap 2>/dev/null'` に変更してみてください。
### ✅ [redroid](https://github.com/remote-android/redroid-doc)
Android 11 バージョンのイメージは正常に動作し、5555 adb ポートを公開する必要があります。

View File

@@ -17,6 +17,8 @@ icon: basil:apple-solid
注: `macOS` の仕組みにより、ゲームウィンドウを最小化したり、ステージマネージャーで別のウィンドウに切り替えたり、ウィンドウを別のデスクトップ/画面に移動したりすると、スクリーンショットに問題が発生し、正しく実行されなくなります。 👉🏻️ [issue](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512) を参照
::: steps
0. 要件: MAA バージョン v4.13.0-rc.1 以降
1. [PlayCover のフォークバージョン](https://github.com/hguandl/PlayCover/releases) をダウンロードしてインストールします。
@@ -33,13 +35,17 @@ icon: basil:apple-solid
7. ステップ 3-5 は一度だけ行う必要があり、その後はアークナイツをアクティブにするだけで済みます。アークナイツのクライアントを更新するたびに、手順2を再度実行する必要があります。
:::
### ✅ [MuMu エミューレータ Pro](https://mumu.163.com/mac/)
サポートされています、ただしテストは少なく、 `MacPlayTools` 以外のタッチモードが必要です。 関連する問題 [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)
### ✅ [AVD](https://developer.android.com/studio/run/managing-avds)
サポートされています。Android 10 以降、SELinux が\`Enforcing\`モードの場合、Minitouch は使用できません、別のタッチモードに切り替えてください。または SELinux を **一時的に** \`Permissive\`モードに切り替え
サポートされています。[スクリーンショット強化モード](../connection.md#avd-スクリーンショット強化モード)の追加サポートもあります
Android 10 以降、SELinux が `Enforcing` モードの場合、Minitouch は使用できません、別のタッチモードに切り替えてください。または SELinux を **一時的に** `Permissive` モードに切り替え。
### ✅ [BlueStacks Air](https://www.bluestacks.com/mac) 無料、Apple Mシリーズチップ向けに最適化されたバージョン
@@ -69,4 +75,4 @@ Mac 版の開発は人手不足のため、更新速度が比較的遅いです
### ✅ [AVD](https://developer.android.com/studio/run/managing-avds)
サポートされています。
サポートされています。[スクリーンショット強化モード](../connection.md#avd-スクリーンショット強化モード)の追加サポートもあります。

View File

@@ -25,12 +25,12 @@ const fullySupport = [
{
name: 'MuMu Player',
link: 'https://www.mumuplayer.com/',
note: 'サポートされています、[スクリーンショット強化モード](../connection.html#MuMu スクリーンショット強化モード)の追加サポートもあ。 Hyper-Vとの互換性が確認されています。\n\n- “完了後にエミュレータを終了する”機能に異常が発生する場合がありますので、その場合はMuMu公式までご連絡ください。\n- 複数のインスタンスを開くには、MuMu Multiple OpenerのADBボタンから対応するインスタンスのポート情報を確認し、MAA設定-接続設定の接続アドレスのポート番号を対応するポートに変更する必要があります。\n- `ビデオメモリ使用ポリシー``リソース使用量が少ない`に設定しないでください。',
note: 'サポートされています、[スクリーンショット強化モード](../connection.html#MuMu スクリーンショット強化モード)の追加サポートもあります。 Hyper-Vとの互換性が確認されています。\n\n- “完了後にエミュレータを終了する”機能に異常が発生する場合がありますので、その場合はMuMu公式までご連絡ください。\n- 複数のインスタンスを開くには、MuMu Multiple OpenerのADBボタンから対応するインスタンスのポート情報を確認し、MAA設定-接続設定の接続アドレスのポート番号を対応するポートに変更する必要があります。\n- `ビデオメモリ使用ポリシー``リソース使用量が少ない`に設定しないでください。',
},
{
name: 'LDPlayer',
link: 'https://www.ldplayer.net/',
note: 'サポートされています、[スクリーンショット強化モード](../connection.html#LDPlayer スクリーンショット強化モード)の追加サポートもあ。 Hyper-Vとの互換性が確認されています。\n\n- LDPlayer 9のインストーラーは、インストールプロセス中に自動的にHyper-Vをサイレントで無効にしますので、必要な場合は注意してください。',
note: 'サポートされています、[スクリーンショット強化モード](../connection.html#LDPlayer スクリーンショット強化モード)の追加サポートもあります。 Hyper-Vとの互換性が確認されています。\n\n- LDPlayer 9のインストーラーは、インストールプロセス中に自動的にHyper-Vをサイレントで無効にしますので、必要な場合は注意してください。',
},
]),
// keep internal sorting for bluestacks.
@@ -40,6 +40,11 @@ const fullySupport = [
note: 'サポートされています。エミュレーターの `設定` - `上位設定``Android Debug Bridge`をONにする必要があります。\n\n- ネットワーク環境が悪い場合は [オフラインパッケージ](https://support.bluestacks.com/hc/zh-tw/articles/4402611273485-BlueStacks-5-%E9%9B%A2%E7%B7%9A%E5%AE%89%E8%A3%9D%E7%A8%8B%E5%BC%8F)をダウンロードしてください。\n- adbポート番号が不規則に変化し続け、起動するたびに同じでない場合は、お使いのコンピュータが [Hyper-V](https://support.bluestacks.com/hc/ja/articles/4415238471053-BlueStacks-5-Hyper-V%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8BWindows-10%E3%81%A8Windows-11%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%A6%81%E4%BB%B6)を有効にしている可能性があります,\nこのような状況に対して、MAAはポート番号を自動的に取得する小さなバックドアを提供しています。この機能がは動作しません/複数のエミュレータが必要/複数のエミュレータコアがインストールされているの場合は [よくある質問](../よくある質問.html#blue-stackエミュレータが起動するたびにポート番号が異なるhyper-v) を参照して変更してください。Hyper-V は管理者として実行されるため、エミュレーターの自動シャットダウンや接続の自動検出など、adb を伴わない操作でも MAA を管理者として実行する必要があります。',
},
...shuffleArray([
{
name: 'テンセントアプリストア',
link: 'https://sj.qq.com/',
note: 'バージョン 5.10.56.xx 以降をサポートしています。`設定` - `接続設定` で `テンセントアプリストア` 接続設定を選択してください。Hyper-V との互換性が確認されています。\n\n- ADB ポートは `127.0.0.1:5555` です。\n- ADB パス例:`C:\\Program Files\\Tencent\\Androws\\Application\\バージョン番号\\adb.exe`。\n\n- 事前にアプリストアで [ADB デバッグを有効化](https://sj.qq.com/faq/3878) する必要があります。',
},
{
name: 'NOX',
link: 'https://www.yeshen.com/',
@@ -67,7 +72,7 @@ const partiallySupport = shuffleArray([
{
name: 'AVD',
link: 'https://developer.android.com/studio/run/managing-avds',
note: '理論的なサポートされています。\n\n- Android 10 以降、SELinux が`Enforcing`モードの場合、Minitouch は使用できません、別のタッチモードに切り替えてください。または SELinux を **一時的に** `Permissive`モードに切り替え。\n- AVD はデバッグ用に構築されており、ゲーム用に設計された他のエミュレーターを使用することをおすすめします。',
note: '理論的なサポートされています。\n\n- [スクリーンショット強化モード](../connection.html#avd-スクリーンショット強化モード)の追加サポートもあります。\n- Android 10 以降、SELinux が`Enforcing`モードの場合、Minitouch は使用できません、別のタッチモードに切り替えてください。または SELinux を **一時的に** `Permissive`モードに切り替え。\n- AVD はデバッグ用に構築されており、ゲーム用に設計された他のエミュレーターを使用することをおすすめします。',
},
{
name: 'Google Play ゲーム(開発者)',

View File

@@ -1,5 +1,5 @@
---
order: 2
order: 3
icon: ph:question-fill
---

View File

@@ -0,0 +1,93 @@
---
order: 2
icon: material-symbols:download-2-rounded
---
<!-- markdownlint-disable MD024 -->
# ダウンロードとインストール
::: tip
これは MAA GUI のダウンロードとインストールに関するドキュメントです。maa-cli のダウンロードとインストールについては、[インストールとコンパイル](./cli/install.md)を参照してください。現在、Android版「MAA-MeowMAA 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を確認して対応するパッケージをダウンロードしてください。
::: tip
[Mirrorちゃん](https://mirrorchyan.com/zh/projects?rid=MAA&source=maadocs-install)は独立したサードパーティのダウンロードアクセラレーションサービスであり、MAA の有料サービスではありません。その運営コストはサブスクリプション収入で賄われ、収益の一部はプロジェクト開発者に還元されます。高速ダウンロードを楽しみながらプロジェクトの継続的な開発を支援するために、CDK の購読をご検討ください。
:::
### Windows パッケージマネージャーWingetを使用したインストール
::: tip
この方法は Windows ユーザーのみ利用可能です。
:::
ターミナルで以下のコマンドを実行してください:
```bash
winget install maa
```
この方法でインストールした場合、デフォルトのインストールパスは `C:\Users\ユーザー名\AppData\Local\Microsoft\WinGet\Packages` です。
### QQ グループファイルから最新のMAAパッケージをダウンロード
1. [MAA 公式 QQ グループ](https://api.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)に参加してください。
2. グループファイル内で最新の MAA パッケージをダウンロードしてください。
### [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)を参照してください。
## MAA のインストール
### Windows
ダウンロードが完了すると、`.zip`ファイルが取得できます。解凍ソフトで完全に解凍すると、MAAのすべてのファイルを含むフォルダが作成されます。
::: warning
1. `C:\``C:\Program Files\` など UAC 権限が必要なパスに MAA を解凍しないでください。
2. MAA には .NET ランタイムが内蔵されています自己完結型デプロイ。ただし、Visual C++ Redistributable x64VCRedist x64が必要です。解凍したMAAディレクトリ内で、管理者権限で `DependencySetup_依赖库安装.bat` を実行し、この依存関係をインストールしてください。インストール完了後、`MAA.exe` を実行してください。
詳細は[よくある質問](./faq.md)のトップを参照してください。
:::
`MAA.exe`をダブルクリックすると、MAAが起動します。
::: tip
Windows パッケージマネージャーWingetを使用してインストールした場合、解凍やランタイムのインストールなどの追加操作なしで、コマンドラインに `maa` と入力するだけで MAA を起動できます。ただし、PATHに `maa-cli` が存在する場合、それらを区別するために追加の手順が必要になることがあります。
:::
### macOS
ダウンロードが完了すると、`.dmg`ファイルが取得できます。その `.dmg` をダブルクリックして開き、`MAA.app``/Applications` にドラッグしてインストールを完了します。
## 次のステップ
インストールが完了したら、[初心者向けガイド](./newbie.md)に戻って設定を続行するか、[機能紹介](./introduction/)で MAA がサポートするさまざまな機能を確認してください。インストール中に問題が発生した場合は、[よくある質問](./faq.md)を参照して解決を試みてください。

View File

@@ -40,7 +40,7 @@ icon: hugeicons:brain-02
画面は、右上にステージ名と残り理性、右下に自動指揮と作戦開始が表示されるステージ詳細に留めてください。
- この画面にいない場合、`現在/前回` は端末ホーム右下の「前回作戦」のステージへ自動で入ります。
- `作戦``高度な設定``ステージ名を入力する` を有効にし、手動でステージ番号を入力することもできます。現在ナビ可能なステージは以下の通りです:
- すべてのメインステージ。末尾に `-NORMAL` または `-HARD` を付けて標準/磨難を切り替え可能。
- すべてのメインステージ。末尾に `-NORMAL` または `-HARD` を付けて難易度を切り替え可能10〜14章は標準/厄難、15章以降は通常/険地)
- 龍門幣・作戦記録の 5 / 6 ステージ。ただし `CE-6` / `LS-6` を入力してください。6 が連戦不可の場合、自動で 5 に切り替えます。
- アーツ学・購買資格証・炭素材の第 5 ステージ。`CA-5` / `AP-5` / `SK-5` を入力してください。
- すべてのSoCステージ。`PR-A-1` のように完全な番号を入力してください。

View File

@@ -12,7 +12,7 @@ icon: ic:baseline-article
- ステージ選択に必要なステージがない場合ならば、MAAで `現在/前回` を選択し、ゲーム内で手動でステージを選択し、**任務開始**と**自動指揮**がゲーム画面に存在することを確認してください。
- 現在この画面が表示されていない場合、 `現在/前回` は自動的に端末のホームページの右下隅にある「前回の参加作戦へ」ステージに入ります。
- `タスク設定` - `作戦` - `高度な設定``ステージ名を入力する` を有効にすることで、ステージ番号を手動で入力することもできます。 現在サポートされているナビゲーションステージは以下の通りです:
- すべてのメインストーリーステージ。通常または厄難奮戦に切り替えるには、ステージ末尾に `-NORMAL` または `-HARD`追加します
- すべてのメインストーリーステージ。ステージ末尾に `-NORMAL` または `-HARD`付けて難易度を切り替え可能10〜14章は標準/厄難、15章以降は通常/険地)
- 龍門幣、作戦記録の5/6ステージ。ただし、 `CE-6` / `LS-6` を入力する必要があります。6ステージを実行できない場合は、自動的に5ステージに移行します。
- アーツ学、購買資格証、建築資材。 `CA-5` / `AP-5` / `SK-5` を入力する必要があります。
- SoCの場合のみ、完全なステージ番号を入力する必要があります。例 `PR-A-1`

Some files were not shown because too many files have changed in this diff Show More