diff --git a/docs/release-notes/6.5.0/changelog.ai.txt b/docs/release-notes/6.5.0/changelog.ai.txt new file mode 100644 index 000000000..497da81e2 --- /dev/null +++ b/docs/release-notes/6.5.0/changelog.ai.txt @@ -0,0 +1,8 @@ +AI Context: 6.5.0 Changelog (changelog.mdx) + +This file tracks manual edits made after the generation script ran. +The script reads the "Skipped PRs" section to avoid re-adding removed entries. + +## Skipped PRs + +## Manual Rewrites diff --git a/docs/release-notes/6.5.0/changelog.mdx b/docs/release-notes/6.5.0/changelog.mdx new file mode 100644 index 000000000..636116b2c --- /dev/null +++ b/docs/release-notes/6.5.0/changelog.mdx @@ -0,0 +1,118 @@ +--- +id: mfffzjjg +title: Webiny 6.5.0 Changelog +description: See what's new in Webiny version 6.5.0 +--- + +import { GithubRelease } from "@/components/GithubRelease"; +import { Alert } from "@/components/Alert"; + + + +## Headless CMS + +### AI-Powered Content Generation ([#5333](https://github.com/webiny/webiny-js/pull/5333)) + +You can now generate CMS entry content using AI directly from the entry editor. A new AI button in the editor header opens a prompt dialog — describe what you want, and the generated content populates your entry fields in real time via WebSocket. The system understands your model's schema including nested objects, dynamic zones, validation rules, and predefined values. Rich text fields receive proper Lexical editor state through an internal conversion pipeline. + +### Configurable New Entry Wizard ([#5354](https://github.com/webiny/webiny-js/pull/5354)) + +You can now inject a custom wizard UI that appears before the entry form opens. This lets you gather initial values (e.g., from a template selector or AI prompt) and pre-fill the form with those values already marked as dirty. + +```typescript +import { ContentEntryEditorConfig } from "webiny/admin/cms/entry/editor"; + + + } + modelIds={["article", "blogPost"]} + /> + +``` + +### Redesigned Content Model Editor ([#5259](https://github.com/webiny/webiny-js/pull/5259), [#5289](https://github.com/webiny/webiny-js/pull/5289), [#5290](https://github.com/webiny/webiny-js/pull/5290)) + +The content model editor has been significantly redesigned. The Edit/Preview tabs now appear as a segmented control in the top bar. The fields sidebar collapses into an 80×80 icon grid with smooth animations. Field cards have been restyled with field-type icons and updated typography. Drag-and-drop uses a proper cursor overlay with label and icon instead of the previous orange circle, and drop zones have cleaner styling. The settings panel now opens in a drawer instead of a full-screen overlay. The preview tab shows a friendly empty state with an illustration and "Switch to edit mode" button when no fields exist. + +### New Revision Button for Published and Unpublished Entries ([#5352](https://github.com/webiny/webiny-js/pull/5352), [#5353](https://github.com/webiny/webiny-js/pull/5353), [#5347](https://github.com/webiny/webiny-js/pull/5347)) + +When editing a published or unpublished entry, you now see a "New Revision" button alongside "Publish". Previously, if an entry was published and then unpublished, the UI didn't make it clear how to create a new revision. The "All Revisions" option is now always visible in the revisions dropdown, and saving a locked entry automatically creates a new revision instead of failing. + +### Refactored CMS Architecture with Presenter/Feature Pattern ([#5323](https://github.com/webiny/webiny-js/pull/5323)) + +Content entries, content models, and related modules have been refactored to use a new presenter/feature architecture with dependency injection. Key improvements include: + +- Folder creation no longer triggers a full `ListFolders` reload — the cache is populated from the create response +- Sorting by name now works correctly for both folders and entries +- The `app-headless-cms-common` package is now types-only, reducing bundle size + +## Website Builder + +### Nuxt Starter Kit Configuration ([#5265](https://github.com/webiny/webiny-js/pull/5265)) + +The "Configure Next.js" option has been renamed to "Configure Starter Kit" and now includes a Nuxt tab alongside Next.js. The Nuxt tab generates ready-to-use environment configuration for the [Webiny Nuxt starter kit](https://github.com/webiny/website-builder-nuxt), pulling real deployment values (API key, API host, tenant ID, admin host) that you can copy directly into your project's `.env` file. + +### Editable Object and List Fields ([#5295](https://github.com/webiny/webiny-js/pull/5295)) + +Object fields now work in the page editor. Previously, declaring an `object` input on a component rendered nothing. Object fields now appear as clickable rows that open slide-out panels containing their child inputs. Lists of objects show as reorderable rows with add/remove/move controls and an empty state. Nested objects stack panels over each other with backdrop dimming, and all values persist correctly through the round-trip. + +### Preview Domain Trailing Slash Fix ([#5332](https://github.com/webiny/webiny-js/pull/5332)) + +Adding a trailing slash to the preview domain (e.g., `http://localhost:3000/`) no longer produces broken preview links with double slashes. The domain is now normalized automatically. + +### Always Show "All Revisions" in Page Revision Menu ([#5348](https://github.com/webiny/webiny-js/pull/5348)) + +The "All revisions" option in the revisions menu is now always visible when editing a page, regardless of how many revisions exist. Previously it could be hidden in certain states. + +### Redirects List Rewritten with ListView Component ([#5261](https://github.com/webiny/webiny-js/pull/5261)) + +The redirects list has been rewritten using the new `ListPresenter` abstraction and `ListView` compound component. This fixes a bug where folders would not display correctly when a folder had subfolders but no redirect records. + +## Admin + +### Workflow State Folder Permissions ([#5331](https://github.com/webiny/webiny-js/pull/5331)) + +Workflow states now respect Folder Level Permissions. Users only see workflow states for records in folders they can access — restricted users no longer see states for entries or pages outside their allowed folders. As part of this change, moving entries or pages with active workflow states is now blocked to prevent permission inconsistencies. + +### Real-Time AI Image Enrichment Notifications ([#5326](https://github.com/webiny/webiny-js/pull/5326)) + +When you upload an image and AI finishes generating its tags and description, you now receive an on-screen notification in real time. Only the person who uploaded the image is notified, not everyone signed in. + +### Content Reviews Widget Loading States ([#5328](https://github.com/webiny/webiny-js/pull/5328)) + +The Content Reviews dashboard widgets now show skeleton placeholders while loading and a clear empty-state illustration when a tab has no items. The widget maintains a stable height across loading, populated, and empty states with no layout jump. + +### Form Field Context and Navigation ([#5330](https://github.com/webiny/webiny-js/pull/5330)) + +Form field callbacks can now navigate the form tree to access sibling and parent fields via `IFieldScope` and `IFieldNavigator`. This enables computed, hidden, disabled, and required callbacks that depend on related field values. Dynamic zone copy/paste is also now supported. + +### Destructive Dropdown Menu Variant ([#5310](https://github.com/webiny/webiny-js/pull/5310)) + +`DropdownMenu.Item` now exposes a `variant="destructive"` prop for delete-style actions, replacing the need to copy a long className string onto every red menu item. + +```tsx + + Delete + +``` + +### Upgraded tailwind-merge to v3 ([#5263](https://github.com/webiny/webiny-js/pull/5263)) + +The internal class-merging utility used for admin UI components was updated to version 3. This ensures correct conflict resolution behavior for Tailwind CSS v4 class names, including border widths, padding, and margin utilities. + +## Development + +### Custom GraphQL Playground Built from Scratch ([#5357](https://github.com/webiny/webiny-js/pull/5357)) + +The GraphQL Playground has been completely rewritten, replacing the old CDN-loaded `graphql-playground-react` with a custom implementation built on Monaco Editor. The new playground includes several improvements: + +- **Schema Docs Explorer** — a right-side drawer for browsing the introspected schema with stack-based type navigation, search across type names, field names, arguments, and enum values, and clickable type references +- **Query History** — localStorage-backed execution history (capped at 100 entries) with search, restore-to-active-tab, open-in-new-tab, and individual delete +- **Tab-based architecture** — each tab has its own GraphQL client with independent auth and tenant headers. System tabs (Manage, Read, Preview APIs) have read-only endpoints; duplicate them to get an editable copy +- **Comment-preserving prettifier** — formats queries while keeping your comments intact + +The playground uses a DI-based `PlaygroundTabRegistry`, allowing any package to contribute its own tabs. If you need custom client behavior, implement `PlaygroundClient.Interface` or use the provided factories with custom `getToken`/`getTenant` overrides. + +### Dev Tools Permissions No Longer Duplicated Across Playground Apps ([#5338](https://github.com/webiny/webiny-js/pull/5338)) + +The GraphQL Playground and SDK Playground apps each used to register the other app's permissions as well as their own, which could show permissions for apps that weren't installed. Each app now contributes only its own permissions, and they're combined into a single "Dev Tools" group automatically. diff --git a/docs/release-notes/6.5.0/upgrade-guide.mdx b/docs/release-notes/6.5.0/upgrade-guide.mdx new file mode 100644 index 000000000..3ce061558 --- /dev/null +++ b/docs/release-notes/6.5.0/upgrade-guide.mdx @@ -0,0 +1,61 @@ +--- +id: j13g9sp9 +title: Upgrade from 6.4.x to 6.5.0 +description: Learn how to upgrade Webiny from 6.4.x to 6.5.0. +--- + +import { Alert } from "@/components/Alert"; +import { AdditionalNotes } from "@/components/upgrade/AdditionalNotes"; + + + +- how to upgrade Webiny from 6.4.x to 6.5.0 + + + + + +Make sure to check out the [6.5.0 changelog](./changelog) to get familiar with the changes introduced in this release. + + + +## Step-by-Step Guide + +### 1. Upgrade Webiny Packages + +Upgrade all Webiny packages by running the following command: + +```bash +yarn webiny upgrade 6.5.0 --debug +``` + +Note that the command above will run upgrades for all available versions of Webiny up to 6.5.0. If there are upgrades for 6.4.1, 6.4.5, they will be ran. + +You can omit the version to upgrade to the latest available: + +```bash +yarn webiny upgrade --debug +``` + +Once the upgrade has finished, running the `yarn webiny --version` command in your terminal should return **6.5.0**. + + + +If the above command fails or is not available in your setup, you can run the upgrade script directly via `npx`: + +```bash +npx https://github.com/webiny/webiny-upgrades-v6 6.5.0 --debug +``` + + + +### 2. Deploy Your Project + +Proceed by redeploying your Webiny project: + +```bash +# Execute in your project root. +yarn webiny deploy --env {environment} +``` + +