Context
The core Task and AcceptanceCriterion models in src/synthorg/core/task.py use ConfigDict(frozen=True) without allow_inf_nan=False. This means float fields on Task (e.g., budget-related) could accept inf/NaN values.
Most other frozen models in the project include allow_inf_nan=False as a defensive setting.
Proposed Fix
Add allow_inf_nan=False to both Task and AcceptanceCriterion model configs. Verify no existing tests or fixtures rely on inf/NaN values.
Source
Found during PR #832 review (CodeRabbit round 5).
Context
The core
TaskandAcceptanceCriterionmodels insrc/synthorg/core/task.pyuseConfigDict(frozen=True)withoutallow_inf_nan=False. This means float fields onTask(e.g., budget-related) could accept inf/NaN values.Most other frozen models in the project include
allow_inf_nan=Falseas a defensive setting.Proposed Fix
Add
allow_inf_nan=Falseto bothTaskandAcceptanceCriterionmodel configs. Verify no existing tests or fixtures rely on inf/NaN values.Source
Found during PR #832 review (CodeRabbit round 5).