Repository navigation
fix(webui): 按实例服务器刷新活动候选与旧选择 - #1309
Conversation
复用运行器的活动迁移规则,为配置 API 返回实例级候选,并以同批最终包名校验保存。同步前端、内存模拟服务、四服回归用例及模块文档。
|
Sorry @Beatrice-betty, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 15 hours and 57 minutes by commenting |
|
⏳ CI 检查进行中,报告将在完成后更新。 |
审阅者指南本 PR 将活动候选和旧选择刷新统一为基于实例包名的配置规则,使后端运行器、配置 API、模拟服务和 WebUI 在四服场景下保持一致;API 返回实例级候选,读取仅内存刷新失效选择,保存按同批最终包名原子校验,并以单元、模拟服务和 Playwright 回归用例覆盖事务与界面行为。 实例级活动配置时序图sequenceDiagram
participant UI as WebUI
participant API as ConfigService
participant Rules as CampaignRules
participant Store as ConfigStore
UI->>API: config.get(instance)
API->>Store: read(instance)
Store-->>API: raw configuration
API->>Rules: refresh_campaign_events(values, args)
Rules-->>API: refreshed in-memory values
API->>Rules: campaign_event_options(values, args)
Rules-->>API: package-specific options
API-->>UI: values + options
UI->>UI: use options[path] for task controls
活动选择原子校验时序图sequenceDiagram
participant UI as WebUI
participant API as ConfigService
participant Rules as CampaignRules
participant Store as ConfigStore
UI->>API: config.patch(instance, changes)
API->>API: apply changes to transaction copy
API->>Rules: campaign_event_options(final values, args)
Rules-->>API: final package candidates
alt selected campaign is not a candidate
API-->>UI: INVALID_PARAMS
Note over Store: No fields are persisted
else selection is valid
API->>Rules: refresh_campaign_events(final values, args)
API->>Store: commit transaction
Store-->>API: saved configuration
API-->>UI: values + options
end
按包名刷新活动流程图flowchart TD
A[Read instance PackageName] --> B[Map package to server with to_server]
B --> C[Load option_server candidates]
C --> D{Existing selection is valid?}
D -->|Yes| E[Preserve selection]
D -->|No| F[Use first candidate]
E --> G[Return instance-scoped options]
F --> G
G --> H[WebUI renders task selector]
文件级变更
提示与命令与 Sourcery 互动
自定义体验访问你的控制面板,可以:
获取帮助Original review guide in EnglishReviewer's Guide本 PR 将活动候选和旧选择刷新统一为基于实例包名的配置规则,使后端运行器、配置 API、模拟服务和 WebUI 在四服场景下保持一致;API 返回实例级候选,读取仅内存刷新失效选择,保存按同批最终包名原子校验,并以单元、模拟服务和 Playwright 回归用例覆盖事务与界面行为。 Sequence diagram for instance-scoped campaign configurationsequenceDiagram
participant UI as WebUI
participant API as ConfigService
participant Rules as CampaignRules
participant Store as ConfigStore
UI->>API: config.get(instance)
API->>Store: read(instance)
Store-->>API: raw configuration
API->>Rules: refresh_campaign_events(values, args)
Rules-->>API: refreshed in-memory values
API->>Rules: campaign_event_options(values, args)
Rules-->>API: package-specific options
API-->>UI: values + options
UI->>UI: use options[path] for task controls
Sequence diagram for atomic campaign selection validationsequenceDiagram
participant UI as WebUI
participant API as ConfigService
participant Rules as CampaignRules
participant Store as ConfigStore
UI->>API: config.patch(instance, changes)
API->>API: apply changes to transaction copy
API->>Rules: campaign_event_options(final values, args)
Rules-->>API: final package candidates
alt selected campaign is not a candidate
API-->>UI: INVALID_PARAMS
Note over Store: No fields are persisted
else selection is valid
API->>Rules: refresh_campaign_events(final values, args)
API->>Store: commit transaction
Store-->>API: saved configuration
API-->>UI: values + options
end
Flow diagram for campaign refresh by package nameflowchart TD
A[Read instance PackageName] --> B[Map package to server with to_server]
B --> C[Load option_server candidates]
C --> D{Existing selection is valid?}
D -->|Yes| E[Preserve selection]
D -->|No| F[Use first candidate]
E --> G[Return instance-scoped options]
F --> G
G --> H[WebUI renders task selector]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 10
✨ Finishing Touches
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. Comment |
复用运行器的活动迁移规则,为配置 API 返回实例级候选,并以同批最终包名校验保存。同步前端、内存模拟服务、四服回归用例及模块文档。
📋 许可确认
💯 代码质量确认
uv run ruff check . --select E9,F63,F7,F82 --ignore F821,F722npm run typecheck --prefix frontendmodule/config/argument/下的 YAML 源文件,已运行uv run -m module.config.config_updater并提交生成产物🔍 变更类型 (勾选所有适用项)
📄 PR 描述
🔗 相关 Issue
📸 修改效果截图
🛠️ 实现复杂度
📋 实现细节 (可选)
🧪 测试步骤 (可选)
Sourcery 摘要
根据各实例的软件包区域,统一运行时、配置 API、模拟服务和任务 UI 中的活动候选项选择逻辑。
新功能:
错误修复:
增强:
文档:
测试:
Original summary in English
Summary by Sourcery
Align campaign candidate selection across the runtime, configuration API, mock service, and task UI with each instance's package region.
New Features:
Bug Fixes:
Enhancements:
Documentation:
Tests: