Skip to content

Merge:'chore/FrameVer2.11.5'| 框架更新至5.9.2,有较大改动#235

Merged
sunyink merged 13 commits intomainfrom
chore/FrameVer
Mar 25, 2026
Merged

Merge:'chore/FrameVer2.11.5'| 框架更新至5.9.2,有较大改动#235
sunyink merged 13 commits intomainfrom
chore/FrameVer

Conversation

@sunyink
Copy link
Copy Markdown
Owner

@sunyink sunyink commented Mar 25, 2026

Summary by Sourcery

更新核心框架版本,并使资源流水线和错误处理与新版本保持一致。

增强功能:

  • 新增全局空值处理和回跳式错误恢复步骤,并将其接入通用重置流程。
  • 将默认流水线配置文件迁移到 assets/resource 下的新路径,并相应调整流水线资源。

构建:

  • 将 MAAFW Python 库版本提升至 5.9.2,并更新回退版本范围。
  • 将 requirements 中的 MFAA 核心资源标签更新为 v2.11.5-beta.1,以匹配新的框架版本。
Original summary in English

Summary by Sourcery

Update core framework version and align resource pipelines and error handling with the new release.

Enhancements:

  • Add new global null-handling and jump-back error recovery steps and wire them into common reset flows.
  • Relocate the default pipeline configuration file to a new path under assets/resource and adjust pipeline resources accordingly.

Build:

  • Bump MAAFW Python library version to 5.9.2 with updated fallback range.
  • Update MFAA core resource tag in requirements to v2.11.5-beta.1 to match the new framework version.

Summary by CodeRabbit

发布说明

  • 新功能

    • 引入全局空异常与应急处理节点,提升统一错误响应能力。
  • 改进

    • 扩展大量流程的错误回退路径,增强故障转移与稳定性。
    • 更新内部运行时包版本至 5.9.2。
  • 配置优化

    • 清理与合并多处空错误定义,移除过时的默认后处理配置以简化流程。

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai bot commented Mar 25, 2026

审阅者指南

将项目更新为使用 MAAFW core 5.9.2 / MFAA v2.11.5-beta.1,并使流水线(pipeline)资源定义与新框架保持一致,包括新增全局错误/空值处理器,以及默认流水线文件的位置调整。

更新后流水线导航中全局错误处理的时序图

sequenceDiagram
    participant Engine as PipelineEngine
    participant Start as Global_ToHomePage_Start
    participant Reset as Global_ToHomePage_Reset
    participant SeasonSet as JumpBack_StartGame_SeasonSet
    participant Special as JumpBack_StartGame_Special
    participant PVPSet as JumpBack_StartGame_PVPSet
    participant PVPError as JumpBack_PVP_PerOperationsMain_Error
    participant NullEx as Global_Null_Exception
    participant NullPanic as Global_Null_Panic

    Engine->>Start: invoke with timeout 8000
    note over Start: recognition Or, reset to home page
    Start-->>Engine: success
    Engine->>Reset: invoke with timeout 10000
    alt Reset completes in time
        Reset-->>Engine: success
    else Reset timeout or error
        Engine->>SeasonSet: on_error fallback
        Engine->>Special: on_error fallback
        Engine->>PVPSet: on_error fallback
        Engine->>PVPError: on_error fallback
        alt unexpected null result
            Engine->>NullEx: handle null exception
        else unrecoverable null state
            Engine->>NullPanic: handle null panic
        end
    end
Loading

文件级变更

变更 详情 文件
将框架/core 版本和虚拟环境依赖约束更新为 5.9.2 / v2.11.5-beta.1。
  • 将 DEV_MAAFW_VERSION 常量提升为 5.9.2,使本地 venv 与新的 C++ core 版本保持一致。
  • 调整后备(fallback)MAAFW 版本范围为 >=5.9,<6.1,以符合新的最低 core 版本要求。
  • 在 requirements 中将 MFAA_TAG 注释更新为 v2.11.5-beta.1,以便 CI 获取正确的资源/core 包。
agent/utils/venv_ops.py
requirements.txt
扩展全局流水线错误处理和导航行为,用于返回首页以及处理空值/异常状态。
  • 将 Global_Null_Exception 和 Global_Null_Panic 流水线节点加入 Global_BackToMainPage 列表,以集成新的空值/异常处理流程。
  • 为 Global_ToHomePage_Start 增加 8000 ms 超时时间,并添加 on_error 序列,回退到多个 StartGame 和 PVP 错误处理节点以及新的空值处理节点。
  • 扩展另一个全局重置步骤的 on_error 列表,加入相同的 StartGame/PVP 以及空值处理节点,扩大其恢复路径。
assets/resource/pipeline/Global.json
根据新 core 的预期重新对齐流水线资源布局,包括默认流水线位置调整以及对多个功能流水线的更新。
  • 用新的 assets/resource/default_pipeline.json 替换旧的 assets/resource/pipeline/default_pipeline.json,将默认流水线定义从 pipeline 子目录中移出。
  • 更新或重新生成多个流水线 JSON(例如 Arbitrage,Battle,Collect*,Daily,Dummy,EventBattle,GACHA*,Mail,PVP,QuestList,Redemption,Setup),以匹配 5.9.2 框架的 schema/行为。
assets/resource/pipeline/Arbitrage.json
assets/resource/pipeline/Battle.json
assets/resource/pipeline/Collect_Launcher.json
assets/resource/pipeline/Collect_Navigation.json
assets/resource/pipeline/Collect_TeleportRecall.json
assets/resource/pipeline/Collect_skills.json
assets/resource/pipeline/Daily.json
assets/resource/pipeline/Dummy.json
assets/resource/pipeline/EventBattle.json
assets/resource/pipeline/GACHA.json
assets/resource/pipeline/GACHA_ADV.json
assets/resource/pipeline/Mail.json
assets/resource/pipeline/PVP.json
assets/resource/pipeline/QuestList.json
assets/resource/pipeline/Redemption.json
assets/resource/pipeline/Setup.json
assets/resource/default_pipeline.json
assets/resource/pipeline/default_pipeline.json

提示与命令

与 Sourcery 交互

  • 触发新的审阅: 在 Pull Request 中评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审阅评论。
  • 从审阅评论生成 GitHub issue: 在某条审阅评论下回复,请 Sourcery 根据该评论创建 issue。你也可以直接回复 @sourcery-ai issue,由此创建对应的 issue。
  • 生成 Pull Request 标题: 在 Pull Request 标题的任意位置写上 @sourcery-ai,即可随时生成标题。你也可以在 Pull Request 中评论 @sourcery-ai title 来(重新)生成标题。
  • 生成 Pull Request 摘要: 在 Pull Request 正文任意位置写上 @sourcery-ai summary,即可在指定位置生成 PR 摘要。你也可以在 Pull Request 中评论 @sourcery-ai summary 来(重新)生成摘要。
  • 生成审阅者指南: 在 Pull Request 中评论 @sourcery-ai guide,即可随时(重新)生成审阅者指南。
  • 解决所有 Sourcery 评论: 在 Pull Request 中评论 @sourcery-ai resolve,即可将所有 Sourcery 评论标记为已解决。如果你已经处理完所有评论且不想再看到它们,这会很有用。
  • 忽略所有 Sourcery 审阅: 在 Pull Request 中评论 @sourcery-ai dismiss,即可忽略所有现有的 Sourcery 审阅。若你希望从头开始一次新的审阅,这尤其有用——别忘了再评论 @sourcery-ai review 来触发新审阅!

自定义你的体验

访问你的 dashboard 以:

  • 启用或停用审阅功能,例如 Sourcery 自动生成的 Pull Request 摘要、审阅者指南等。
  • 更改审阅语言。
  • 添加、移除或编辑自定义审阅说明。
  • 调整其他审阅设置。

获取帮助

Original review guide in English

Reviewer's Guide

Updates the project to use MAAFW core 5.9.2 / MFAA v2.11.5-beta.1 and aligns pipeline resource definitions with the new framework, including new global error/null handlers and a relocation of the default pipeline file.

Sequence diagram for updated global error handling in pipeline navigation

sequenceDiagram
    participant Engine as PipelineEngine
    participant Start as Global_ToHomePage_Start
    participant Reset as Global_ToHomePage_Reset
    participant SeasonSet as JumpBack_StartGame_SeasonSet
    participant Special as JumpBack_StartGame_Special
    participant PVPSet as JumpBack_StartGame_PVPSet
    participant PVPError as JumpBack_PVP_PerOperationsMain_Error
    participant NullEx as Global_Null_Exception
    participant NullPanic as Global_Null_Panic

    Engine->>Start: invoke with timeout 8000
    note over Start: recognition Or, reset to home page
    Start-->>Engine: success
    Engine->>Reset: invoke with timeout 10000
    alt Reset completes in time
        Reset-->>Engine: success
    else Reset timeout or error
        Engine->>SeasonSet: on_error fallback
        Engine->>Special: on_error fallback
        Engine->>PVPSet: on_error fallback
        Engine->>PVPError: on_error fallback
        alt unexpected null result
            Engine->>NullEx: handle null exception
        else unrecoverable null state
            Engine->>NullPanic: handle null panic
        end
    end
Loading

File-Level Changes

Change Details Files
Update framework/core versions and virtualenv dependency constraints to 5.9.2 / v2.11.5-beta.1.
  • Bump DEV_MAAFW_VERSION constant to 5.9.2 so local venv matches the new C++ core version.
  • Adjust fallback MAAFW version spec range to >=5.9,<6.1 to align with the new minimum core version.
  • Update MFAA_TAG comment in requirements to v2.11.5-beta.1 so CI pulls the correct resource/core package.
agent/utils/venv_ops.py
requirements.txt
Extend global pipeline error handling and navigation behaviors for returning to the home page and handling null/exception states.
  • Add Global_Null_Exception and Global_Null_Panic pipeline nodes to the Global_BackToMainPage list to integrate new null/exception handling flows.
  • Augment Global_ToHomePage_Start with an 8000 ms timeout and an on_error sequence that jumps back to various StartGame and PVP error handlers plus the new null handlers.
  • Extend another Global reset step’s on_error list to include the same StartGame/PVP and null handler nodes, broadening its recovery paths.
assets/resource/pipeline/Global.json
Realign pipeline resource layout with new core expectations, including default pipeline relocation and updates to multiple feature pipelines.
  • Replace the old assets/resource/pipeline/default_pipeline.json with a new assets/resource/default_pipeline.json, moving the default pipeline definition out of the pipeline subfolder.
  • Update or regenerate multiple pipeline JSONs (e.g., Arbitrage, Battle, Collect*, Daily, Dummy, EventBattle, GACHA*, Mail, PVP, QuestList, Redemption, Setup) to match the 5.9.2 framework’s schema/behaviors.
assets/resource/pipeline/Arbitrage.json
assets/resource/pipeline/Battle.json
assets/resource/pipeline/Collect_Launcher.json
assets/resource/pipeline/Collect_Navigation.json
assets/resource/pipeline/Collect_TeleportRecall.json
assets/resource/pipeline/Collect_skills.json
assets/resource/pipeline/Daily.json
assets/resource/pipeline/Dummy.json
assets/resource/pipeline/EventBattle.json
assets/resource/pipeline/GACHA.json
assets/resource/pipeline/GACHA_ADV.json
assets/resource/pipeline/Mail.json
assets/resource/pipeline/PVP.json
assets/resource/pipeline/QuestList.json
assets/resource/pipeline/Redemption.json
assets/resource/pipeline/Setup.json
assets/resource/default_pipeline.json
assets/resource/pipeline/default_pipeline.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 25, 2026

📝 Walkthrough

Walkthrough

此PR将 MAAFW 目标版本从 5.8.1 升级为 5.9.2,调整回退版本范围,并在大量 pipeline 配置节点中新增或引用全局错误处理节点(Global_Null / Global_Null_Exception / Global_Null_Panic),同时移除若干显式空 on_error 声明及删除默认 pipeline 的 post_wait_freezes 配置。

Changes

Cohort / File(s) Summary
版本管理更新
agent/utils/venv_ops.py
DEV_MAAFW_VERSION5.8.1 更新为 5.9.2;将 FALLBACK_MAAFW_SPEC">=5.7,<5.9" 改为 ">=5.9,<6.1"
新增全局错误节点
assets/resource/pipeline/Dummy.json
新增三个节点:Global_Null(无操作占位)、Global_Null_Exception(截图/记录,不停止任务)、Global_Null_Panic(停止 App、重启流程)。
大规模 on_error 扩展(多文件)
assets/resource/pipeline/Arbitrage.json, assets/resource/pipeline/Battle.json, assets/resource/pipeline/Collect_Launcher.json, assets/resource/pipeline/Collect_Navigation.json, assets/resource/pipeline/Collect_TeleportRecall.json, assets/resource/pipeline/Collect_skills.json, assets/resource/pipeline/Daily.json, assets/resource/pipeline/EventBattle.json, assets/resource/pipeline/GACHA.json, assets/resource/pipeline/GACHA_ADV.json, assets/resource/pipeline/Global.json, assets/resource/pipeline/Mail.json, assets/resource/pipeline/PVP.json, assets/resource/pipeline/QuestList.json, assets/resource/pipeline/Redemption.json, assets/resource/pipeline/Setup.json
在许多节点的 on_error 数组中追加 "Global_Null_Exception""Global_Null_Panic",并在若干节点移除显式的空 on_error: [] 字段(改为不声明)。
默认 pipeline 清理
assets/resource/pipeline/default_pipeline.json
删除整个 post_wait_freezes 配置对象(移除目标 ID 列表及相关速率/超时设置)。

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 标题清晰地概括了主要变更:将框架更新至5.9.2版本,标题与所有文件中的版本更新和流程配置调整相关联。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/FrameVer

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey,我给了一些高层面的反馈:

  • MAAFW 的回退版本范围(FALLBACK_MAAFW_SPEC = ">=5.9,<6.1")相比之前的模式要宽泛得多,现在跨越了两个次要主版本范围;建议收紧一些(例如 <6.0),以避免在未来无意间拉取到不兼容的 6.0+ 版本。
  • 你已经将 default_pipeline.jsonassets/resource/pipeline/default_pipeline.json 移动到了 assets/resource/default_pipeline.json;请再次确认所有加载该文件的代码和配置都已更新到新路径,以避免运行时路径问题。
给 AI 代理的提示
Please address the comments from this code review:

## Overall Comments
- The fallback version range for MAAFW (`FALLBACK_MAAFW_SPEC = ">=5.9,<6.1"`) is much broader than the previous pattern and now spans two major minor ranges; consider tightening this (e.g. `<6.0`) to avoid unintentionally pulling in incompatible future 6.0+ releases.
- You’ve moved `default_pipeline.json` from `assets/resource/pipeline/default_pipeline.json` to `assets/resource/default_pipeline.json`; please double-check that all code and configuration that load this file are updated to the new location to avoid runtime path issues.

Sourcery 对开源项目是免费的——如果你觉得我们的评审有帮助,欢迎分享 ✨
帮我提升质量!请在每条评论上点 👍 或 👎,我会根据这些反馈改进后续的评审。
Original comment in English

Hey - I've left some high level feedback:

  • The fallback version range for MAAFW (FALLBACK_MAAFW_SPEC = ">=5.9,<6.1") is much broader than the previous pattern and now spans two major minor ranges; consider tightening this (e.g. <6.0) to avoid unintentionally pulling in incompatible future 6.0+ releases.
  • You’ve moved default_pipeline.json from assets/resource/pipeline/default_pipeline.json to assets/resource/default_pipeline.json; please double-check that all code and configuration that load this file are updated to the new location to avoid runtime path issues.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The fallback version range for MAAFW (`FALLBACK_MAAFW_SPEC = ">=5.9,<6.1"`) is much broader than the previous pattern and now spans two major minor ranges; consider tightening this (e.g. `<6.0`) to avoid unintentionally pulling in incompatible future 6.0+ releases.
- You’ve moved `default_pipeline.json` from `assets/resource/pipeline/default_pipeline.json` to `assets/resource/default_pipeline.json`; please double-check that all code and configuration that load this file are updated to the new location to avoid runtime path issues.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
assets/resource/pipeline/Battle.json (1)

841-866: ⚠️ Potential issue | 🟡 Minor

doc 注释与实际等待时间不一致。

doc 写的是"这里要等动画,3S",但 post_wait_freezes 实际值为 800(800ms)。请统一这两处:要么将 post_wait_freezes 改为 3000,要么更新 doc 注释以反映实际的 800ms 等待时间。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/resource/pipeline/Battle.json` around lines 841 - 866, The doc string
for the QuickHunt_FastBattleStart node says "这里要等动画,3S" but post_wait_freezes is
800 (ms); update them to match: either change post_wait_freezes to 3000 to
reflect a 3s wait, or edit the doc field to indicate 800ms (e.g., "0.8s" or
"800ms"); ensure you modify the QuickHunt_FastBattleStart object’s
post_wait_freezes or doc accordingly so the comment and actual wait are
consistent.
assets/resource/pipeline/Collect_skills.json (1)

146-153: ⚠️ Potential issue | 🟡 Minor

Collect_Skill_TapReset 缺失 recognition 声明,导致默认 DirectHit 截断后续节点。

该节点虽有 template: ["pin.png"],但没有显式声明 recognition 字段,因此按 DirectHit 处理。根据 MaaFramework PipelineProtocol,on_error 链顺序识别子节点,只执行首个命中的节点,后续节点立即终止。这导致 Global_Null_ExceptionGlobal_Null_Panic 两个兜底节点永远无法执行。

需补充 "recognition": "TemplateMatch" 或其他合适的识别方式,使兜底节点可被正确处理。参考同链中 Collect_Skill3_3_Nothing 的模式(同样有 template,显式声明 TemplateMatch)。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/resource/pipeline/Collect_skills.json` around lines 146 - 153, The
node Collect_Skill_TapReset is missing an explicit recognition field so it
defaults to DirectHit and prevents later on_error nodes (Global_Null_Exception,
Global_Null_Panic) from running; update the Collect_Skill_TapReset entry to
include an explicit recognition (e.g., "recognition": "TemplateMatch")
consistent with Collect_Skill3_3_Nothing so the pipeline treats it as a
template-match node and allows subsequent fallback nodes to be evaluated.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@assets/resource/pipeline/Battle.json`:
- Around line 282-286: 当前 on_error 中的 "Global_Null_Exception" 和
"Global_Null_Panic" 永远不会触发,因为前置恢复节点(例如
QuickHunt_AdventureRouteReBackHuntingGrounds_Pipeline)以默认 DirectHit
顺序优先命中;请修复:在这些前置恢复节点(如 QuickHunt_AdventureRouteReBackHuntingGrounds_Pipeline
及其他出现问题的恢复节点)上设置明确命中上限(max_hit)或添加跳回策略([JumpBack]),或将全局兜底节点移到这些恢复节点的出口(outlet)上以确保在超限/完成后能继续到
Global_Null_Exception/Global_Null_Panic;同样应用此修正到文件中另外提到的重复位置(行段
850-854、973-977、1172-1176 对应的恢复节点)。

In `@assets/resource/pipeline/Collect_Launcher.json`:
- Around line 1590-1593: The on_error for node
Collect_LocatePackFrame_Smart_Swip currently lists "[Anchor]SmartSwipOut" and
"Global_Null" which silently swallows failures; update the on_error array to
mirror the other nodes (Collect_LocatePackFrame_Loc1..Loc7) and standard
patterns (Battle.json/GACHA.json) by replacing "Global_Null" with the escalation
pair "Global_Null_Exception" and "Global_Null_Panic" so failures at
[Anchor]SmartSwipOut will capture a screenshot/log and trigger a restart for
recovery.

In `@assets/resource/pipeline/Setup.json`:
- Around line 360-365: 当前三级兜底被短路:当 Setup_Scan_Error_PreVerdict (max_hit:1)
首次触发后,Setup_Scan_Error_FinVerdict 因没有声明 recognition 而默认 DirectHit 总是匹配并直接走它的
next,导致后续 Global_Null_Exception 和 Global_Null_Panic 无法触达。解决方法:在
Setup_Scan_Error_FinVerdict 上添加对等的限流比如 "max_hit": 1 或合适的次数,或者把其 recognition
改为需要判断的类型(非 DirectHit)以便在不匹配时继续落到 Global_Null_Exception/Global_Null_Panic;同时保持
on_error 列表不变以保留兜底链路。

---

Outside diff comments:
In `@assets/resource/pipeline/Battle.json`:
- Around line 841-866: The doc string for the QuickHunt_FastBattleStart node
says "这里要等动画,3S" but post_wait_freezes is 800 (ms); update them to match: either
change post_wait_freezes to 3000 to reflect a 3s wait, or edit the doc field to
indicate 800ms (e.g., "0.8s" or "800ms"); ensure you modify the
QuickHunt_FastBattleStart object’s post_wait_freezes or doc accordingly so the
comment and actual wait are consistent.

In `@assets/resource/pipeline/Collect_skills.json`:
- Around line 146-153: The node Collect_Skill_TapReset is missing an explicit
recognition field so it defaults to DirectHit and prevents later on_error nodes
(Global_Null_Exception, Global_Null_Panic) from running; update the
Collect_Skill_TapReset entry to include an explicit recognition (e.g.,
"recognition": "TemplateMatch") consistent with Collect_Skill3_3_Nothing so the
pipeline treats it as a template-match node and allows subsequent fallback nodes
to be evaluated.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6700df2c-5b1d-4d0c-8507-9525b7b6df9b

📥 Commits

Reviewing files that changed from the base of the PR and between fbd4fb9 and 450fd7b.

⛔ Files ignored due to path filters (2)
  • assets/resource/default_pipeline.json is excluded by none and included by none
  • requirements.txt is excluded by none and included by none
📒 Files selected for processing (19)
  • agent/utils/venv_ops.py
  • assets/resource/pipeline/Arbitrage.json
  • assets/resource/pipeline/Battle.json
  • assets/resource/pipeline/Collect_Launcher.json
  • assets/resource/pipeline/Collect_Navigation.json
  • assets/resource/pipeline/Collect_TeleportRecall.json
  • assets/resource/pipeline/Collect_skills.json
  • assets/resource/pipeline/Daily.json
  • assets/resource/pipeline/Dummy.json
  • assets/resource/pipeline/EventBattle.json
  • assets/resource/pipeline/GACHA.json
  • assets/resource/pipeline/GACHA_ADV.json
  • assets/resource/pipeline/Global.json
  • assets/resource/pipeline/Mail.json
  • assets/resource/pipeline/PVP.json
  • assets/resource/pipeline/QuestList.json
  • assets/resource/pipeline/Redemption.json
  • assets/resource/pipeline/Setup.json
  • assets/resource/pipeline/default_pipeline.json
💤 Files with no reviewable changes (1)
  • assets/resource/pipeline/default_pipeline.json

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
assets/resource/pipeline/Setup.json (1)

438-442: ⚠️ Potential issue | 🟡 Minor

这四处新增的 Global_Null_* 仍然触达不到。

Setup_Scan_Error_PreVerdict 已经有 max_hit: 1,第一次复位后就会被跳过;而 Setup_Scan_Error_FinVerdict 目前没有声明 recognition,按协议会默认成 DirectHit。这样错误链在第二层就被消费掉,后面追加的 Global_Null_Exception / Global_Null_Panic 实际不会进入。要保留三级兜底的话,建议给 Setup_Scan_Error_FinVerdictmax_hit,或改成可失败的识别节点。 (maafw.com)

Also applies to: 519-523, 600-604, 681-685

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/resource/pipeline/Setup.json` around lines 438 - 442, 当前在多处把
Global_Null_Exception/Global_Null_Panic 追加到 on_error 链,但它们被上层节点消费掉无法到达;定位到
Setup_Scan_Error_PreVerdict 和 Setup_Scan_Error_FinVerdict,解决办法是:为
Setup_Scan_Error_FinVerdict 明确增加 max_hit(例如 1 以支持复位后仍能触达下一层)或者将
Setup_Scan_Error_FinVerdict 的 recognition 改为可失败的类型(非默认 DirectHit),以确保错误链能继续传递到
Global_Null_* 三级兜底;在仓库中所有类似追加 Global_Null_* 的位置(如与本 diff 同类的其他三处)都按此修复。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@assets/resource/pipeline/Arbitrage.json`:
- Around line 2172-2175: 当前 on_error 列表里因为 Arbitrage_Cooking_ERREND 缺少
recognition 会总是被 DirectHit,导致后面的 Global_Null_Exception / Global_Null_Panic
永远不会执行;请在 Arbitrage_Cooking_Hub 的 on_error 处理里要么把 Global_Null_Exception 和
Global_Null_Panic 提前到 on_error 数组前面(保证全局兜底先被评估),要么为 Arbitrage_Cooking_ERREND
增加可失败的识别条件或命中次数限制(例如添加 recognition 字段或 hit_count
限制)以允许后续全局节点命中;定位符:Arbitrage_Cooking_Hub、Arbitrage_Cooking_ERREND、Global_Null_Exception、Global_Null_Panic。

---

Duplicate comments:
In `@assets/resource/pipeline/Setup.json`:
- Around line 438-442: 当前在多处把 Global_Null_Exception/Global_Null_Panic 追加到
on_error 链,但它们被上层节点消费掉无法到达;定位到 Setup_Scan_Error_PreVerdict 和
Setup_Scan_Error_FinVerdict,解决办法是:为 Setup_Scan_Error_FinVerdict 明确增加 max_hit(例如
1 以支持复位后仍能触达下一层)或者将 Setup_Scan_Error_FinVerdict 的 recognition 改为可失败的类型(非默认
DirectHit),以确保错误链能继续传递到 Global_Null_* 三级兜底;在仓库中所有类似追加 Global_Null_* 的位置(如与本 diff
同类的其他三处)都按此修复。

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 93603944-e3ce-4a54-8d03-69e8c7428b1b

📥 Commits

Reviewing files that changed from the base of the PR and between 450fd7b and 7824a22.

⛔ Files ignored due to path filters (1)
  • assets/resource/default_pipeline.json is excluded by none and included by none
📒 Files selected for processing (8)
  • assets/resource/pipeline/Arbitrage.json
  • assets/resource/pipeline/Battle.json
  • assets/resource/pipeline/Collect_Launcher.json
  • assets/resource/pipeline/Collect_Navigation.json
  • assets/resource/pipeline/Daily.json
  • assets/resource/pipeline/Global.json
  • assets/resource/pipeline/PVP.json
  • assets/resource/pipeline/Setup.json
🚧 Files skipped from review as they are similar to previous changes (4)
  • assets/resource/pipeline/PVP.json
  • assets/resource/pipeline/Collect_Launcher.json
  • assets/resource/pipeline/Global.json
  • assets/resource/pipeline/Battle.json

Comment on lines 2172 to +2175
"on_error": [
"Arbitrage_Cooking_ERREND"
"Arbitrage_Cooking_ERREND",
"Global_Null_Exception",
"Global_Null_Panic"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

这里追加的两个全局兜底同样是死分支。

Arbitrage_Cooking_Hub 一旦走到 on_error,前面的 Arbitrage_Cooking_ERREND 会因为缺少 recognition 而按协议默认命中 DirectHit,所以后面的 Global_Null_Exception / Global_Null_Panic 没机会执行。若这里既想保留正常收尾,又想保留升级兜底,建议把全局节点前置,或给 Arbitrage_Cooking_ERREND 加上可失败的识别条件/命中次数限制。 (maafw.com)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/resource/pipeline/Arbitrage.json` around lines 2172 - 2175, 当前
on_error 列表里因为 Arbitrage_Cooking_ERREND 缺少 recognition 会总是被 DirectHit,导致后面的
Global_Null_Exception / Global_Null_Panic 永远不会执行;请在 Arbitrage_Cooking_Hub 的
on_error 处理里要么把 Global_Null_Exception 和 Global_Null_Panic 提前到 on_error
数组前面(保证全局兜底先被评估),要么为 Arbitrage_Cooking_ERREND 增加可失败的识别条件或命中次数限制(例如添加 recognition
字段或 hit_count
限制)以允许后续全局节点命中;定位符:Arbitrage_Cooking_Hub、Arbitrage_Cooking_ERREND、Global_Null_Exception、Global_Null_Panic。

@sunyink sunyink merged commit dfb9141 into main Mar 25, 2026
15 checks passed
@sunyink sunyink deleted the chore/FrameVer branch March 25, 2026 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant