unstale

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

@unstale/cli 0.2.0 on npm

@rjsf/core 644 changes

Breaking changes 7

  • Adds path-based property lookup; bare strings are literal keys, and lookup resolves own properties only.

    6.9.0release notes

  • Adds path-based property presence checks; bare strings are literal keys, and checks resolve own properties only.

    6.9.0release notes

  • RJSF packages no longer depend on lodash; applications relying on it being hoisted must declare it in their own package.json.

    6.9.0release notes

  • A required boolean field now defaults to false when the schema has no default.

    6.9.0release notes

  • Adds a path-based setter; bare strings are treated as literal keys, while dotted paths can be parsed with toPath().

    6.9.0release notes

  • Adds explicit parsing of lodash-style dotted path strings for use with the new path utilities.

    6.9.0release notes

  • Adds a path-based property remover; bare strings are treated as literal keys, while dotted paths can be parsed with toPath().

    6.9.0release notes

New APIs and options 17

  • Adds requiredBooleanDefault: skip leaves required booleans without a default undefined, while the default populateFalse preserves the 6.9.0+ behavior.

    6.11.0release notes

  • Adds a helper for the shared widget-name and enumOptions fallback logic used by StringField and NumberField.

    6.10.1release notes

  • Adds a helper to detect conditionals nested below a schema's top level, allowing sanitization to run when the root retrieved schema looks unchanged.

    6.10.1release notes

  • Added autocapitalize UI option handling to getInputProps() and the public input prop types.

    6.10.0release notes

  • Adds an optional deep flag that descends into nested objects and same-length arrays, returning the dotted path of the changed field.

    6.9.0release notes

  • Adds a helper to read a property's sub-schema, defaulting to an empty schema.

    6.9.0release notes

  • Adds a stricter counterpart to isObject() that excludes class instances, replacing lodash/isPlainObject for consumers.

    6.9.0release notes

  • Adds a do-nothing function to replace lodash/noop for consumers.

    6.9.0release notes

  • Added a utility to detect locale-specific decimal separators.

    6.7.1release notes

  • Added the CycleDetected key to enums.ts.

    6.7.0release notes

  • Added the props type for the cyclic schema expansion template.

    6.7.0release notes

  • Added a template for customizing the UI used to expand cyclic schemas.

    6.7.0release notes

  • Added the ExpandButton key to enums.ts.

    6.7.0release notes

  • Uses nestedDefaultsPrecedence to control how defaults defined on multiple levels are merged.

    6.7.0release notes

  • Added a helper for theme select widgets to warn when a schema default is not present in the enum options.

    6.7.0release notes

  • Added an option to control how defaults defined on multiple levels are merged.

    6.7.0release notes

  • Added markCycleOnDetection to mark schemas detected to contain a cycle with RJSF_REF_CYCLE_KEY.

    6.7.0release notes

Performance 1

  • Declares sideEffects as false so bundlers can tree-shake unused @rjsf/utils exports.

    6.9.0release notes

Behavior and default changes 2

Fixes and other changes 17

  • Merging allOf schemas now preserves Symbol-keyed properties and distinct allOf.contains branches, avoiding over-constrained schemas.

    6.10.1release notes

  • 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.

    6.10.1release notes

  • Includes defaults from a dependency subschema when called without form data or with an empty object.

    6.10.1release notes

  • 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.

    6.10.1release notes

  • 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.

    6.10.1release notes

  • Fixed handling of existing arrays and stale undefined values when applying a new schema, retaining data or applying defaults for newly defined properties.

    6.10.0release notes

  • Fixes recursive default merging when an object key's default is an array, preventing defaults in nested dependencies from being dropped.

    6.9.0release notes

  • Stops over-reaching additionalProperties post-processing from stripping keys written by winning oneOf/anyOf and if/then/else branches.

    6.9.0release notes

  • Fixed handling of arrays containing null and undefined values.

    6.8.0release notes

  • With experimental_defaultFormStateBehavior.arrayMinItems.populate = 'never', optional arrays with no data remain omitted and required arrays default to [], allowing the validator to report minItems violations instead of surfacing invalid null items.

    6.7.0release notesrelease notes

  • Now filters out RJSF_REF_KEY-prefixed keys before hashing schemas.

    6.7.0release notes

  • Now treats empty tuple items arrays as fixed items so additionalItems schemas are handled consistently.

    6.7.0release notes

  • Better handles allOfs containing multiple if/then/else blocks.

    6.7.0release notes

  • Preserves an explicitly empty string title on oneOf/anyOf options instead of falling back to the option's value.

    6.7.0release notes

  • Now preserves boolean conditional branches while resolving schemas.

    6.7.0release notes

  • Preserves valid enum values while replacing or clearing stale values across enum, oneOf, and anyOf schema changes.

    6.6.2release notes

  • Filters invalid enum values in arrays when sanitizing data for a new schema.

    6.6.2release notes