sync: TRAC-1236 sync integrations/b2b-makeswift with integrations/makeswift@1.8.0 - #3149
Merged
chanceaclark merged 20 commits intoJul 30, 2026
Merged
Conversation
…main (#3035) The consent manager set `crossSubdomain: true`, which wrote the `c15t-consent` cookie with `domain=.<root-domain>`. For stores on a sub-domain this caused the cookie to appear on both the root domain and the sub-domain. Remove the option so the cookie is host-only and exists only on the sub-domain the store runs on. Refs TRAC-640 Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…3033) * LTRAC-297: fix(storefront) - Rewrite WYSIWYG /content image URLs Images uploaded through the Control Panel WYSIWYG editor are stored as root-relative /content/... paths. These resolve on a same-domain Stencil storefront but 404 on the headless Catalyst domain, rendering as broken images. Add a server-side transformer that rewrites src/href values starting with /content/ to absolute BigCommerce CDN URLs, and apply it to all raw-HTML surfaces: web pages, blog posts, and product description and warranty. Internal page links and already-absolute URLs are left intact. Fixes LTRAC-297 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * LTRAC-297: fix(storefront) - Also rewrite /product_images WYSIWYG paths The WYSIWYG image manager stores uploads under /product_images/... (not just /content/...). Generalize the rewrite to cover both WebDAV asset folders via a new cdnAssetUrl() helper, so image-manager images embedded in WYSIWYG content resolve to absolute CDN URLs. Refs LTRAC-297 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Enabled by upgrading to the latest Makeswift runtime
…age (#2950) fixes locale switcher issue when running with TRAILING_SLASH=true
… display (#3024) * TRAC-188: Out of the box Catalyst inclusive and exclusive of tax price display 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * TRAC-188: trim changeset migration to high-level summary 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…3046) When the store's cookie consent setting is enabled, the catalyst.visitorId and catalyst.visitId analytics cookies are no longer set or refreshed until the shopper grants measurement consent, and leftover cookies are deleted once consent is withdrawn. The currencyCode preference cookie now requires functionality consent. With no consent decision recorded yet, cookies are only allowed when the store does not require cookie consent. The proxy only starts visits on full page navigations, so granting consent mid-session now triggers a startVisit server action that sets the cookies and fires the server-side visitStartedEvent immediately. Server action POSTs no longer start visits in the proxy, which would otherwise duplicate the event fired by the action. Fixes TRAC-813 Co-authored-by: Claude <noreply@anthropic.com>
#3047) authjs.session-token and authjs.anonymous-session-token must be session cookies (no Expires attribute) to comply with Essential cookie classification requirements. - Remove maxAge from authjs.anonymous-session-token in anonymousSignIn - Strip Expires from authjs.session-token in the withAuth middleware, where Auth.js refreshes the JWT on every non-API request - Strip Expires from authjs.session-token in the auth route handler, where Auth.js sets the cookie on sign-in (not covered by middleware) - Wrap signIn and updateSession in auth/index.ts with patchSessionTokenCookies, which re-sets session token cookies via cookies().set() without Expires after Auth.js sets them — this covers the server action code path where Auth.js calls cookies().set(name, value, { expires: ... }) directly Auth.js v5 unconditionally sets Expires on session cookies with no config option to disable it. signIn/updateSession use the Next.js cookies() API rather than response headers, so those must be intercepted separately. Fixes TRAC-814 Co-authored-by: Claude <noreply@anthropic.com>
* feat(other): LOCAL-1444 delivery translation * chore(core): create translations patch --------- Co-authored-by: bc-svc-local <bc-svc-local@users.noreply.github.com>
…nd (#3055) Print a deprecation warning when `create-catalyst integration` is invoked, and hide it from `--help` (registered with { hidden: true }). The command builds integration patches by diffing git tags, which won't work once Catalyst projects ship as tarballs (no git history); it will be replaced by `catalyst upgrade`. Still functional for now — full removal is a future major. Refs LTRAC-467 Co-authored-by: Claude <noreply@anthropic.com>
….json field (#3056) Add a `catalyst` field to core/package.json (`catalyst.version` + `catalyst.ref`) so the true Catalyst version is tracked independently of the top-level `version`, which merchants may repurpose (deploy tags, Docker labels). The backend user-agent now reports `catalyst.version`, falling back to `version` for projects created before the field existed. A release-time sync script (.github/scripts/sync-catalyst-version.mts), wired into the Changesets `version` step via the `changeset:version` root script, keeps `catalyst.version`/`catalyst.ref` in lockstep with each version bump. Refs LTRAC-466 Co-authored-by: Claude <noreply@anthropic.com>
* feat(other): LOCAL-1444 delivery translation * chore(core): create translations patch --------- Co-authored-by: bc-svc-local <bc-svc-local@users.noreply.github.com>
…akeswift # Conflicts: # core/app/[locale]/(default)/blog/[blogId]/page.tsx # core/app/[locale]/(default)/page.tsx # core/app/[locale]/(default)/webpages/[id]/normal/page.tsx
…ons-b2b-makeswift @bigcommerce/catalyst-makeswift@1.8.0
Same recurring bug as every prior rung, but worse this time: the conflict-free merge inserted makeswift's own duplicate nested 'catalyst' block (wrong self-ref, @bigcommerce/catalyst-makeswift@1.8.0) right after the top-level version field, alongside b2b's own correct block at the end of the file, producing duplicate JSON keys. Removed the spurious block, reverted the top-level version to b2b's actual 1.7.0, and restored CHANGELOG.md (makeswift's own 1.8.0 entry had been pasted in wholesale). Also adds the sync changeset for this rung's bump.
🦋 Changeset detectedLatest commit: 71cff26 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Bundle Size ReportComparing against baseline from
Per-Route First Load JS
|
rtalvarez
approved these changes
Jul 30, 2026
chanceaclark
merged commit Jul 30, 2026
71cff26
into
integrations/b2b-makeswift
18 of 19 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jira: TRAC-1236
What/Why?
Rung 7 of 9 in the makeswift catch-up climb (LTRAC-1297):
1.7.0 → 1.8.0(18 commits).First rung with zero conflicts — the whole thing auto-merged (commit
b2a98557).But the recurring
package.json/CHANGELOG.mdsilent auto-merge showed up in a worse form this time, still with no conflict flagged: the merge inserted makeswift's own duplicate nestedcatalystblock ({"version": "1.8.0", "ref": "@bigcommerce/catalyst-makeswift@1.8.0"}, wrong name) right after the top-levelversionfield, while b2b's own correct block also survived at the end of the file, producing duplicate JSON keys. Removed the spurious block, reverted the top-levelversionto b2b's actual1.7.0, and restoredCHANGELOG.md(makeswift's own1.8.0entry had been pasted in wholesale, same as every prior rung). Committed as a small follow-up (71cff26) on top of the auto-merge, since there was no conflict to resolve inline. Full diff-against-ours check confirmed nothing else inpackage.jsonwas affected beyond a legitimate@makeswift/runtimebump (0.26.4 → 0.28.5, needed for the new interaction-mode navigation feature).No release-wiring guardrail concerns — those files weren't touched at all this rung.
Notable but not investigated (per the deferred-issues plan): this rung's changelog includes "Fix 404 error on switching between localized Makeswift pages... when
TRAILING_SLASH=true" — possibly related to the rung-4e2e.ymltrailing-slash finding, but not digging into that now; it'll get looked at with the rest of the deferred list after all 9 rungs land.Added
.changeset/sync-makeswift-1-8-0.mdfor this rung's own bump.Rollout/Rollback
Internal upgrade branch, no runtime/customer impact until eventually released and adopted. Rollback = revert the merge commit.
Do not squash or rebase-and-merge this PR. Use a true merge commit to preserve the merge base between
integrations/makeswiftandintegrations/b2b-makeswift.Testing
pnpm install --no-frozen-lockfileclean (Node 24).pnpm --filter @bigcommerce/catalyst-b2b-makeswift typecheck— clean (0 errors).pnpm --filter @bigcommerce/catalyst-b2b-makeswift lint— clean (0 errors, 0 warnings).core/package.jsonre-validated as valid JSON with a singlecatalystkey.