Skip to content

Release January 20, 2026#2582

Open
github-actions[bot] wants to merge 121 commits intomainfrom
changeset-release/from-canary
Open

Release January 20, 2026#2582
github-actions[bot] wants to merge 121 commits intomainfrom
changeset-release/from-canary

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Automated release PR from canary branch

@vercel
Copy link
Copy Markdown

vercel Bot commented Jan 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
graphcommerce-246 Ready Ready Preview May 8, 2026 8:03am
graphcommerce-247 Ready Ready Preview May 8, 2026 8:03am
graphcommerce-hygraph-dynamic-rows-ui Ready Ready Preview May 8, 2026 8:03am
graphcommerce-open-source Ready Ready Preview May 8, 2026 8:03am
graphcommerce-storyblok Ready Ready Preview May 8, 2026 8:03am

Request Review

Giovanni-Schroevers and others added 14 commits March 11, 2026 09:47
Contains a Storyblok renderer on pages/index & pages/[…url]
Includes multi language support and renderes for RowHeroBanner and RowLinks
…rror) halfway through

Cursor: The issue was a TTY handling bug in graphql-codegen's CLI. When running in Cursor's terminal without a proper TTY:
The spinner/progress output was suppressed
The exit code was incorrectly set to 1

The fix was to pipe gc-gql-codegen through cat, which forces proper output handling
paales and others added 8 commits May 6, 2026 10:38
…er bug

1. pages/page/[...url].tsx used getCategoryStaticPaths to enumerate paths,
   feeding category URLs into the cmsPage query. Any category URL without a
   matching CMS page identifier triggered a redirect from getStaticProps,
   which Next.js rejects during prerender — crashing the build. Return
   empty paths with fallback: 'blocking'.

2. Layout.graphql queried cmsBlocks(["footer_links_block"]) but the prop
   was destructured-and-discarded in LayoutNavigation/LayoutMinimal. Footer
   is rendered from Storyblok's globalConfig. Removed the dead query.
The example had several leftovers from a half-completed migration off
Magento CMS:

- pages/page/[...url].tsx — CMS page handler whose getStaticPaths called
  getCategoryStaticPaths (returns Magento category URLs). Feeding those
  into cmsPage caused getStaticProps to redirect during prerender, which
  Next.js rejects — crashing next build.
- Layout.graphql queried cmsBlocks(["footer_links_block"]) but the prop
  was destructured-and-discarded in both layout components — the Footer
  is fully driven by Storyblok's globalConfig.
- pages/404.tsx rendered a Magento cms_no_route CMS page with a hardcoded
  fallback if absent.

Remove the page route, the dead cmsBlocks query, the magento-cms
fallback in 404 (hardcoded text remains), and the @graphcommerce/magento-cms
dependency. The Storyblok example is now pure Storyblok for content.

Projects that need Magento CMS pages alongside Storyblok can re-add the
dep and a route.
proxy.ts had hardcoded LOCALES = ['en', 'nl'] for locale detection. Move
the logic to plugins/LocaleRedirectProxy.ts using the FunctionPlugin
system, reading locales from the storefront config so it works on any
storefront combination. proxy.ts becomes the standard managed re-export.
Move the Storyblok Visual Editor locale-routing logic from the example
into @graphcommerce/storyblok-ui as a function plugin with ifConfig:
'storyblok'. Now any project depending on @graphcommerce/storyblok-ui
gets Visual Editor locale routing automatically — no manual plugins/
file in the project.

The example's plugins/LocaleRedirectProxy.ts now only handles the
generic Accept-Language root redirect (project-level opt-in).
Auto-loaded from packages/storyblok-ui/plugins/ for any project
depending on @graphcommerce/storyblok-ui. ifConfig: 'storyblok'
guards activation. Removed from the example since it's now
inherited transitively.
If you depend on @graphcommerce/storyblok-ui you want this plugin.
…r-storyblok

drop magento-cms from the Storyblok example
paales and others added 5 commits May 7, 2026 12:24
feat(graphqlSsrClient): add instantiation with timestamp to apollo shared client
…sands group

Intl.NumberFormat.formatToParts() emits multiple parts with type: 'integer'
(one per thousands group), so key={part.type} collided. Switched to the
array index — parts are already wrapped in suppressHydrationWarning so
SSR/client divergence isn't a concern.
…licate-integer-key

Fix duplicate React key warning in NumberFormat for thousands-grouped numbers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants