~~~~~~~~~~~~~~~~
* Support for background tasks using `django-tasks` (Jake Howard)
* Add search terms report (Noah van der Meer, Sage Abdullah)
* Add the ability to apply basic Page QuerySet optimizations to `specific()` sub-queries using `select_related` & `prefetch_related` (Andy Babic)
* Increase `DATA_UPLOAD_MAX_NUMBER_FIELDS` in project template (Matt Westcott)
* Stop invalid Site hostname records from breaking preview (Matt Westcott)
* Set sensible defaults for InlinePanel heading and label (Matt Westcott)
* Limit tags autocompletion to 10 items and add delay to avoid performance issues with large number of matching tags (Aayushman Singh)
* Add the ability to restrict what types of requests a Pages supports via `allowed_http_methods` (Andy Babic)
* Allow plain strings in panel definitions as shorthand for `FieldPanel` / `InlinePanel` (Matt Westcott)
* Only allow selection of valid new parents within the copy Page view (Mauro Soche)
* Add `on_serve_page` hook to modify the serving chain of pages (Krystian Magdziarz, Dawid Bugajewski)
* Add support for `WAGTAIL_GRAVATAR_PROVIDER_URL` URLs with query string parameters (Ayaan Qadri, Guilhem Saurel)
* Add `get_avatar_url` hook to customise user avatars (James Harrington)
* Set content security policy (CSP) headers to block embedded content when serving images and documents (Jake Howard, with thanks to Ali İltizar for the initial report)
* Add `page` as a third parameter to the `construct_wagtail_userbar` hook (claudobahn)
* Enable breadcrumbs in revisions compare view (Sage Abdullah)
* Skip loading of unused JavaScript to speed up 404 page rendering (Sage Abdullah)
* Replace l18n library with JavaScript Intl API for time zone options in Account view (Sage Abdullah)
* Use explicit label for defaulting to server language in account settings (Sage Abdullah)
* Add support for specifying an operator on `Fuzzy` queries (Tom Usher)
* Remove support for Safari 15 (Thibaud Colas)
* Populate the ImageBlock alt text from the image’s default alt text when selecting a new image (Matt Westcott)
* Prevent main menu from re-rendering when clicking outside while the menu is closed (Sage Abdullah)
* Fill in the ImageBlock alt text from the image’s default alt text when converting from ImageChooserBlock (Cynthia Kiser)
* Make sure typing text at the bottom of the page editor always scrolls enough to keep the text into view (Jatin Bhardwaj)
* Add StreamField and InlinePanel interfaces support for drag-and-drop reordering of items (Thibaud Colas, Sage Abdullah)
* Add previews support for StreamField blocks inside the block picker (Sage Abdullah, Thibaud Colas)
* Fix: Improve handling of translations for bulk page action confirmation messages (Matt Westcott)
* Fix: Ensure custom rich text feature icons are correctly handled when provided as a list of SVG paths (Temidayo Azeez, Joel William, LB (Ben) Johnston)
* Fix: Prevent error on lazily loading StreamField blocks after the stream has been modified (Stefan Hammer)
* Fix: Fix sub-menus within the main menu cannot be closed on mobile (Bojan Mihelac)
* Fix: Fix animation overflow transition when navigating through subpages in the sidebar page explorer (manu)
* Fix: Ensure form builder supports custom admin form validation (John-Scott Atlakson, LB (Ben) Johnston)
* Fix: Ensure form builder correctly checks for duplicate field names when using a custom related name (John-Scott Atlakson, LB (Ben) Johnston)
* Fix: Normalize `StreamField.get_default()` to prevent creation forms from breaking (Matt Westcott)
* Fix: Prevent out-of-order migrations from skipping creation of image/document choose permissions (Matt Westcott)
* Fix: Use correct connections on multi-database setups in database search backends (Jake Howard)
* Fix: Ensure CloudFront cache invalidation is called with a list, for compatibility with current botocore versions (Jake Howard)
* Fix: Show the correct privacy status in the sidebar when creating a new page (Joel William)
* Fix: Prevent generic model edit view from unquoting non-integer primary keys multiple times (Matt Westcott)
* Fix: Ensure comments are functional when editing Page models with `read_only` `Fieldpanel`s in use (Strapchay)
* Fix: Ensure the accessible labels and tooltips reflect the correct private/public status on the live link button within pages after changing the privacy (Ayaan Qadri)
* Fix: Fix empty `th` (table heading) elements that are not compliant with accessibility standards (Jai Vignesh J)
* Fix: Ensure `MultipleChooserPanel` using images or documents work when nested within an `InlinePanel` when no other choosers are in use within the model (Elhussein Almasri)
* Fix: Ensure `MultipleChooserPanel` works after doing a search in the page chooser modal (Matt Westcott)
* Fix: Ensure new `ListBlock` instances get created with unique IDs in the admin client for accessibility and mini-map element references (Srishti Jaiswal)
* Fix: Return never-cache HTTP headers when serving pages and documents with view restrictions (Krystian Magdziarz, Dawid Bugajewski)
* Fix: Implement `get_block_by_content_path` on `ImageBlock` to prevent errors on commenting (Matt Westcott)
* Fix: Add `aria-expanded` attribute to new column button on `TypedTableBlock` to reflect menu state (Ayaan Qadri, Scott Cranfill)
* Fix: Allow page models to extend base `Page` panel definitions without importing `wagtail.admin` (Matt Westcott)
* Fix: Fix crash when loading the dashboard with only the "unlock" or "bulk delete" page permissions (Unyime Emmanuel Udoh, Sage Abdullah)
* Fix: Improve deprecation warning for `WidgetWithScript` by raising it with `stacklevel=3` (Joren Hammudoglu)
* Fix: Correctly place comment buttons next to date / datetime / time fields. (Srishti Jaiswal)
* Fix: Add missing heading and breadcrumbs in Account view (Sage Abdullah)
* Fix: Reduce confusing spacing below StreamField blocks help text (Rishabh Sharma)
* Fix: Prevent redundant calls to `Site.find_for_request()` from `Page.get_url_parts()` (Andy Babic)
* Fix: Prevent error on listings when searching and filtering by locale (Matt Westcott, Sage Abdullah)
* Fix: Add missing space in panels check warning message (Stéphane Blondon)
* Fix: Make sure alt text quality check is on by default as documented (Thibaud Colas)
* Fix: Prevent `StreamChildrenToListBlockOperation` from duplicating data across multiple StreamField instances (Joshua Munn)
* Fix: Prevent database error when calling permission_order.register on app ready (Daniel Kirkham, Matt Westcott)
* Fix: Prevent syntax error on MySQL search when query includes symbols (Matt Westcott)
* Docs: Move the model reference page from reference/pages to the references section as it covers all Wagtail core models (Srishti Jaiswal)
* Docs: Move the panels reference page from references/pages to the references section as panels are available for any model editing, merge panels API into this page (Srishti Jaiswal)
* Docs: Move the tags documentation to standalone advanced topic, instead of being inside the reference/pages section (Srishti Jaiswal)
* Docs: Refine the adding reports page so that common (page/non-page) class references are at the top and the full page only example has correct heading nesting (Alessandro Chitarrini)
* Docs: Add the `wagtail start` command to the management commands reference page (Damilola Oladele)
* Docs: Refine the project template page sections and document common issues encountered when creating custom templates (Damilola Oladele)
* Docs: Refine titles, references and URLS to better align with the documentation style guide, including US spelling (Srishti Jaiswal)
* Docs: Recommend a larger `DATA_UPLOAD_MAX_NUMBER_FIELDS` when integrating Wagtail into Django (Matt Westcott)
* Docs: Improve code highlighting and formatting for Python docstrings in core models (Srishti Jaiswal)
* Docs: Update all JavaScript inline scripts & some CSS inline style tags to a CSP compliant approach by using external scripts/styles (Aayushman Singh)
* Docs: Update usage of `mark_safe` to `format_html` for any script inclusions, to better avoid XSS issues from example code (Aayushman Singh)
* Docs: Update documentation writing guidelines to encourage better considerations of security, accessibility and good practice when writing code examples (Aayushman Singh, LB (Ben) Johnston)
* Docs: Update documentation guidelines on writing links and API reference (Sage Abdullah)
* Docs: Replace absolute URLs with intersphinx links where possible to avoid broken links (Sage Abdullah)
* Docs: Update upgrading guide and release process to better reflect the current practices (Sage Abdullah)
* Docs: Document usage of custom validation for admin form pages when using `AbstractEmailForm` or `AbstractForm` pages (John-Scott Atlakson, LB (Ben) Johnston)
* Docs: Reword `BlogTagIndexPage` example for clarity (Clifford Gama)
* Docs: Change title of blog index page in tutorial to avoid slug issues (Thibaud Colas)
* Docs: Fix `wagtailcache` and `wagtailpagecache` examples to not use quotes for the `fragment_name` (Shiv)
* Docs: Update tutorial to reflect the move of the "Add child page" action to a top-level button in the header as a '+' icon (Clifford Gama)
* Docs: Fix link to `HTTPMethod` in `Page.handle_options_request()` docs (Sage Abdullah)
* Docs: Improve the Pages Theory page with added & more consistent section headings and admonitions to aid in readability (Clifford Gama)
* Docs: Fix non-functional link to the community guidelines in the Your first contribution page (Ankit Kumar)
* Docs: Introduce tags and filters by name in "Writing templates" docs (Clifford Gama)
* Docs: Add a new headless section to the documentation, incorporating parts of the 'are we headless' website content (Sævar Öfjörð Magnússon, Alex Fulcher)
* Docs: Fix Django HTML syntax formatting issue on the documents overview page (LB (Ben) Johnston)
* Docs: Separate virtual environment creation and activation steps in tutorial (Ankit Kumar)
* Docs: Update tutorial to use plain strings in place of `FieldPanel` / `InlinePanel` where appropriate (Unyime Emmanuel Udoh)
* Docs: Update example for customizing "p-as-heading" accessibility check without overriding built-in checks (Cynthia Kiser)
* Docs: Document `get_template` method on StreamField blocks (Matt Westcott)
* Docs: Update accessibility considerations on alt text in light of contextual alt text improvements (Cynthia Kiser)
* Docs: Revert incorrect example of appending a `RichTextBlock` to a `StreamField` (Matt Westcott)
* Maintenance: Close open files when reading within utils/setup.py (Ataf Fazledin Ahamed)
* Maintenance: Avoid redundant `ALLOWED_HOSTS` check in `Site.find_for_request` (Jake Howard)
* Maintenance: Update `CloneController` to ensure that `added`/`cleared` events are not dispatched as cancelable (LB (Ben) Johnston)
* Maintenance: Remove unused `uuid` UMD module as all code is now using the NPM module (LB (Ben) Johnston)
* Maintenance: Clean up JS comments throughout codebase to be aligned to JSDoc where practical (LB (Ben) Johnston)
* Maintenance: Replace `eslint-disable no-undef` linter directives with `global` comments (LB (Ben) Johnston)
* Maintenance: Upgrade Node tooling to active LTS version 22 (LB (Ben) Johnston)
* Maintenance: Remove defunct oEmbed providers (Rahul Samant)
* Maintenance: Remove obsolete non-upsert-based code for Postgres search indexing (Jake Howard)
* Maintenance: Remove unused Rangy JS library (LB (Ben) Johnston)
* Maintenance: Update `PreviewController` usage to leverage Stimulus actions instead of calling `preventDefault` manually (Ayaan Qadri)
* Maintenance: Various performance optimizations to page publishing (Jake Howard)
* Maintenance: Remove unnecessary DOM canvas.toBlob polyfill (LB (Ben) Johnston)
* Maintenance: Ensure Storybook core files are correctly running through Eslint (LB (Ben) Johnston)
* Maintenance: Add a new Stimulus `ZoneController` (`w-zone`) to support dynamic class name changes & event handling on container elements (Ayaan Qadri)
* Maintenance: Migrate jQuery class toggling & drag/drop event handling within the multiple upload views to the Stimulus ZoneController usage (Ayaan Qadri)
* Maintenance: Test project template for warnings when run against Django pre-release versions (Sage Abdullah)
* Maintenance: Refactor redirects create/delete views to use generic views (Sage Abdullah)
* Maintenance: Add JSDoc description, adopt linting recommendations, and add more unit tests for `ModalWorkflow` (LB (Ben) Johnston)
* Maintenance: Add support for for a `delay` value in `TagController` to debounce async autocomplete tag fetch requests (Aayushman Singh)
* Maintenance: Add unit tests, Storybook stories & JSDoc items for the Stimulus `DrilldownController` (Srishti Jaiswal)
* Maintenance: Enhance sidebar preview performance by eliminating duplicate asset loads on preview error (Sage Abdullah)
* Maintenance: Remove unused `LinkController` (`w-link`) (Sage Abdullah)
* Maintenance: Refactor settings `EditView` to make better use of generic `EditView` (Sage Abdullah)
* Maintenance: Add a new Stimulus `RulesController` (`w-rules`) to support declarative conditional field enabling from other field values in a form (LB (Ben) Johnston)
* Maintenance: Migrate the conditional enabling of fields in the image URL builder view away from ad-hoc jQuery to use the `RulesController` (`w-rules`) approach (LB (Ben) Johnston)
* Maintenance: Enhance the Stimulus `ZoneController` (`w-zone`) to support inactive class and a mechanism to switch the mode based on data within events (Ayaan Qadri)
* Maintenance: Use the Stimulus `ZoneController` (`w-zone`) to remove ad-hoc jQuery for the privacy switch when toggling visibility of private/public elements (Ayaan Qadri)
* Maintenance: Remove unused `is_active` & `active_menu_items` from `wagtail.admin.menu.MenuItem` (Srishti Jaiswal)
* Maintenance: Only call `openpyxl` at runtime to improve performance for projects that do not use `ReportView`, `SpreadsheetExportMixin` and `wagtail.contrib.redirects` (Sébastien Corbin)
* Maintenance: Adopt the update value `mp` instead of `mm` for 'mystery person' as the default Gravatar if no avatar found (Harsh Dange)
* Maintenance: Refactor search promotions views to use generic views and templates (Sage Abdullah, Rohit Sharma)
* Maintenance: Use built-in `venv` instead of `pipenv` in CircleCI (Sage Abdullah)
* Maintenance: Add a new Stimulus `FormsetController` (`w-formset`) to support dynamic formset insertion/deletion behavior (LB (Ben) Johnston)
* Maintenance: Enable breadcrumbs by default on admin views using generic templates (Sage Abdullah)
* Maintenance: Refactor pages `revisions_revert` view to be a subclass of `EditView` (Sage Abdullah)
* Maintenance: Move images and documents `get_usage().count()` call to view code (Sage Abdullah)
* Maintenance: Upgrade sass-loader to resolve Sass deprecation warnings (Ayaan Qadri)