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
implement lossless numeric coercion in the evaluator (core/pkg/evaluator/json.go): replace the bare int64(val) cast in ResolveIntValue with a lossless check (reject a non-zero fractional part and out-of-accessor-range values with TYPE_MISMATCH); 10.0 -> 10 and lossless widening to Float continue to work
contract applies uniformly to gRPC, OFREP, and in-process paths (no wire changes)
bump the flagd-schemas submodule to pick up the safe-integer range constraint. This remains an ordinary schema validation (surfaced as today, i.e. a warning); no new hard load-failure path is added here. Hard-failing on schema violations is a separate future feature.
bump the flagd-testbed submodule and adopt the new @numeric-coercion scenarios
Accessor width: Go's ResolveIntValue is int64, i.e. Go's Integer accessor is the canonical Long. Go therefore excludes the @int32-bounded testbed scenarios; no separate Long accessor is required in Go core.
Breaking (lossless coercion changes existing truncation behavior, e.g. 3.14 via Integer now returns TYPE_MISMATCH); feat!:, minor bump, call out in release notes.
Activity
feat: rename @strict-numeric-typing to @numeric-coercion, and fix the…
fix: stop presenting the numeric coercion rule as normative OpenFeature
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
feat: rename @strict-numeric-typing to @numeric-coercion, and fix the…
fix: stop presenting the numeric coercion rule as normative OpenFeature
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
test(flagd): follow the @numeric-coercion rename, and track the defec…
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
test(ofrep): follow the @numeric-coercion rename, and note where the …
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
test(ofrep): follow the @numeric-coercion rename, and note where the …
280 remaining items
refactor(tck): rename @strict-numeric-typing to @numeric-coercion
test(flagd): follow the @numeric-coercion rename, and track the defec…
test(flagd): declare @lifecycle, and let the requirements decide the …
test(flagd): declare @numeric-coercion rather than withhold it and de…
test(ofrep): follow the @numeric-coercion rename, and note where the …
test(flagd): adopt the OpenFeature Provider TCK
test(flagd): declare the numeric-coercion gap as a defect, not a choice
test(flagd): declare @string-typing, on a run rather than on the default
test(flagd): declare @fully-typed-values too, on a run in both modes
refactor(tck): rename @strict-numeric-typing to @numeric-coercion
test(flagd): declare @large-integers and withdraw @numeric-coercion
test(flagd): declare what a run supports, per resolver, and say what …
test(flagd): follow the @numeric-coercion rename
refactor(provider-tck): rename @strict-numeric-typing to @numeric-coe…
refactor(tck): rename @strict-numeric-typing to @numeric-coercion