Description
When schema validation fails, fixBooleanCasing(data) mutates the input object in-place.
This causes unexpected side effects for callers, as their original data object is modified even though validation failed.
Location
- File:
packages/core/src/utils/schemaValidator.ts
Current Code
if (!valid && validate.errors) {
fixBooleanCasing(data as Record<string, unknown>); // ❌ Mutates input!
// ...
}
Impact
- Caller's original object is unexpectedly altered
- Breaks immutability expectations
- Can introduce subtle bugs in retry or fallback logic