Skip to content

fix(maafw): 修复预下载后任务重试和停止时报错 - #1969

Merged
jinghero merged 1 commit into
AUTO-MAS-Project:devfrom
jinghero:fix/maafw-prefetch-cleanup
Nov 13, 2026
Merged

jinghero merged 1 commit into
AUTO-MAS-Project:devfrom
jinghero:fix/maafw-prefetch-cleanup

Conversation

@jinghero

Copy link
Copy Markdown
Contributor

摘要

  • 修复队列预下载 MFW 后,当前任务重试、停止或更新设置变化时报错的问题,共用管理器的 M9A、MSS 同时修复。
  • 补齐预下载清理,只丢弃本次候选和标记,保留共享下载缓存,回调仍由现有会话关闭;沿用现有脚本运行结果遥测。
  • 增加真实管理器回归,覆盖关闭自动更新时的清理,以及丢弃候选后重新检查版本和保留缓存。

问题记录:Sentry AUTO-MAS-BACKEND-18H。

测试与验证

  • 环境与提交:Windows、Python 3.12.13,开发环境且遥测关闭;提交 5e5b22f8712c799ec3bca9ec23a0333164476c22。
  • uv run --no-sync python -m pytest tests/task/test_maafw_prefetch.py tests/core/test_script_update_session.py tests/core/test_script_update_queue.py -q -p no:cacheprovider --tb=short:49 passed。新增的四个场景在修复前均因缺少清理方法失败,修复后通过;临时将清理方法替换为空实现时,回归也会发现旧候选被错误安装。
  • 修改文件的 Ruff 检查、格式检查、git diff --check 和更新日志校验通过。回归测试随 PR 保留在 tests/task/test_maafw_prefetch.py。
  • 全量 uv run --no-sync python -m pytest tests -q -p no:cacheprovider --tb=short 未完成:约 71% 时停在 MaaEnd 安装用例后的 pytest 收尾。单独运行该用例同样在 shutdown_default_executor → Thread.start 阻塞,已记录堆栈并请求终止,未计为全量通过。
  • 尚无真实账号、游戏或模拟器的 @real 证据。作者本机可从 frontend/ 运行 yarn e2e:real:all --only MaaConfig,MaaFWConfig,生成截图、HTML 报告和 real-e2e-summary.json,验证两个专项的独立运行;本次跨脚本问题还需在同一队列复核 MAA 重试时对下一项 MFW 的预下载清理。

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-13T04:48:16.234134Z 5e5b22f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added 专项: MaaFW 类型: 修复 按更新日志碎片自动设置 labels Nov 13, 2026

Copy link
Copy Markdown
Contributor Author

总体结论:可以合并

AUTO-MAS-Project/AUTO-MAS #1969

宝宝,这次补的是预下载清理链上真正缺的入口,没有另造一套取消或缓存管理,修得很克制喵。dot酱核对了调用链,审查范围内没有必须修改项。

公共 ScriptUpdateSession 负责等待下载结束、撤销预下载结果和关闭回调;MaaFW 管理器只清掉自己保存的更新候选、来源身份与整包标记。重试、停止和更新策略变化原本都会调用缺失的方法,现在能继续走完已有清理;M9A、MSS 通过同一个管理器也能得到这项修复。

保留共享下载包不等于继续使用旧版本判断,这里分得清楚啦:丢弃后运行前会重新发现版本,下载缓存仍由核心按资产标识及校验结果管理。新回归用了真实管理器和会话,检查锁释放、进度清除、回调关闭,还验证重复清理不删缓存、发行版撤回后不再安装旧候选,这些断言能直接守住这次修复。

dot酱读取了实际 CI 日志:Windows 全量测试 2023 passed、1 skipped,Ubuntu 1980 passed、43 skipped,两边各有 17 个子测试通过。以上是已有 CI 结果;本次独立审查只静态读取源码,没有执行项目代码、测试或真实账号/游戏流程。原有运行结果遥测继续承担结果记录,不需要为清空三个字段另加事件喵。

—— dot酱敬上 🐾

@jinghero
jinghero merged commit 52d0fe1 into AUTO-MAS-Project:dev Nov 13, 2026
9 checks passed
jinghero added a commit that referenced this pull request Nov 13, 2026
修复队列预下载 MFW 后任务重试、停止或更新策略变化时报错的问题,清除本次候选并保留共享下载缓存。

补充真实管理器回归,验证清理后重新检查版本、关闭回调并保留缓存。

(cherry picked from commit 52d0fe1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

专项: MaaFW 类型: 修复 按更新日志碎片自动设置

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant