Skip to content

Merge:'chroe/patch0510'| 0510的01功能更新#279

Merged
sunyink merged 5 commits into
mainfrom
chroe/patch0510
May 11, 2026
Merged

Merge:'chroe/patch0510'| 0510的01功能更新#279
sunyink merged 5 commits into
mainfrom
chroe/patch0510

Conversation

@sunyink
Copy link
Copy Markdown
Owner

@sunyink sunyink commented May 11, 2026

Summary by Sourcery

将发布/公告模板切换为新的 ---target---/---end--- 块格式,并相应更新解析脚本,同时加入最新的应用内公告和发布头部内容。

新功能:

  • 在应用内公告文案中开放新的任务预设功能。

增强:

  • 更新变更日志和公告注入脚本,以解析新的 ---target---/---end--- 块标记,并忽略被注释的示例。

文档:

  • 重写发布头部和应用内公告草稿模板,以记录并采用新的 ---target---/---end--- 块语法来实现定向内容。
Original summary in English

Summary by Sourcery

Switch release/announcement templating to a new ---target---/---end--- block format and update parsing scripts accordingly, while adding the latest in-app announcement and release header content.

New Features:

  • Expose a new task preset capability in the in-app announcement copy.

Enhancements:

  • Update changelog and announcement injection scripts to parse the new ---target---/---end--- block markers and ignore commented examples.

Documentation:

  • Rewrite release header and in-app announcement draft templates to document and adopt the new ---target---/---end--- block syntax for targeted content.

Summary by CodeRabbit

发版说明

  • 新功能

    • 新增3种预设配置方案:日常快速完成、日常详细完成、工具集合,用户可根据需求灵活切换
  • 改进

    • 优化礼包类型检测逻辑,提升识别准确性

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 11, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (3)
  • scripts/block_parser.py is excluded by none and included by none
  • scripts/changelog_generator.py is excluded by none and included by none
  • scripts/inject_announcement.py is excluded by none and included by none

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ee5bc87f-514c-4627-b524-5a17b92cf41c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

变更概览

新增三组日常自动化预设配置方案,提供不同的任务执行粒度;同时更新采集管道的快速购物车节点,在OCR检查后添加状态恢复机制。

变更详情

自动化预设配置

Layer / File(s) Summary
预设配置定义
assets/interface.json
新增顶层 preset 数组,包含三组预设:(1) "日常-尽快完成" 启用主要日常流程并禁用肉鸽塔每日战斗;(2) "日常-费时细致" 在第一套基础上增强抽卡和竞技场配置,启用肉鸽塔每日战斗;(3) "小工具" 包含自动钓鱼、半自动操作、生活技能刷级,全部默认禁用。
采集管道节点更新
assets/resource/base/pipeline/Collect_Launcher.json
Collect_QuickCart_StoryPack_OcrCheckCollect_QuickCart_CharacterPack_OcrCheckCollect_QuickCart_EventPack_OcrCheck 三个节点分别添加自定义 RestoreNode 操作,在OCR计数后恢复至 Collect_LocatePackFrame_Smart_Swip 状态。

🎯 2 (Simple) | ⏱️ ~12 分钟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive 标题包含分支名称'chroe/patch0510'和日期'0510',但缺乏对实际变更内容的清晰描述。变更涉及预设配置和采集管道更新,但标题未能具体反映这些主要改动。 建议更新标题为更具体的描述,如'Add preset configurations for daily tasks and update Collect_Launcher pipeline'或'新增日常任务预设配置和更新采集管道节点'。
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 chroe/patch0510

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.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented May 11, 2026

Reviewer's Guide

将版本说明/公告的目标标记从 HTML 注释切换为显式的 ---target/---end 块,相应更新解析脚本(包括跳过被注释掉的示例),并刷新当前公告和版本头内容,同时对与 0510-01 功能更新相关的资源 / 界面 JSON 做出调整。

CI 使用新的 target 块注入公告和版本头的时序图

sequenceDiagram
    actor Developer
    participant Repo
    participant CI
    participant inject_announcement_py as inject_announcement_py
    participant changelog_generator_py as changelog_generator_py
    participant App
    participant GitHubRelease as GitHub_Release

    Developer->>Repo: Push changes (release/app_msg.md, release/release_header.md)
    CI->>Repo: Checkout main

    CI->>inject_announcement_py: Run inject_announcement for app_msg
    inject_announcement_py->>Repo: Read app_msg_md content
    inject_announcement_py->>inject_announcement_py: _parse_targeted_blocks(file_content, tag_type)
    inject_announcement_py->>inject_announcement_py: Strip HTML comments
    inject_announcement_py->>inject_announcement_py: Find ---target: ...--- ... ---end--- blocks
    inject_announcement_py->>inject_announcement_py: Filter blocks by tag_type/all
    inject_announcement_py-->>CI: Concatenated announcement blocks
    CI->>App: Inject concatenated content into Msg_Anch

    CI->>changelog_generator_py: Run changelog_generator for release_header
    changelog_generator_py->>Repo: Read release_header_md content
    changelog_generator_py->>changelog_generator_py: _parse_targeted_blocks(file_content, tag_type)
    changelog_generator_py->>changelog_generator_py: Strip HTML comments
    changelog_generator_py->>changelog_generator_py: Find ---target: ...--- ... ---end--- blocks
    changelog_generator_py->>changelog_generator_py: Filter blocks by tag_type/all
    changelog_generator_py-->>CI: Concatenated header blocks
    CI->>GitHub_Release: Prepend header content to Release Notes
Loading

File-Level Changes

Change Details Files
更改版本说明 / 公告块语法,并使解析器能够安全处理新的标记。
  • release/app_msg.mdrelease/release_header.md 中,用 ---target: ...--- / ---end--- 块替换基于 HTML 注释的目标标记,同时保留旧的用法文档,但将其重写到单个 HTML 注释块中,以避免被当作内容解析。
  • 更新 scripts/changelog_generator.py 中的 _parse_targeted_blocks,先去除 HTML 注释,然后使用一个匹配 ---target: ...--- / ---end--- 块的正则表达式,收集其目标列表包含 all 或当前标签类型的块。
  • scripts/inject_announcement.py 中的 _parse_targeted_blocks 应用相同的解析逻辑变更,使公告注入使用新语法,并忽略被注释掉的示例。
release/app_msg.md
release/release_header.md
scripts/changelog_generator.py
scripts/inject_announcement.py
更新与 0510-01 功能相关的当前版本说明 / 公告内容及关联的 JSON 资源。
  • 在新的 ---target: all--- 块下,刷新应用内公告文案,提及任务顺序重置以及新的任务预设功能。
  • 将所有版本的版本头信息内容调整为使用新标签块格式的一条新的简短引用。
  • 修改 assets/interface.jsonassets/resource/base/pipeline/Collect_Launcher.json,以支持新的 0510-01 功能行为(具体结构性变更请在 diff 中查看)。
release/app_msg.md
release/release_header.md
assets/interface.json
assets/resource/base/pipeline/Collect_Launcher.json

Tips and commands

Interacting with 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 来触发新的评审!

Customizing Your Experience

访问你的 dashboard 以:

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

Getting Help

Original review guide in English

Reviewer's Guide

Switches release note/announcement targeting markers from HTML comments to explicit ---target/---end blocks, updates the parsing scripts accordingly (including skipping commented examples), and refreshes the current announcement and release header content, with additional resource/interface JSON changes related to the 0510-01 feature update.

Sequence diagram for CI injecting announcements and release headers with new target blocks

sequenceDiagram
    actor Developer
    participant Repo
    participant CI
    participant inject_announcement_py as inject_announcement_py
    participant changelog_generator_py as changelog_generator_py
    participant App
    participant GitHubRelease as GitHub_Release

    Developer->>Repo: Push changes (release/app_msg.md, release/release_header.md)
    CI->>Repo: Checkout main

    CI->>inject_announcement_py: Run inject_announcement for app_msg
    inject_announcement_py->>Repo: Read app_msg_md content
    inject_announcement_py->>inject_announcement_py: _parse_targeted_blocks(file_content, tag_type)
    inject_announcement_py->>inject_announcement_py: Strip HTML comments
    inject_announcement_py->>inject_announcement_py: Find ---target: ...--- ... ---end--- blocks
    inject_announcement_py->>inject_announcement_py: Filter blocks by tag_type/all
    inject_announcement_py-->>CI: Concatenated announcement blocks
    CI->>App: Inject concatenated content into Msg_Anch

    CI->>changelog_generator_py: Run changelog_generator for release_header
    changelog_generator_py->>Repo: Read release_header_md content
    changelog_generator_py->>changelog_generator_py: _parse_targeted_blocks(file_content, tag_type)
    changelog_generator_py->>changelog_generator_py: Strip HTML comments
    changelog_generator_py->>changelog_generator_py: Find ---target: ...--- ... ---end--- blocks
    changelog_generator_py->>changelog_generator_py: Filter blocks by tag_type/all
    changelog_generator_py-->>CI: Concatenated header blocks
    CI->>GitHub_Release: Prepend header content to Release Notes
Loading

File-Level Changes

Change Details Files
Change release-note/announcement block syntax and make parsers handle the new markers safely.
  • Replace HTML comment based targeting markers with ---target: ...--- / ---end--- blocks in release/app_msg.md and release/release_header.md, keeping the old usage documentation but rewritten inside a single HTML comment block so it is not parsed as content.
  • Update _parse_targeted_blocks in scripts/changelog_generator.py to strip HTML comments first and then use a regex that matches ---target: ...--- / ---end--- blocks, collecting blocks whose target list includes all or the current tag type.
  • Apply the same parsing logic change to _parse_targeted_blocks in scripts/inject_announcement.py so announcement injection uses the new syntax and ignores commented examples.
release/app_msg.md
release/release_header.md
scripts/changelog_generator.py
scripts/inject_announcement.py
Update current release/announcement content and associated JSON resources for the 0510-01 feature.
  • Refresh the in-app announcement text to mention task order reset and the new task preset feature under the new ---target: all--- block.
  • Adjust the release header message content for all versions to a new short quote using the new tag block format.
  • Modify assets/interface.json and assets/resource/base/pipeline/Collect_Launcher.json to support the new 0510-01 feature behavior (exact structural changes to review in diff).
release/app_msg.md
release/release_header.md
assets/interface.json
assets/resource/base/pipeline/Collect_Launcher.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

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 - 我发现了 3 个问题,并给出了一些整体性的反馈:

  • _parse_targeted_blocks 中使用的 <!--.*?--> 剥离逻辑范围非常宽,会移除所有 HTML 注释(而不仅仅是示例),这可能会让后续编辑者感到意外;建议将其收窄为只过滤已文档化的示例区域,或者只过滤实际包含 ---target 标记的注释。
  • 新的 _parse_targeted_blocks 实现在 changelog_generator.pyinject_announcement.py 中是重复的;把这部分抽取成共享辅助函数,可以降低未来修改块格式时两个实现产生差异的风险。
给 AI Agent 的提示
Please address the comments from this code review:

## Overall Comments
- `_parse_targeted_blocks` 中使用的 `<!--.*?-->` 剥离逻辑范围非常宽,会移除所有 HTML 注释(而不仅仅是示例),这可能会让后续编辑者感到意外;建议将其收窄为只过滤已文档化的示例区域,或者只过滤实际包含 `---target` 标记的注释。
- 新的 `_parse_targeted_blocks` 实现在 `changelog_generator.py``inject_announcement.py` 中是重复的;把这部分抽取成共享辅助函数,可以降低未来修改块格式时两个实现产生差异的风险。

## Individual Comments

### Comment 1
<location path="scripts/changelog_generator.py" line_range="273" />
<code_context>
+    """按 ---target: ...--- / ---end--- 标记解析内容块,按顺序拼接所有匹配当前版本类型的块。"""
+    # 先剥离 HTML 注释,防止说明文档中的示例块被误匹配
+    content = re.sub(r'<!--.*?-->', '', file_content, flags=re.DOTALL)
+    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
     matched = []
-    for i in range(1, len(parts) - 1, 2):
</code_context>
<issue_to_address>
**suggestion:** 这个块的正则假设是 LF 换行符,因此在 CRLF 文件中可能会漏掉匹配。

由于正则在头部后面硬编码了 `
`,如果文件使用原始 Windows `
` 换行,这个模式就无法匹配。为了让它在不同平台上都能正常工作,可以把换行部分改成 `
?
``[\r\n]+`,或者类似 `
?
[ \t]*` 这样对空白更宽容的形式,同时仍然清晰地区分头部和正文。

```suggestion
    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\r?\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
```
</issue_to_address>

### Comment 2
<location path="scripts/inject_announcement.py" line_range="38" />
<code_context>
+    """按 ---target: ...--- / ---end--- 标记解析内容块,按顺序拼接所有匹配当前版本类型的块。"""
+    # 先剥离 HTML 注释,防止说明文档中的示例块被误匹配
+    content = re.sub(r'<!--.*?-->', '', file_content, flags=re.DOTALL)
+    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
     matched = []
-    for i in range(1, len(parts) - 1, 2):
</code_context>
<issue_to_address>
**suggestion:** 这个脚本中的目标块正则同样对换行风格很敏感。

对于保留了 `\r` 的 CRLF 输入,这个模式也无法匹配。建议使用 `\r?\n`(或更通用的换行匹配模式),以便解析器能在来自不同平台/编辑器的文件上正确工作。

```suggestion
    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\r?\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
```
</issue_to_address>

### Comment 3
<location path="release/release_header.md" line_range="42-46" />
<code_context>
+════════════════════════════════════════════════════════════════
+-->
+---target: all---
 > 159 Moons of Grace , And miles to go with you.
+---end---
</code_context>
<issue_to_address>
**issue (typo):** 请去掉英文句子中逗号前多余的空格。

把字符串中逗号前的空格去掉,使其变为 `Grace, And````suggestion
════════════════════════════════════════════════════════════════
-->
---target: all---
 > 159 Moons of Grace, And miles to go with you.
---end---
```
</issue_to_address>

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

Hey - I've found 3 issues, and left some high level feedback:

  • The <!--.*?--> stripping in _parse_targeted_blocks is very broad and will remove all HTML comments (not just examples), which may surprise future editors; consider narrowing this to only filter documented example regions or comments that actually contain ---target markers.
  • The new _parse_targeted_blocks implementation is duplicated between changelog_generator.py and inject_announcement.py; factoring this into a shared helper would reduce the chance of the two implementations diverging on future changes to the block format.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `<!--.*?-->` stripping in `_parse_targeted_blocks` is very broad and will remove all HTML comments (not just examples), which may surprise future editors; consider narrowing this to only filter documented example regions or comments that actually contain `---target` markers.
- The new `_parse_targeted_blocks` implementation is duplicated between `changelog_generator.py` and `inject_announcement.py`; factoring this into a shared helper would reduce the chance of the two implementations diverging on future changes to the block format.

## Individual Comments

### Comment 1
<location path="scripts/changelog_generator.py" line_range="273" />
<code_context>
+    """按 ---target: ...--- / ---end--- 标记解析内容块,按顺序拼接所有匹配当前版本类型的块。"""
+    # 先剥离 HTML 注释,防止说明文档中的示例块被误匹配
+    content = re.sub(r'<!--.*?-->', '', file_content, flags=re.DOTALL)
+    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
     matched = []
-    for i in range(1, len(parts) - 1, 2):
</code_context>
<issue_to_address>
**suggestion:** The block regex assumes LF line endings and can miss matches on CRLF files.

Because the regex hard-codes `
` after the header, it won’t match content in files using raw Windows `
` line endings. To make it work across platforms, update the line-break part to something like `
?
`, `[
]+`, or a whitespace-tolerant form such as `
?
[ 	]*`, while still clearly separating header and body.

```suggestion
    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\r?\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
```
</issue_to_address>

### Comment 2
<location path="scripts/inject_announcement.py" line_range="38" />
<code_context>
+    """按 ---target: ...--- / ---end--- 标记解析内容块,按顺序拼接所有匹配当前版本类型的块。"""
+    # 先剥离 HTML 注释,防止说明文档中的示例块被误匹配
+    content = re.sub(r'<!--.*?-->', '', file_content, flags=re.DOTALL)
+    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
     matched = []
-    for i in range(1, len(parts) - 1, 2):
</code_context>
<issue_to_address>
**suggestion:** The target block regex is also sensitive to line-ending style in this script.

With CRLF input where `
` is preserved, this pattern won’t match. Consider using `
?
` (or a more general line-break pattern) so the parser works correctly on files from different platforms/editors.

```suggestion
    block_re = re.compile(r'---target:\s*(.+?)---[ \t]*\r?\n(.*?)---end---', re.DOTALL | re.IGNORECASE)
```
</issue_to_address>

### Comment 3
<location path="release/release_header.md" line_range="42-46" />
<code_context>
+════════════════════════════════════════════════════════════════
+-->
+---target: all---
 > 159 Moons of Grace , And miles to go with you.
+---end---
</code_context>
<issue_to_address>
**issue (typo):** Remove the extra space before the comma in the English sentence.

Update the string to remove the space before the comma so it reads `Grace, And`.

```suggestion
════════════════════════════════════════════════════════════════
-->
---target: all---
 > 159 Moons of Grace, And miles to go with you.
---end---
```
</issue_to_address>

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.

Comment thread scripts/changelog_generator.py Outdated
Comment thread scripts/inject_announcement.py Outdated
Comment thread release/release_header.md
Comment on lines +42 to +46
════════════════════════════════════════════════════════════════
-->
---target: all---
> 159 Moons of Grace , And miles to go with you.
---end---
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

issue (typo): 请去掉英文句子中逗号前多余的空格。

把字符串中逗号前的空格去掉,使其变为 Grace, And

Suggested change
════════════════════════════════════════════════════════════════
-->
---target: all---
> 159 Moons of Grace , And miles to go with you.
---end---
════════════════════════════════════════════════════════════════
-->
---target: all---
> 159 Moons of Grace, And miles to go with you.
---end---
Original comment in English

issue (typo): Remove the extra space before the comma in the English sentence.

Update the string to remove the space before the comma so it reads Grace, And.

Suggested change
════════════════════════════════════════════════════════════════
-->
---target: all---
> 159 Moons of Grace , And miles to go with you.
---end---
════════════════════════════════════════════════════════════════
-->
---target: all---
> 159 Moons of Grace, And miles to go with you.
---end---

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 11, 2026

🤖 DeepSeek 自动评审报告

模型deepseek-v4-pro 触发workflow_dispatch Diff 截断:否 输出截断:否 参考资料截断:否 改动文件:7(二进制跳过 0)

概览

本次 PR 主要做了三件事:①在 interface.json 中新增了三个 preset 预设配置;②将公告/Release Notes 模板的标记语法从旧的 HTML 注释式 <!-- target: --> 迁移到新的 ---target---/---end--- 块格式,并更新了解析脚本;③为 Collect_Launcher.json 中的三个 OcrCheck 节点补充了缺失的 action 字段。整体改动量不大,结构清晰,未见阻塞性问题。

阻塞性问题(必须修改)

无。

建议改进(非阻塞)

1. Preset 任务名硬编码与顶层 task 名称的耦合

  • 文件assets/interface.json:1688+
  • 问题preset 中的 task[].name 使用完整的中文任务名(如 [全局]启动脚本(置顶)[执行]快速狩猎扫荡)。根据 PI 协议,preset.task[].name 必须与顶层 task[].name 完全一致。若后续修改顶层任务名称(如调整前缀或描述),这些 preset 会失效,且没有明显的 CI/静态检查来提示。
  • 原因:项目规范无强制;但基于工程稳健性与 PI v2 preset 设计意图。
  • 建议:暂无强需求改动。可考虑在 CI 中新增一个轻量校验脚本,比对 preset.task[].name 是否都能在 interface.json 顶层 task 中找到,发现不匹配时告警。这样可在发版前捕捉漂移。

2. Collect_QuickCart_*_OcrCheck 节点 action 变更影响面

  • 文件assets/resource/base/pipeline/Collect_Launcher.json:321,348,375
  • 问题Collect_QuickCart_StoryPack_OcrCheckCollect_QuickCart_CharacterPack_OcrCheckCollect_QuickCart_EventPack_OcrCheck 三个节点原先 action 字段缺省(默认 DoNothing),现在修改为 Custom 动作 RestoreNode,恢复了节点 Collect_LocatePackFrame_Smart_Swip 的状态。这个改动本身合理(修正了缺失动作),但改变了这三个节点的执行行为:原来是纯识别(ColorMatch)后不执行动作,现在是识别成功后执行 RestoreNode 再进入 next
  • 原因:MaaFW 执行逻辑——若识别命中且动作成功,进入 next;若识别命中但动作失败,进入 on_errorRestoreNode 是一个已注册的自定义动作(资料 E),执行失败的可能性较低,但毕竟引入了新的动作链,建议确保回归测试覆盖。
  • 建议:确认在单章采集、完整采集、卡带屏蔽等涉及这些节点的流程中已做过基础回归验证(至少一次完整采集运行无误),并关注 RestoreNode 是否产生预期的日志输出,以验证行为符合预期。

疑问 / 需要作者确认

  1. release/release_header.md 的内容块 > 159 Moons of Grace , And miles to go with you. 文本末尾是否期望换行或追加其他内容?当前为单行引用,看起来是有意为之,但以防是意外截断。
  2. scripts/block_parser.py 中的正则 r'---target:\s*(.+?)---[ \t]*\r?\n(.*?)---end---' 要求开头的 ---target: 后必须有空格或直接接类型。若人为误写为 ---target:beta---(无空格)是否可接受?当前正则 \s* 可匹配零空格,应无问题;但若有人误写 ---target:---(空类型),group(1) 为空字符串,block 会被匹配但最终 strip() 后可能为空而被跳过。建议在文档注释中标明正确格式样例,避免用户踩坑。

由 GitHub Actions + DeepSeek 自动生成;以人工审查为准。

@sunyink sunyink merged commit c98b505 into main May 11, 2026
19 checks passed
@sunyink sunyink deleted the chroe/patch0510 branch May 11, 2026 13:14
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