Repository navigation
Conversation
总体结论:修改后合并宝宝,先核对 UID 再放行日常任务,这层保护有接上喵。不过拆成两次 worker 执行后,原来的任务编号和 ADB 路径没有一起传过去,会让原本能继续的流程中断,下面两处先补好。 [逻辑 · P2] 拆段后,普通任务被当成了整轮首任务以原计划 同一编号变化还会弄错历史:宿主按完整计划预建记录,第二段事件却从 0 开始;记录器按编号和名称匹配,于是追加新的 A/B/Close1999,原条目仍是“跳过”。拼接 请让分段执行保留完整计划的位置和首任务语义,事件也使用一致编号,不要直接删掉引擎原有的首任务保护。补一个 A 超时后 B 仍执行、历史每项只有一条正确状态的场景就很有针对性啦;当前新增测试替换了整个 [逻辑 · P2] UID 检查没有拿到登录时发现的 ADB 路径未手填 ADB 路径、宿主也无法从模拟器配置推导时,现有登录钩子会用 Toolkit 按地址发现路径,但只更新局部变量; 接着 UID 核验收到空路径,截图设备便退回运行 这里复用登录阶段已解析的路径就好喵,让登录、StartUp 和 UID 检查拿到同一个结果;把已有 Toolkit 路径测试延伸到 UID 检查,别让它在交接时丢掉。 以上是源码静态推演,未运行项目测试或真实 B 服流程。 —— 盯着任务交接不放的 dot酱敬上 🐾 |
AthenaHibou
left a comment
There was a problem hiding this comment.
功能实现我没侧,但是看代码逻辑这两个部分有较为明显的问题,建议处理一下
| def _account_matches(text: str, account: str) -> bool: | ||
| """兼容实机 OCR 将昵称中的「ゞ」读成「>」;仍需唯一匹配并核对游戏 UID。""" | ||
|
|
||
| return text.replace("ゞ", ">") == account.replace("ゞ", ">") | ||
|
|
||
|
|
There was a problem hiding this comment.
这一部分的代码怎么感觉像面向结果的开发,不具有泛用性,且会直接影响本机测试的结果,属于对本机测试的特调型代码,建议去掉
There was a problem hiding this comment.
这里去掉了,修改为采用两种OCR识别,中文采用去掉其他种类文字识别,纯英文与数字采用一种OCR识别。
| description="B 服登录方式。Project:由 M9A 项目的启动任务自己登录(上游「切换账号」仍只声明官服);" | ||
| "Mas:由 MAS 完成 B 服登录——拉起 B 服客户端后处理隐私政策提示、在登录记录里选择已保存的账号," | ||
| "回到标题页后再交给 M9A 的启动任务进游戏并照常运行。Mas 需要 ADB controller 并在「游戏包名」里" | ||
| "进入游戏并核对账号配置中的 UID 后再交给 M9A 运行。Mas 需要 ADB controller 并在「游戏包名」里" |
There was a problem hiding this comment.
此处的设计是否意味着,账号切换需要与M9A功能完成,即mas侧ocr做了一半,再丢给m9a做一部分,再返还给mas继续做,代码不内聚,建议把整个启动流程的操作都收敛到mas里后在交付给m9a
|
几处要改:
小问题:
另外格式检查是红的,跑一下 |
|
本轮审查意见已处理,修订在 dd6b9a3。
本地 60 项回归测试通过,Ruff 格式、Vue 类型和多语言检查通过。B 服实机验证了本次涉及的核心功能,测试提前结束,后续任务没有完整跑完。 |
总体结论:修改后合并宝宝,单 worker、统一 ADB 路径和首项任务的超时处理都补好了,上一轮两处 P2 可以划掉啦。不过把进入游戏也移到登录阶段后,还漏了 START 到可核验主页这一段。 [逻辑 · P2] 点击 START 后只等 UID,正常加载和启动弹窗会被判成登录失败login.py:595–601 点击 START 就返回,随后立即核验 UID。这段核验固定只等 20 秒,而且只截图读 UID,不会关闭签到、公告等启动弹窗。 原来先由 StartUp 完成进游戏,再核验 UID;现在 MAS 模式不再加入 StartUp,但它原有的加载、签到和弹窗处理没有一并承接。上游 StartGame 的后续节点明确覆盖这些情况,B 服资源也沿用该流程。 静态推演:选号成功后,若 25 秒才进入主页,或弹窗遮住 UID,新代码会在启动 worker 前报“未能确认游戏内 UID”,日常任务无法开始。外层 240 秒和 请在 M9A 登录流程中补齐“进入可核验主页”的阶段,复用适用的上游启动能力或明确处理对应画面,再做连续两帧 UID 校验;只加长 UID 轮询还解决不了弹窗。补上 START 后延迟 25 秒才出现正确 UID、以及签到/公告关闭后再核验的回归场景,错误 UID 仍须阻止任务执行。以上未运行项目测试或实机复现。 —— 还在等主页真正就绪的 dot酱敬上 🐾 |
使用同一 worker 运行公开 StartUp,宿主在剩余登录时限内 连续两次核对新截图后放行。统一 ADB 路径并保留日常任务超时行为。 验证:M9A 登录模式、登录流程、MaaFW 核心及运行记录回归 共 63 项通过;新增 worker 应答测试后,MaaFW 核心 13 项通过。 全仓 Ruff 格式检查通过。 实机:本次改动的 B 服 START 页接续、签到或公告处理和 UID 放行待验证;官服项目登录与首项日常任务执行待验证。
总体结论:可以合并宝宝,这版把进入游戏和启动弹窗交回公开 dot酱复核了启动交接、失败重试、取消清理及相关回归用例,没有发现新的必须修改项。这里是静态审查,未运行测试或实机流程;新增用例模拟了慢加载和弹窗,不能代替真实 B 服验证。 当前红色检查来自目标分支已有的 —— 把启动与账号交接核对清楚的 dot酱敬上 🐾 |
|
补充组件尺寸检查结果。使用 GitHub 上 PR #1978 的合并快照(PR 提交
原 CI 作业检查了同一合并快照,但使用旧基线 |
总体结论:无法判定宝宝,这次明确改成“按昵称唯一选号,不再二次核对 UID”,dot酱按这个取舍复审,没有发现新的必须修改项喵。主页会先退出再选号;公开 不过最新目标分支与这版已有合并冲突,整合后的结果还不能判定。重叠在 这是静态复审,未运行测试或实机流程。正文已说明实机反馈的范围,dot酱不会把“可以运行”扩大成完整日常验证。 —— 把选号与启动交接守清楚的 dot酱敬上 🐾 |
摘要
StartUp,成功后执行日常;保留统一 ADB 路径、启动失败阻断、首项日常超时处理和历史记录。验证
8f289ae。pytest tests/task/test_m9a_login_flow.py tests/task/test_m9a_login_mode.py tests/task/test_maafw_core.py tests/task/test_maafw_run_record.py -q:60 passed。覆盖无需 UID 选号、昵称歧义拒绝、主页退出重选、启动失败阻止日常、统一 ADB,以及首项日常超时后继续且历史不重复。git diff --check均通过。删除 UID 后不再进行游戏内账号身份的二次核对;选号依赖昵称唯一匹配。