# What changed in react-hook-form

> 224 changes in react-hook-form 7 from its official release notes, upgrade guides and advisories: 5 breaking, 5 security, 15 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/react-hook-form/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## react-hook-form 7

### Breaking changes

- getValues no longer extracts unmarked field array entries. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Changes the location of the minimum-one-item validation error in the errors object. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- NaN is no longer treated as empty during validation when valueAsNumber is true. (7.76.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.1)
- Field array validation is skipped when mode is onBlur. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Reverts the change that allowed undefined values with async defaultValues in the affected API. (7.68.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.68.0)

### Security

- Hardens get against prototype-path traversal involving __proto__, constructor, and prototype. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- A critical RCE vulnerability was addressed. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- A security update addressed CVE-2025-55183. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- A security update addressed CVE-2025-55184. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- A security update addressed CVE-2025-67779. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)

### New APIs and options

- Adds an Error Message component for displaying React Hook Form validation errors. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Adds a declaration-merging registry for treating rich third-party types as opaque leaves in recursive type helpers. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- trigger() now accepts shouldTouch to mark fields touched after manual or programmatic validation. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Adds a type-safe getErrors method for retrieving form errors. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- react-hook-form now supports React Activity. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- Exposes resetDefaultValues through form context. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- Adds an opt-in delayError option to delay validation error updates. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- Adds a FieldArray component for rendering field arrays through control, name, and render props. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Adds a disabled option to useFieldArray; fields expose disabled props when enabled. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.80.0), [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- Adds resetDefaultValues for updating default form values. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- FormProvider context now includes setValues. (7.75.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.75.0)
- Adds setValues for updating form values from a callback or form values object. (7.74.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0)
- useForm now supports built-in asynchronous form-level validation returning success or form errors. (7.72.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0)
- Adds a component that re-renders only when the specified form state changes. (7.68.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.68.0)
- Adds the exact prop to control whether a Controller subscribes to all changes in a user object. (7.67.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.67.0)

### Performance

- Redundant form-state merges during subscriber notifications are skipped. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Allocations are avoided when matching subscription names. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- The watch API is faster. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Improves createFormControl performance for developers using the form control API. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Improves performance for workloads with frequent onChange activity. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Avoids unnecessary value cloning during unregister. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Performance was improved and the bundle size was reduced. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- TypeScript performance improves with a hard cap at 10 levels of recursive type depth. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Type performance is improved. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Improves dirty field calculation performance, especially for larger forms and deeply nested values. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- Improves re-rendering when useFieldArray is reset. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Reduces bundle size. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- setValues threads skipClone through setFieldValue to reduce cloning overhead. (7.76.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.1)
- Redundant per-field deep clones are skipped during setValues. (7.76.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.1)
- useWatch no longer re-renders when validation occurs on an unrelated field. (7.75.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.75.0)
- setValue skips re-rendering when the value is unchanged. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Submission is memoized to improve performance. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Control context is separated to prevent unnecessary rerenders. (7.71.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.0)
- FormProvider context value is memoized to prevent unnecessary rerenders. (7.71.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.0)
- isValidating state updates are batched with the validation result. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- Batch array updates now skip setValid(), avoiding unnecessary validity recalculation during grouped updates. (7.66.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.1)

### Behavior and default changes

- The Form component's submit behavior was enhanced. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- getEventValue now handles file inputs. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Improves the setValue API with value shrinking behavior. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Changes in formState errors now cause child components to re-render with the React compiler. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- subscribe can now track submit state through formState. (7.72.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0)
- The Watch API was aligned with useWatch. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- useController now reacts when its name changes. (7.66.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.0)
- useWatch now reacts when its name changes. (7.66.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.0)

### Tooling

- An optional @types/react peer dependency was added for projects that need React type definitions. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Improved watch type definitions for developers using the watch API. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)

### Fixes and other changes

- Blur validation works correctly after reset. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Dirty fields checking is improved. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Error updates now produce a new errors reference. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Input values edited before the form is ready are no longer lost. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Form-state tracking is preserved across unsubscribe. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Dirty values extraction now works correctly for fields named hasOwnProperty. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Named scoped subscriptions are improved. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Form value comparison now works correctly for fields named ref. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- reset no longer incorrectly sets isDirty when keepDefaultValues is used without values. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- setError and clearErrors now produce a new errors reference. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Subject subscription handling is improved. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Subscription value handling is improved. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Fields are no longer incorrectly unregistered while a parent array reindexes. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Removing duplicate indexes now works without mutating the provided indexes. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Fields named after Object.prototype members are no longer marked touched incorrectly on blur or setValue. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Native validation now uses current shouldUseNativeValidation options. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Options removed from props are no longer retained across re-renders. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Watched objects now update after an Activity subtree reconnects. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Array names now prioritize form defaultValues correctly. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- watch no longer uses stale shouldUnregister options when registering fields. (7.90.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.90.0)
- Duplicate default value fields are no longer present. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Pending delayError timers for nested paths are now handled correctly. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Nested delayError timers no longer remain when a parent validates clean. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Stale form-level errors are cleared after successful re-validation. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Form-level validation now runs once per traversal. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Form state select option handling was fixed. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- getFieldState(name, formState) now updates correctly after reset. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- isValid is now recomputed when the errors prop is emptied. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Validation rules removed from register options at runtime are no longer kept active. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Built-in validation results no longer remain stale after reset during handleSubmit. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Form-level validation results no longer remain stale after reset. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Built-in validation results no longer remain stale after reset during onChange. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Resolver results no longer remain stale after reset during onChange. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Nested delayError timers are removed when resetField resets a parent. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- setValue now revalidates dependencies when shouldValidate is enabled. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- setValue now triggers field array root validation when shouldValidate is enabled. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Required validation now uses the controlled value. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Dirty state is cleared for rows removed from a field array. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Stale field array root errors are cleared after an operation satisfies the validation rule. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Touched field array state is now re-indexed when unsubscribed. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Touched fields handling for field arrays was fixed. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- A null array default value no longer incorrectly marks the form dirty. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Form-level validation now uses the current validate function instead of a stale one. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Native validation no longer skips refs without setCustomValidity. (7.89.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.89.0)
- Prevents cleared errors from returning after the delayError timer fires. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Preserves FileList during flatten/expand and omits undefined values in jsonToFormData. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Reads isValidating from the supplied form state. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Preserves resolver-reported root errors during handleSubmit(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Restores publication of the React Server build. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents deleted values from leaking onto surviving field-array items. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Fixes errors and touched state remaining for rows removed by replace(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Keeps dirtyFields synchronized with isDirty when keepValues is enabled. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents stale resolver results from updating form state after reset() during handleSubmit(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents stale resolver state updates after reset(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Clears validating fields when reset() runs. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Fixes stale validating state after resetField(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Calls setCustomValidity once instead of once per key in validate-object mode. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents stale validation types from surviving setError() overwrites. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Preserves nested registered errors when trigger() targets their parent. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents incorrect parent errors when triggering fields with only nested resolver errors. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Recomputes isValidating after unregister() clears validating fields. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Preserves kept values in the submit payload after unregister(). (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Fixes focus behavior for checkboxes and radio buttons in appended rows. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Prevents stale fields after an Activity subtree reconnects. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Correctly reconciles when an Activity subtree is initially hidden. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Re-subscribes when control changes. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Initializes the compute cache with the initial output. (7.88.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.88.0)
- Fixes Controller under a null parent submitting undefined instead of the field value. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes ERR_MODULE_NOT_FOUND when resolving react-hook-form in Next.js builds. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes resetField not recomputing isValid for subscribe-only consumers. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes inconsistent behavior among useController().field.onChange()-like APIs. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes useFormState failing to reconcile when an Activity subtree is hidden on its first render. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes useWatch ignoring defaultValue when watching an array of names. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes useWatch failing to reconcile when an Activity subtree is hidden on its first render. (7.87.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.87.0)
- Fixes notifications for field array item roots. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Prevents stale errors and touched state after updating a field array item. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Prevents stale field names from leaking into persisted formState. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Fixes custom validity handling when criteriaMode is set to all. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Fixes setting values for fields registered under object or array values. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Corrects keepDirty behavior when unregistering fields. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Fixes stale values when the watched name changes to null. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- Fixes validation state checks during form operation. (7.86.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.86.0)
- TypeScript error resolution is fixed for field paths. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- setValue no longer emits duplicate values state notifications. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- Field array root errors are preserved during array mutations. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- Field array paths are no longer recreated by stale renders after field array actions. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- useWatch now prefers its own defaultValue over the form's defaultValues. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- Min/max validation is no longer skipped for valueAsDate fields. (7.85.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0)
- FormState type definitions were fixed. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- The FormState export was fixed. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- The component was renamed back from FormStateSubscribe to FormState. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- setValue now updates FieldArray values correctly. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- Using values with keepDirtyValues no longer silently corrupts arrays or freezes objects during refetch. (7.84.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0)
- Old checkbox and radio elements no longer pollute internal field state. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Argument-less clearErrors() now clears internal errors state correctly. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- dirtyFields reference stability is preserved. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- useController re-subscribes onChange and onBlur when control changes. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Validation messages can be defined even when their related value is undefined. (7.83.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0)
- Preserves boolean values for dirtyFields on registered array fields. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- The FieldArray export was fixed. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0), [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- Correctly updates dirty state when shouldDirty is used while the form is disabled. (7.82.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0)
- Fixes the name value exposed through form.subscribe after clearErrors. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Makes reset trigger subscribe with the latest name instead of undefined. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Reflects a cleared parent object in controlled fields. (7.81.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.81.0)
- Controller onChange promise handling was fixed. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- createFormControl no longer breaks with Fast Refresh in development mode. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- Native validation now behaves natively for radio group field validation. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- StrictMode no longer removes a field value before the field mounts again. (7.79.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.79.0)
- Controller fields are recovered after reset without requiring a rerender. (7.78.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.78.0)
- Deep equality handling for empty non-plain objects was fixed. (7.78.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.78.0)
- Typing for field arrays with undefined entries was updated. (7.78.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.78.0)
- The isDirty race with an async resolver in onChange mode was fixed. (7.78.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.78.0)
- The reactive values prop takes precedence over defaultValues when shouldUnregister is true. (7.78.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.78.0)
- Fixes FieldArray errors overriding nested fields. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- Fixes stale isDirty values in subscribe payloads after reset with keepValues enabled. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- Fixes inconsistent reset({}) behavior that previously required a double call. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- Preserves values when shouldUnregister is enabled. (7.77.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0)
- Options are passed through setValues so validation can be enabled. (7.76.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.1)
- Whole-form changes no longer emit stale name or type values. (7.76.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.1)
- append({ obj: null }) is no longer silently replaced by defaultValues after remove(). (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Reset values are preserved for conditionally mounted Controller fields with shouldUnregister. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- defaultValues are preserved when useFieldArray and watch are used together. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Errors state is fixed when using form level validation. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- isDirty now stays synchronized with dirtyFields state. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- isValidating reactivity is fixed when validatingFields is not subscribed. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Native validation tooltip suppression caused by duplicate submit-error focus is fixed. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Nested setValue updates now notify all matching field-array roots. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Nested resolver field-array errors are preserved in trigger(). (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- TypeScript 4 compatibility is restored for Watch. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- remove no longer leaves an array with an empty object when using the values prop. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- values updates now propagate to mounted Controller fields. (7.76.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0)
- Empty nodes with false values are pruned from dirtyFields. (7.75.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.75.0)
- isDirty is recomputed after re-registering a previously unregistered field. (7.75.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.75.0)
- Watch updates are preserved when a field array unmounts. (7.75.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.75.0)
- Handles a null parent when unregistering a nested field. (7.74.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0)
- Preserves the previous field value when the useController name changes. (7.74.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0)
- Treats NaN as empty when valueAsNumber is true during field validation. (7.74.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0)
- fieldState errors are improved when resolvers use dot-notation string keys. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Nested fields are handled correctly when the parent defaultValue is null. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- register safely accesses field internals during registration. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Dirty state updates correctly after deleting an item when shouldDirty is true. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- State updates correctly in watch callbacks when used with Controller, trigger, and reset. (7.73.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1)
- Numeric string keys in defaultValues are now checked correctly for dirty state. (7.72.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.1)
- formState.isValid is now correct when a Controller remounts. (7.72.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.1)
- Using shouldDirty no longer pollutes unrelated dirty fields. (7.72.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.1)
- Checkbox form validation now works correctly with native validation. (7.72.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0)
- useFieldArray no longer marks unrelated fields as dirty. (7.72.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0)
- Targeted field updates now emit the name signal. (7.71.2) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.2)
- The WatchObserver value parameter now uses DeepPartialSkipArrayKey. (7.71.2) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.2)
- Fixed an issue with booleans_as_integers. (7.71.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.1)
- isValid now updates when a field's disabled state changes. (7.71.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.71.0)
- Improved invalid date handling in deepEqual and validation. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- DeepPartial now handles branded types correctly. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- Prevents ghost elements in field arrays when keepDirtyValues is used. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- The deprecated names prop is applied first, then overridden when the new name prop is supplied. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- Fixed an issue where native validation did not focus the expected field. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- Prevents duplicate subscription triggers when setValue is called. (7.70.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.70.0)
- Each subscription now listens only to the changes it subscribes to. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- reset now preserves isValid when keepIsValid is used. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- A race condition between setError and setFocus was resolved. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- The Watch control prop type was corrected. (7.69.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0)
- Validation errors are cleared synchronously during reset(), fixing a Next.js 16 Server Actions issue. (7.68.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.68.0)
- Allows undefined values with async defaultValues in Controller. (7.67.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.67.0)
- Corrects PathValueImpl type inference. (7.67.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.67.0)
- deepEqual now handles NaN comparisons correctly by using Object.is. (7.66.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.1)
- isValid is recomputed after reset when form values update asynchronously, keeping reported validity accurate. (7.66.1) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.1)
- watch no longer returns undefined immediately after reset. (7.66.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.0)
- Corrected the render function parameter typing for Watch. (7.66.0) — [release notes](https://github.com/react-hook-form/react-hook-form/releases/tag/v7.66.0)
