## Related Issues
Mutations are reworked to be independent from notifiers and do not
require code-gen.
## Checklist
Before you create this PR confirm that it meets all requirements listed
below by checking the relevant checkboxes (`[x]`).
- [x] I have updated the `CHANGELOG.md` of the relevant packages.
Changelog files must be edited under the form:
```md
## Unreleased fix/major/minor
- Description of your change. (thanks to @yourGithubId)
```
- [x] If this contains new features or behavior changes,
I have updated the documentation to match those changes.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new mutation system that no longer requires code
generation, enabling UI to react to side-effects with loading, success,
and error states.
- Added experimental mutation APIs to Riverpod, Flutter Riverpod, and
Hooks Riverpod packages for enhanced state management.
- Included new mixins and interfaces to simplify creating custom
provider listenables.
- Added widget test helpers and improved mutation state matchers for
testing.
- **Bug Fixes**
- Enhanced error handling and reporting during mutation lifecycle
events.
- Fixed issues with Notifier lifecycle and provider observer context
related to mutations.
- **Refactor**
- Removed legacy mutation annotation logic and related code from
analyzer, generator, and annotation packages.
- Simplified generated provider classes by removing explicit element
creation overrides.
- Updated internal APIs to replace `MutationContext` with direct
`Mutation` usage and adjusted related observer interfaces.
- **Documentation**
- Revised mutation feature documentation to reflect new API design
without code generation.
- Corrected migration guide links and updated changelogs to reflect
annotation and mutation system changes.
- **Tests**
- Added extensive mutation tests covering state transitions,
concurrency, reset behavior, and observer notifications.
- Improved test utilities with new matchers for mutation states and
context.
- **Chores**
- Removed obsolete mutation-related test files, templates, and internal
annotation handling to maintain codebase clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This changes the Persist syntax a bit to simplify its usage.
This removes the `with Persistable`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new `persistJson` method for JSON-based state
persistence, simplifying how persistence is integrated and allowing for
custom encoding/decoding.
- Added a `key` getter to provide default storage keys for persisted
providers.
- Exposed `NotifierPersistX` and related persistence utilities for
broader use in persistence scenarios.
- **Refactor**
- Unified and updated type signatures for notifiers and persistence
methods, improving type safety and consistency across providers.
- Simplified persistence API usage by removing the need for mixins and
named parameters, favoring direct method calls with positional
arguments.
- **Documentation**
- Updated documentation and code examples to reflect the new persistence
API and usage patterns.
- **Tests**
- Enhanced test coverage to validate the new persistence approach and
updated type signatures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Documentation**
- Updated website guides and testing examples to clearly demonstrate
improved asynchronous state handling and data retrieval.
- Adjusted analyzer settings for a smoother documentation experience.
- **New Features**
- Introduced a refined approach for managing asynchronous states,
providing more consistent behavior during loading and error conditions.
- **Refactor**
- Phased out legacy asynchronous properties in favor of a more robust
implementation.
- **Tests**
- Expanded testing coverage to validate the enhanced lint rules and
asynchronous patterns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated all Dart SDK constraints to "^3.6.0", added a unified
workspace resolution key, and removed obsolete local dependency override
configurations.
- **CI/CD Improvements**
- Streamlined workflows and refined testing/coverage scripts by removing
outdated steps.
- **Tooling Enhancements**
- Introduced a new build generation script to automate build-runner
tasks.
- **Refactor**
- Applied minor code style refinements, including simplified constructor
syntax and streamlined control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
In the official Dart `analysis_server` , when converting between
Flutter's `StatefulWidget` and `StatelessWidget`, the `widget` field
used in `StatefulWidget` is automatically added or removed.
However, this was not supported in the Assists within riverpod_lint.
In this PR, I have improved it to include the migration of that field in
the conversion.