Skip to content

3.1026.0

Choose a tag to compare

@vc-ci vc-ci released this 21 Sep 11:13
· 10 commits to master since this release
6f71972
feat(VCST-4933): add Page Builder Shared Components (#159)

* VCST-4933: Add Page Builder shared components

* VCST-4933: Open usage pages in designer

* VCST-4933: Harden shared component workflows

* fix(VCST-4933): resolve PageBuilder quality gate findings

* fix(VCST-4933): clear remaining PageBuilder analyzer findings

* refactor(VCST-4933): rename linked components to shared components

* fix(VCST-4933): mark migrations as generated

* refactor(VCST-4933): remove shared component asset index backfill

* refactor(VCST-4933): simplify shared component architecture

* fix(VCST-4933): satisfy Sonar reliability analysis

* fix(VCST-4933): clear remaining Sonar findings

* fix(VCST-4933): harden Shared Component expansion on the indexing path

Fall back to the page's own change date when the effective-date lookup has no
entry for it. The lookup skips pages without an id, so indexing the dictionary
directly aborted the whole indexation cycle on the first such row.

Skip a page whose content cannot be expanded instead of failing the batch it
belongs to. A malformed componentRef marker from an import or a manual edit
previously denied indexation to every other page in the same batch, in both the
content provider and the page-changed handler.

Load the Shared Components referenced by a batch in one round trip through
LoadReferencedComponentsAsync plus the pure Expand step. Resolving page by page
opened a repository and queried the component contents per page, so a component
reused across the batch was read once per page that used it.

* fix(VCST-4933): address shared component QA feedback

* fix: address Sonar findings in PageBuilder content provider

* refactor(VCST-4933): expose the Page Builder content provider name as a constant

The provider name is a public contract: consumers select the Page Builder
content provider by it (the standalone preview in XCMS does). Keeping it as a
literal inside the provider means a rename compiles cleanly and silently turns
such lookups into a fallback, so publish it from ModuleConstants instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Basil Kotov <basilkot@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Aleksandra-Mitricheva <54628043+Aleksandra-Mitricheva@users.noreply.github.com>