Repository navigation
Dependency compatibility sweep: React 19.3, Radix 1.6.7, Vercel Analytics 2, tooling - #118
Merged
Merged
Conversation
…tics 2, tooling Consolidated audit/upgrade pass superseding six stale Dependabot PRs. - react/react-dom 19.2.3 -> 19.3.0 (additive minor; Next 16.3.5 peer range ^19.0.0 covers it; pins kept lockstep, check:react-versions holds) - radix-ui 1.4.3 -> 1.6.7 (React 19.2 compat fixes: stale onEscapeKeyDown/onDismiss handlers, DismissableLayer useEffectEvent regression, React 19 ref-callback re-render loop; Dialog ARIA fix; 1.6.7 reverts the interim RSC regression) - @vercel/analytics 1.6.1 -> 2.0.1 (only 2.x break is Nuxt module pathing + license MIT; /next API and consent posture unchanged) - tailwindcss + @tailwindcss/postcss -> 4.3.3 (bug-fix releases only) - playwright -> 1.63.0, tsx -> 4.23.15 (test tooling) - firebase-tools 15.29.0 -> 15.30.2 (rules emulator suite unchanged: 29 pass) - actions/setup-java v5 -> v6 (same temurin/21 config) No application code changes required. Existing overrides preserved. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis dependency compatibility sweep updates React, Radix UI, Vercel Analytics, Tailwind, Playwright, Firebase tooling, tsx, and the CI Java setup action, regenerates the lockfile, and relies on comprehensive automated and visual validation to show that existing application behavior remains unchanged. Sequence diagram for CI validation with upgraded toolingsequenceDiagram
participant CI as GitHub Actions
participant Java as setup-java v6
participant Install as npm install
participant Build as Build and type checks
participant E2E as Playwright 1.63.0
participant Firebase as Firebase emulators
CI->>Java: setup-java
Java-->>CI: Temurin JDK 21
CI->>Install: npm install
Install-->>CI: Install upgraded dependency set
CI->>Build: npm run build
Build-->>CI: Build succeeds
CI->>E2E: playwright test
E2E->>Firebase: Run emulator-backed tests
Firebase-->>E2E: Rules tests pass
E2E-->>CI: Smoke tests pass
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
This was referenced Sep 23, 2026
Pre-existing bug (present on main since the accessibility PR): each slide's onFocus handler called emblaApi.scrollTo(index), and pointer clicks focus the card link — so any click re-aligned the carousel before navigation. Gate the scroll on :focus-visible so keyboard focus still brings off-screen slides into view while pointer focus does not move the track. Adds /carousel-fixture (env-gated like the other fixture routes) and a Playwright spec covering pointer click, keyboard focus-into-view, drag, and arrow navigation — coverage that was absent and would have caught this on preview. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This branch was successfully deployed
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.
Summary
Deliberate dependency audit + upgrade pass against current
main, superseding six stale Dependabot PRs (#91, #43, #41, #39, #38, #36). Each dependency was evaluated against upstream release notes and the app's actual usage before upgrading; the final combination was validated as a set.What was upgraded — and why each is compatible
react+react-domnext@16.3.5peer range^19.0.0covers it. Pins kept lockstep;check:react-versionspasses.radix-uionEscapeKeyDown/onDismisshandlers, the DismissableLayeruseEffectEventregression, a React 19 ref-callback re-render loop, and broken Dialog ARIA references. 1.6.7 reverted an interim RSC regression. DDB's surface is Dialog/Tabs/Slot only (the tour date picker is custom code).@vercel/analytics@vercel/analytics/next<Analytics />usage is unchanged; peers allow React 19 / Next ≥13. Consent/Klaro/GA4 architecture untouched.tailwindcss+@tailwindcss/postcssplaywrighttsxfirebase-toolsactions/setup-javadistribution: temurin/java-version: 21config; v6's breaking changes (Azul metadata API, Maven cache keys) don't touch this usage. Proven by this PR's CI run.Nothing was held back — every proposed upgrade passed review and validation.
Application-code changes required
None. The only non-manifest change is
actions/setup-java@v5 → @v6inci.yml. Existing securityoverrides(@opentelemetry/core,esbuild,postcss,uuid) preserved.Validation (clean
npm installon Node 24)check:react-versions— react/react-dom match at 19.3.0npx tsc --noEmit— cleannpm run lint— pass (one pre-existing jsx-ast-utils warning, unrelated)npm test— 319 pass, 0 failnpm run test:rules— 29 pass under firebase-tools 15.30.2npm run build— clean (31 pages)npx playwright test— 112 pass, 0 fail, including all 20+ tour-inquiry dialog testscheck:md-links— cleannpm audit --omit=dev— 0 vulnerabilities;npm auditshows 5 moderate findings, all insidefirebase-tools' dev-only transitive tree (csv-parse,stream-json,@opentelemetry/corevia pubsub — pre-existing class of finding; the suggested--forcefix would downgrade firebase-tools two majors, not applied)npm ls— no invalid/conflicting peers;react@19.3.0deduped across@sentry/nextjs,@vercel/analytics,@vercel/speed-insights,@mdx-js/react,embla-carousel-react,radix-uiRadix / tour-dialog regression evidence
The existing
smoke-tests/tour-inquiry.spec.tssuite is the regression harness: dialog open/close from every entry point, Escape → focus restore, calendar arrow-key navigation, past-date blocking, short-viewport scrolling, 320/375px overflow, axe audit, WhatsApp handoff,tour_inquiry_clickfiring — all pass. Manual spot-check on the production build additionally confirmed the layered dismiss order (first Escape closes the date picker, second closes the dialog) and correctrole="dialog"+aria-labelledby/aria-describedbywiring under Radix 1.6.7.Supersedes
@vercel/analytics2.0.1) — same target, incorporatedtsxtaken to 4.23.15 instead of 4.23.13radix-ui1.6.7) — same target, incorporatedfirebase-tools15.30.2) — same target, incorporatedactions/setup-javav6) — same target, incorporatedGenerated with Devin
Summary by Sourcery
Upgrade project dependencies and improve beer carousel accessibility with deterministic end-to-end interaction coverage.
New Features:
Bug Fixes:
Enhancements:
Build:
CI:
Documentation:
Tests:
Follow-up: carousel click bug found on the preview (commit
10ea91f)Preview testing surfaced a pre-existing interaction bug unrelated to the dependency upgrades (reproduced identically on
mainatd44ecb2): each carousel slide'sonFocushandler calledemblaApi.scrollTo(index), and a pointer click focuses the card link — so clicking any card re-aligned it to thealign: "start"position immediately before navigation.Fix: the scroll is now gated on
:focus-visible, so keyboard focus still scrolls an off-screen slide into view while pointer/touch focus never moves the track. Newsmoke-tests/carousel.spec.ts(via env-gated/carousel-fixture, same pattern as the other fixture routes) covers pointer click, keyboard focus-into-view, drag, and arrow navigation — the pointer test fails against the old code (728px jump) and passes with the fix. Post-fix validation: 319 unit, 29 rules, build clean, 116 Playwright pass (one SEOgotocold-start flake passed on re-run), md-links clean,npm audit --omit=dev0 vulns.