You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Models: Strike + fee-multiplier fields use bare Decimal/float, bypass #225 coercion #259
Bare Decimal skips _coerce_decimal — Pydantic will accept a JSON-number 1.23 by routing through float first, exactly the precision-loss path the SDK paid an audit to eliminate. fee_multiplier: float is worse: the value is committed to a binary float on parse (0.65 -> 0.6500000000000000222...) which then propagates into any cost computation. None of these fields reject bool (the #225 invariant). Strikes and multipliers are load-bearing in payout math.
Switch floor_strike/cap_strike to DollarDecimal (they are dollar values per spec). Switch fee_multiplier/fee_multiplier_override to Decimal with BeforeValidator(_coerce_decimal) (or introduce a MultiplierDecimal alias) so the parse path matches every other numeric SDK field.
Activity
release: 2.5.0 — post-v2.4 multi-reviewer SDK audit closure (#273) (#294