Add --site to vizy/anchors/backfill for multi-site targeting. #364
Log info when Vizy skips or discards block definitions (nesting depth limit, missing field layout), so CP “Unable to parse block definition” cases are visible in storage/logs. #364
Fixed
Fix MatrixAnchor FK failures when Matrix lives inside nested Vizy (synthetic Block rand() ids were used as parentOwnerId). #364
Fix vizy/anchors/backfill --elementId= finding 0 rows on multi-site installs (use site('*') unless --site= is set). #364
Fix nested Vizy fields showing “Unable to parse block definition” after enough sibling instances on the same entry (recursive depth counter never decremented). #364
Fix ElementEditor detecting unsaved changes on load by not stamping matrixAnchorUid: null onto blocks that never had an anchor, and by not wiping stored block field values when a nested field fails to render in the portal (e.g. missing field type). #364
Fix ElementEditor autosaving a provisional draft on load when portal sync rewrote empty nested fields ([] / "[]" → "") and when portals attach (pause FormObserver only around portal DOM moves; strip vizyData from serializeForm). #364
Fix UnsupportedSiteException when enabling an entry for a new site in a section using “custom” propagation (MatrixAnchor now derives its supported sites from the owner element being saved, including unpropagated sites).
3.2.5 2026-08-20
Added
Add --verbose/-v and --dry-run to vizy/anchors/backfill, with field usage, nesting, and plugin context on failures. #364
Fixed
Fix vizy/anchors/backfill throwing InvalidFieldException when a Vizy field isn’t present on an element’s field layout. #364
Fix vizy/anchors/backfill to resave like Craft’s resave/* commands (preserve dateUpdated, skip search-index updates). #364
Fix Matrix-in-Vizy content loss when migrating legacy JSON onto MatrixAnchor (layoutElement null during nested save). #364
Fix Matrix-in-Vizy saves to keep JSON until nested entries have successfully persisted on the anchor. #364
Fix MatrixAnchor GC deleting live nested content when a draft/revision save runs gcOrphans. #364
Fix an error when inserting links on non-multi site installs.
Fix an error when trying to deserialize HTML content.
Fix Vizy Block group name being incorrectly saved as uppercase.
Fix custom-registered Vizy extensions being globally enabled for all Vizy fields.
3.0.3 2024-08-14
Fixed
Fix an issue with multiple Vizy editors with different formatting or table configs.
Fix buttons styles not working correctly.
3.0.2 2024-08-11
Fixed
Fix some click events in Vizy Block fields not triggering change event listener.
Fix an error when initializing Vizy fields multiple times.
Fix incorrect field serialization when in live preview.
Fix Live Preview detection.
Fix compatibility with Hyper.
3.0.1 2024-07-21
Added
Add the ability to set links to current site, or specific site for element-based links.
Changed
Change change-detection mechanism incorrectly flagging changed JSON due to discrepancies with PHP vs JS JSON encoding.
Fixed
Fix an error when creating search indexes.
Fix default site for Link nodes.
Fix Image node URLs not being dynamics when non-transforms are selected.
Fix default transform value for Image nodes.
Fix change detection mechanism for Vizy Blocks.
3.0.0 2024-05-18
Added
Add the Craft.Vizy.Config.registerTemplates() JS function for custom extensions to render their own template in a Vizy field.
Changed
Now requires PHP 8.2.0+.
Now requires Craft 5.0.0+.
Update Vizy block header actions to use an ellipsis icon instead of a settings cog.
Vizy block inner custom fields now save custom field content via the field’s layoutElementUid instead of their handle.
Fixed
Fix an error for Image nodes, where the id attribute didn’t reflect an Asset Element ID.
Fix an error when saving Vizy blocks in some scenarios, where blocks incorrectly had an invalid ID.
Fix content changes being detected for nested fields when there are none. In addition, Vizy fields only listen for changes to their content when interacted with.
Fix field layout designer in settings not serializing changes correctly.