feat(maaend): 支持直控、支持额外的送货和自动采集安排 - #588
Conversation
审查者指南该 PR 将 MaaEnd 配置扩展为脚本共享、用户独立和脚本直控三种来源,并在后端实现送货、日常、自动采集三阶段调度及三日路线筛选;前端则以分区卡片和锚点导航重构用户配置页,新增送货/采集配置及串行字段保存机制。 MaaEnd 三阶段代理执行时序图sequenceDiagram
participant AutoProxyTask
participant Config as UserConfig
participant MaaEnd as MaaEndProcess
participant LogMonitor
AutoProxyTask->>Config: _mode_has_enabled_tasks(Delivery)
AutoProxyTask->>Config: _mode_has_enabled_tasks(Routine)
AutoProxyTask->>Config: _mode_has_enabled_tasks(AutoCollect)
loop Each enabled stage
AutoProxyTask->>AutoProxyTask: get_task_book_name(task)
AutoProxyTask->>MaaEnd: launch stage task configuration
MaaEnd-->>LogMonitor: completion or update status
LogMonitor-->>AutoProxyTask: check_log()
end
AutoProxyTask->>AutoProxyTask: execute_script_task()
MaaEnd 自动采集路线调度流程图flowchart LR
A[AutoCollectMode] --> B{Three-day schedule}
B -->|Distributed| C[Select routes where index % 3 matches cycle]
B -->|Concentrated| D[Select all enabled routes on cycle day]
C --> E[Regional routes]
C --> F[Common routes]
D --> E
D --> F
E --> G[Write AutoCollectRoutes]
F --> H[Write AutoCollectCommonRoutes]
文件级变更
提示与命令与 Sourcery 交互
自定义使用体验访问你的控制面板以:
获取帮助Original review guide in EnglishReviewer's Guide该 PR 将 MaaEnd 配置扩展为脚本共享、用户独立和脚本直控三种来源,并在后端实现送货、日常、自动采集三阶段调度及三日路线筛选;前端则以分区卡片和锚点导航重构用户配置页,新增送货/采集配置及串行字段保存机制。 Sequence diagram for MaaEnd three-stage proxy executionsequenceDiagram
participant AutoProxyTask
participant Config as UserConfig
participant MaaEnd as MaaEndProcess
participant LogMonitor
AutoProxyTask->>Config: _mode_has_enabled_tasks(Delivery)
AutoProxyTask->>Config: _mode_has_enabled_tasks(Routine)
AutoProxyTask->>Config: _mode_has_enabled_tasks(AutoCollect)
loop Each enabled stage
AutoProxyTask->>AutoProxyTask: get_task_book_name(task)
AutoProxyTask->>MaaEnd: launch stage task configuration
MaaEnd-->>LogMonitor: completion or update status
LogMonitor-->>AutoProxyTask: check_log()
end
AutoProxyTask->>AutoProxyTask: execute_script_task()
Flow diagram for MaaEnd auto-collect route schedulingflowchart LR
A[AutoCollectMode] --> B{Three-day schedule}
B -->|Distributed| C[Select routes where index % 3 matches cycle]
B -->|Concentrated| D[Select all enabled routes on cycle day]
C --> E[Regional routes]
C --> F[Common routes]
D --> E
D --> F
E --> G[Write AutoCollectRoutes]
F --> H[Write AutoCollectCommonRoutes]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
您好——我发现了 1 个问题
面向 AI Agent 的提示
请处理本次代码审查中的评论:
## 单独评论
### 评论 1
<location path="frontend/src/composables/useScriptApi.ts" line_range="625-639" />
<code_context>
- IfSeizeEntrustTask:
- maaEndUserData.Task?.IfSeizeEntrustTask != null
- ? maaEndUserData.Task.IfSeizeEntrustTask
+ IfSeizeDeliveryJobs:
+ maaEndUserData.Task?.IfSeizeDeliveryJobs != null
+ ? maaEndUserData.Task.IfSeizeDeliveryJobs
</code_context>
<issue_to_address>
**问题 (bug_risk):** 前端访问了新添加的 `MaaEndUserConfig_Task` 字段,但已提交的生成文件 `frontend/src/api/models/MaaEndUserConfig_Task.ts` 仍然只声明旧的 `IfSeizeEntrustTask` 字段,并且没有配送或自动收取相关字段。因此,TypeScript 编译会因 `IfSeizeDeliveryJobs`、`SeizeDeliveryJobsReward`、`SeizeDeliveryJobsCommissionSource`、`AutoCollectMode`、`AutoCollectRoutes` 和 `AutoCollectCommonRoutes` 存在未知属性而失败。
**建议修复:** 重新生成并提交 OpenAPI TypeScript 模型,或者根据新架构一致地更新生成的任务和信息模型。
</issue_to_address>Sourcery 评估
需要人工审查。 有 1 个发现需要优先处理,而且此次更改会修改持久化的 MaaEnd 配置选择并写入任务设置,同时添加多阶段执行流程。因此,错误的模式或任务筛选条件可能会运行错误的自动化操作,并遗留配置更改。回滚可以阻止后续运行,但无法撤销已经执行的操作;保存的配置本身范围有限,可以恢复或重新计算。
阻塞性发现:frontend/src/composables/useScriptApi.ts:639
Original comment in English
Hey - I've found 1 issue
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="frontend/src/composables/useScriptApi.ts" line_range="625-639" />
<code_context>
- IfSeizeEntrustTask:
- maaEndUserData.Task?.IfSeizeEntrustTask != null
- ? maaEndUserData.Task.IfSeizeEntrustTask
+ IfSeizeDeliveryJobs:
+ maaEndUserData.Task?.IfSeizeDeliveryJobs != null
+ ? maaEndUserData.Task.IfSeizeDeliveryJobs
</code_context>
<issue_to_address>
**issue (bug_risk):** The frontend accesses the newly added `MaaEndUserConfig_Task` fields, but the checked-in generated `frontend/src/api/models/MaaEndUserConfig_Task.ts` still declares only the old `IfSeizeEntrustTask` field and has no delivery or auto-collect fields. TypeScript compilation therefore fails with unknown-property errors for `IfSeizeDeliveryJobs`, `SeizeDeliveryJobsReward`, `SeizeDeliveryJobsCommissionSource`, `AutoCollectMode`, `AutoCollectRoutes`, and `AutoCollectCommonRoutes`.
**Suggested fix:** Regenerate and commit the OpenAPI TypeScript models, or update the generated task and info models consistently with the new schema.
</issue_to_address>Sourcery assessment
Needs a human reviewer. 1 finding to address first, and this changes persistent MaaEnd configuration selection and writes task settings while adding a multi-stage execution flow, so an incorrect mode or task filter could run the wrong automation and leave configuration changes behind. Reverting would stop future runs, but it would not undo actions already performed; the saved configuration itself is bounded and can be restored or recomputed.
Blocking findings: frontend/src/composables/useScriptApi.ts:639
| IfSeizeDeliveryJobs: | ||
| maaEndUserData.Task?.IfSeizeDeliveryJobs != null | ||
| ? maaEndUserData.Task.IfSeizeDeliveryJobs | ||
| : true, | ||
| SeizeDeliveryJobsReward: | ||
| maaEndUserData.Task?.SeizeDeliveryJobsReward != null | ||
| ? maaEndUserData.Task.SeizeDeliveryJobsReward | ||
| : 15.9, | ||
| SeizeDeliveryJobsCommissionSource: | ||
| maaEndUserData.Task?.SeizeDeliveryJobsCommissionSource != null | ||
| ? maaEndUserData.Task.SeizeDeliveryJobsCommissionSource | ||
| : 'Unlimited', | ||
| IfAutoEcoFarm: | ||
| maaEndUserData.Task?.IfAutoEcoFarm != null | ||
| ? maaEndUserData.Task.IfAutoEcoFarm |
There was a problem hiding this comment.
问题 (bug_risk): 前端访问了新添加的 MaaEndUserConfig_Task 字段,但已提交的生成文件 frontend/src/api/models/MaaEndUserConfig_Task.ts 仍然只声明旧的 IfSeizeEntrustTask 字段,并且没有配送或自动收取相关字段。因此,TypeScript 编译会因 IfSeizeDeliveryJobs、SeizeDeliveryJobsReward、SeizeDeliveryJobsCommissionSource、AutoCollectMode、AutoCollectRoutes 和 AutoCollectCommonRoutes 存在未知属性而失败。
建议修复: 重新生成并提交 OpenAPI TypeScript 模型,或者根据新架构一致地更新生成的任务和信息模型。
Original comment in English
issue (bug_risk): The frontend accesses the newly added MaaEndUserConfig_Task fields, but the checked-in generated frontend/src/api/models/MaaEndUserConfig_Task.ts still declares only the old IfSeizeEntrustTask field and has no delivery or auto-collect fields. TypeScript compilation therefore fails with unknown-property errors for IfSeizeDeliveryJobs, SeizeDeliveryJobsReward, SeizeDeliveryJobsCommissionSource, AutoCollectMode, AutoCollectRoutes, and AutoCollectCommonRoutes.
Suggested fix: Regenerate and commit the OpenAPI TypeScript models, or update the generated task and info models consistently with the new schema.
|
@sourcery-ai review |
|
Sorry @HarcoChen, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 6 days and 12 hours by commenting |
摘要
Sourcery 总结
扩展 MaaEnd 配置和自动化功能,支持直接控制、独立的派送与自动收取阶段,并提升用户配置体验的可靠性。
新功能:
错误修复:
改进:
Original summary in English
Sourcery 摘要
扩展 MaaEnd 的配置来源和自动化阶段,并提升任务执行可靠性与用户配置体验。
新功能:
错误修复:
改进:
构建:
文档:
杂项:
Original summary in English
Sourcery 总结
扩展 MaaEnd 的配置来源和阶段化自动化能力,并提升配置编辑与任务执行的可靠性。
新功能:
问题修复:
改进:
构建:
文档:
杂项:
Original summary in English
Sourcery 摘要
扩展 MaaEnd 的配置来源和阶段化自动化能力,并提升配置编辑与任务执行的可靠性。
新功能:
错误修复:
改进:
构建:
文档:
杂项:
Original summary in English
Sourcery 摘要
扩展 MaaEnd 的配置来源和阶段化自动化能力,同时提升任务执行可靠性与用户配置体验。
新功能:
错误修复:
改进:
构建:
文档:
杂项:
Original summary in English
Sourcery 摘要
扩展 MaaEnd 的配置来源与阶段化自动化能力,同时提升任务执行可靠性和用户配置体验。
新功能:
错误修复:
改进:
构建:
文档:
测试:
杂项:
Original summary in English
Sourcery 摘要
扩展 MaaEnd 的配置来源与阶段化自动化能力,同时提升任务执行可靠性和用户配置体验。
New Features:
Bug Fixes:
Enhancements:
Build:
Documentation:
Tests:
Chores:
Original summary in English
Summary by Sourcery
扩展 MaaEnd 的配置来源与阶段化自动化能力,同时提升任务执行可靠性和用户配置体验。
New Features:
Bug Fixes:
Enhancements:
Build:
Documentation:
Tests:
Chores: