Embed compact progress (completed/planned total + overall pass_rate, reusing the report's aggregation) into GET /campaigns so the list drops its N+1 report fetch. Poll list and open report drawer every 5s while the tab is active and a campaign is still running. Show scenario version and trigger source tags in the child-run drill-down. |
||
|---|---|---|
| .. | ||
| rules | ||
| __init__.py | ||
| campaign_runner.py | ||
| campaign_scheduler.py | ||
| engine.py | ||
| judgement.py | ||
| report.py | ||