npm / @rjsf/core
@rjsf/core
What changed in @rjsf/core 6, from its official release notes, upgrade guides and advisories. Also covers @rjsf/utils, @rjsf/validator-ajv8. Sources checked 2026-10-19.
7 breaking17 new APIs and options1 performance2 behavior and defaults17 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@rjsf/core 644 changes
Breaking changes 7
Adds path-based property lookup; bare strings are literal keys, and lookup resolves own properties only.
Adds path-based property presence checks; bare strings are literal keys, and checks resolve own properties only.
RJSF packages no longer depend on lodash; applications relying on it being hoisted must declare it in their own package.json.
A required boolean field now defaults to false when the schema has no default.
Adds a path-based setter; bare strings are treated as literal keys, while dotted paths can be parsed with toPath().
Adds explicit parsing of lodash-style dotted path strings for use with the new path utilities.
Adds a path-based property remover; bare strings are treated as literal keys, while dotted paths can be parsed with toPath().
New APIs and options 17
Adds
requiredBooleanDefault:skipleaves required booleans without a default undefined, while the defaultpopulateFalsepreserves the 6.9.0+ behavior.Adds a helper for the shared widget-name and enumOptions fallback logic used by StringField and NumberField.
Adds a helper to detect conditionals nested below a schema's top level, allowing sanitization to run when the root retrieved schema looks unchanged.
Added autocapitalize UI option handling to getInputProps() and the public input prop types.
Adds an optional deep flag that descends into nested objects and same-length arrays, returning the dotted path of the changed field.
Adds a helper to read a property's sub-schema, defaulting to an empty schema.
Adds a stricter counterpart to isObject() that excludes class instances, replacing lodash/isPlainObject for consumers.
Adds a do-nothing function to replace lodash/noop for consumers.
Added a utility to detect locale-specific decimal separators.
Added the
CycleDetectedkey toenums.ts.Added the props type for the cyclic schema expansion template.
Added a template for customizing the UI used to expand cyclic schemas.
Added the
ExpandButtonkey toenums.ts.Uses
nestedDefaultsPrecedenceto control how defaults defined on multiple levels are merged.Added a helper for theme select widgets to warn when a schema default is not present in the enum options.
Added an option to control how defaults defined on multiple levels are merged.
Added
markCycleOnDetectionto mark schemas detected to contain a cycle withRJSF_REF_CYCLE_KEY.
Performance 1
Declares sideEffects as false so bundlers can tree-shake unused @rjsf/utils exports.
Behavior and default changes 2
Parses locale-specific decimal strings.
Selected option descriptions are now shown.
Fixes and other changes 17
Merging allOf schemas now preserves Symbol-keyed properties and distinct allOf.contains branches, avoiding over-constrained schemas.
When allOf is set to populateDefaults, computeDefaults merges a non-object schema's allOf so a $ref wrapped in a single-element allOf populates the same defaults as the bare $ref.
Includes defaults from a dependency subschema when called without form data or with an empty object.
Defaults number schemas to a text input in locales whose decimal separator is not a period, unless an explicit inputType is set, avoiding browser rejection of localized values.
Resolves dependencies, if/then/else, and allOf on each property's old and new schema before comparing them, so nested conditionals are considered when sanitizing data.
Fixed handling of existing arrays and stale undefined values when applying a new schema, retaining data or applying defaults for newly defined properties.
Fixes recursive default merging when an object key's default is an array, preventing defaults in nested dependencies from being dropped.
Stops over-reaching additionalProperties post-processing from stripping keys written by winning oneOf/anyOf and if/then/else branches.
Fixed handling of arrays containing null and undefined values.
With
experimental_defaultFormStateBehavior.arrayMinItems.populate = 'never', optional arrays with no data remain omitted and required arrays default to[], allowing the validator to reportminItemsviolations instead of surfacing invalidnullitems.Now filters out
RJSF_REF_KEY-prefixed keys before hashing schemas.Now treats empty tuple
itemsarrays as fixed items soadditionalItemsschemas are handled consistently.Better handles
allOfs containing multipleif/then/elseblocks.Preserves an explicitly empty string
titleononeOf/anyOfoptions instead of falling back to the option's value.Now preserves boolean conditional branches while resolving schemas.
Preserves valid enum values while replacing or clearing stale values across enum, oneOf, and anyOf schema changes.
Filters invalid enum values in arrays when sanitizing data for a new schema.