feat(frontend): enable version skew protection via deploymentId#4629
Conversation
During rolling deploys, tabs holding the old build can hit the new server's RSC routes and get inconsistent assets or shape-mismatched data. Setting `deploymentId` lets Next.js stamp assets with `?dpl=<id>` and surface `x-nextjs-deployment-id` on RSC responses; the client router detects the mismatch and hard-reloads onto fresh assets. Reuses the existing `VERSION` build arg, sanitized to the `[a-zA-Z0-9_-]` charset Next.js requires. Declares `VERSION` on the Turbo build task so strict-mode env filtering doesn't strip it before `next build` reads it.
Playwright test resultsDetails
Flaky testssetup-teams › ../auth.teams.setup.ts › setup teams and assignments Skipped testschromium › agents.spec.ts › can create and delete an LLM proxy |
🤖 I have created a release *beep* *boop* --- ## [1.2.48](platform-v1.2.47...platform-v1.2.48) (2026-05-14) ### Features * **frontend:** enable version skew protection via deploymentId ([#4629](#4629)) ([f6c00ad](f6c00ad)) ### Bug Fixes * **auth:** don't downgrade existing member role via SSO default-role … ([#4580](#4580)) ([3b02507](3b02507)) * **helm:** bound the postgres-wait init container loops ([#4657](#4657)) ([03c9d88](03c9d88)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
During rolling deploys, tabs holding the old build can hit the new server's RSC routes and get inconsistent assets or shape-mismatched data. Setting
deploymentIdlets Next.js stamp assets with?dpl=<id>and surfacex-nextjs-deployment-idon RSC responses; the client router detects the mismatch and hard-reloads onto fresh assets.Reuses the existing
VERSIONbuild arg, sanitized to the[a-zA-Z0-9_-]charset Next.js requires. DeclaresVERSIONon the Turbo build task so strict-mode env filtering doesn't strip it beforenext buildreads it.