Task · MDE-0034

Reject non-positive adaptive scheduler interval overrides

Description

Wave 3 found that SchedulerSettings accepts group interval overrides of zero or less. core/scheduler.py then divides by zero or records negative demand, which can crash startup or conceal an over-budget plan.

Acceptance Criteria

Definition of Done

Implementation Plan

Add failing configuration and solver tests for zero and negative overrides, then reject non-positive values at both boundaries and run the focused scheduler suite.

Implementation Notes

Failing tests observed ZeroDivisionError for zero and silent negative demand for minus one before the fix. Pydantic now rejects both, and the pure solver fails closed for programmatic callers. Integrated gate: 2827 passed.

Final Summary

Rejected non-positive group interval overrides at configuration and solver boundaries with test-first zero/negative coverage; just check and just ci pass.

View the source file on GitHub