|
Some checks failed
CI / test (push) Failing after 12s
Campaign.summary was a bare Optional[dict] while RunSummary is a typed VO — scheduler state (spawned_indices/errors) flowed untyped through set_/get_summary. Introduce CampaignSummary + SchedulerState (extra=allow, validate_assignment), mirroring RunSummary; campaign_runner reads/writes the VO. Also converge the ~10 repeated JSON column get/set pairs onto _json_dumps/_json_loads helpers, unifying ensure_ascii=False and fixing the set_modalities ensure_ascii=True trap. |
||
|---|---|---|
| .. | ||
| rules | ||
| __init__.py | ||
| campaign_runner.py | ||
| campaign_scheduler.py | ||
| case_verdict.py | ||
| engine.py | ||
| implicit_rules.py | ||
| judgement.py | ||
| metrics.py | ||
| report_render.py | ||
| report.py | ||
| run_summary.py | ||