Skip to content

Conversation

@brkalow
Copy link
Member

@brkalow brkalow commented Dec 5, 2025

Description

Adds change files related to core 3 changes to the upgrade CLI.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Summary by CodeRabbit

  • Documentation
    • Added comprehensive Core 3 migration guides covering ~22 breaking changes: API restructuring (checkout, setActive), removed/renamed props and properties (e.g., billing props, sign-out/redirect props, activeSessions → sessions, saml → enterprise_sso, samlAccount → enterpriseAccount), appearance/config changes (layout → options, color/backdrop opacity, optional fields default), import/export and runtime requirements (types export path, UI themes path, Node.js 20.9.0+, Expo 53+, Next.js encryption key), and Nuxt routing/defaults.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Dec 5, 2025

🦋 Changeset detected

Latest commit: 64b9db1

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel
Copy link

vercel bot commented Dec 5, 2025

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

Project Deployment Preview Comments Updated (UTC)
clerk-js-sandbox Ready Ready Preview Comment Dec 9, 2025 3:07am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 5, 2025

Walkthrough

Adds ~20 upgrade-guide Markdown entries under packages/upgrade/src/versions/core-3/changes documenting breaking changes, property/API renames or removals, behavior defaults, environment/version requirements, and import path adjustments for the v3 upgrade.

Changes

Cohort / File(s) Summary
Property & API Removals
packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md, packages/upgrade/src/versions/core-3/changes/billing-props-removed.md, packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md, packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md, packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md, packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md
Documentation entries describing removed properties and helpers with migration guidance and replacement patterns.
Renames & Strategy Changes
packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md, packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md, packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md, packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md
Documents systematic renames (samlAccount → enterpriseAccount, saml → enterprise_sso, userSettings.saml → enterpriseSSO, _unstable* → _internal*).
Redirects & Navigation API Updates
packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md, packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md
Documents removal/replacement of redirect props and callback signature change (beforeEmit → navigate) with examples.
Appearance, Theme & UI Changes
packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md, packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md, packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md, packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md
Notes configuration structure rename (layout → options), CSS variable opacity behavior, default showOptionalFields change, and theme export path update.
Routing & Experimental Prefixes
packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md, packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md
Documents standardization of experimental prefix to __experimental_ and Nuxt components defaulting to path routing (with opt-in for hash).
Environment & Dependency Requirements
packages/upgrade/src/versions/core-3/changes/expo-min-version.md, packages/upgrade/src/versions/core-3/changes/min-node-version.md, packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
Documents minimum Expo and Node versions and new CLERK_ENCRYPTION_KEY requirement for Next.js middleware.
Type & API Structure Changes
packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md, packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
Documents deprecation of @clerk/types in favor of @clerk/shared/types, and restructure of checkout API (hook/Clerk.checkout now return a checkout object with methods/properties).
Misc / Meta
.changeset/twenty-snakes-smile.md
Adds an empty changeset metadata file.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Mostly homogeneous documentation additions using consistent front-matter + examples.
  • Pay attention to:
    • Accuracy of matcher regexes and file path references in front matter.
    • Correctness of example diffs showing exact prop/name changes.
    • Any docs that claim public API removals/renames (client.activeSessions, setActive beforeEmit) to ensure wording matches actual codebase behavior.

Poem

🐇 I hopped through twenty files today,

Notes of renames and routes in play.

Props retired, new names to chase—

I left migration crumbs in every place! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically describes the main change: adding change documentation files for Core 3 to the upgrade CLI tool.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch brk.feat/core-3-changes

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ee56f52 and 64b9db1.

📒 Files selected for processing (3)
  • .changeset/twenty-snakes-smile.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .changeset/twenty-snakes-smile.md
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}

📄 CodeRabbit inference engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
**/*.{md,tsx}

📄 CodeRabbit inference engine (.cursor/rules/development.mdc)

Update documentation for API changes

Files:

  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
**/*.{js,ts,jsx,tsx,json,md,yml,yaml}

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Use Prettier for code formatting across all packages

Files:

  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
🪛 markdownlint-cli2 (0.18.1)
packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md

17-17: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (29)
  • GitHub Check: Unit Tests (shared, clerk-js, RQ)
  • GitHub Check: Static analysis
  • GitHub Check: Unit Tests (**)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (machine, chrome, RQ)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (billing, chrome, RQ)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Integration Tests (handshake, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md (1)

1-35: LGTM!

The documentation is well-structured with clear before/after examples for both React Hook and Vanilla JS APIs. The code examples effectively demonstrate the breaking changes and migration path. Front matter is properly formatted.


Comment @coderabbitai help to get the list of available commands and usage tips.

Base automatically changed from brk.feat/upgrade-cli-core-3 to main December 8, 2025 22:54
@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 9, 2025

Open in StackBlitz

@clerk/agent-toolkit

npm i https://pkg.pr.new/@clerk/agent-toolkit@7386

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@7386

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@7386

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@7386

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@7386

@clerk/dev-cli

npm i https://pkg.pr.new/@clerk/dev-cli@7386

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@7386

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@7386

@clerk/express

npm i https://pkg.pr.new/@clerk/express@7386

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@7386

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@7386

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@7386

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@7386

@clerk/react

npm i https://pkg.pr.new/@clerk/react@7386

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@7386

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@7386

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@7386

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@7386

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@7386

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@7386

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@7386

commit: 64b9db1

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md (1)

8-8: Minor: Update hyphenation style for compound modifier. Per LanguageTool, "sign up" should be "sign-up" when used as a compound modifier/noun in technical documentation. Change "during sign up" to "during sign-up".

- The default value of `appearance.layout.showOptionalFields` (now `appearance.options.showOptionalFields`) has changed from `true` to `false`. Optional fields are now hidden by default during sign up.
+ The default value of `appearance.layout.showOptionalFields` (now `appearance.options.showOptionalFields`) has changed from `true` to `false`. Optional fields are now hidden by default during sign-up.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ff335a0 and ee56f52.

📒 Files selected for processing (23)
  • packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/billing-props-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/expo-min-version.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/min-node-version.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md (1 hunks)
  • packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}

📄 CodeRabbit inference engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md
  • packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
  • packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md
  • packages/upgrade/src/versions/core-3/changes/expo-min-version.md
  • packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md
  • packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/billing-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md
  • packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md
  • packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md
  • packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md
  • packages/upgrade/src/versions/core-3/changes/min-node-version.md
  • packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md
  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md
  • packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md
  • packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md
  • packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md
  • packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md
**/*.{md,tsx}

📄 CodeRabbit inference engine (.cursor/rules/development.mdc)

Update documentation for API changes

Files:

  • packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md
  • packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
  • packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md
  • packages/upgrade/src/versions/core-3/changes/expo-min-version.md
  • packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md
  • packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/billing-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md
  • packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md
  • packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md
  • packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md
  • packages/upgrade/src/versions/core-3/changes/min-node-version.md
  • packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md
  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md
  • packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md
  • packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md
  • packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md
  • packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md
**/*.{js,ts,jsx,tsx,json,md,yml,yaml}

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Use Prettier for code formatting across all packages

Files:

  • packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md
  • packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md
  • packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md
  • packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md
  • packages/upgrade/src/versions/core-3/changes/expo-min-version.md
  • packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md
  • packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/billing-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md
  • packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md
  • packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md
  • packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md
  • packages/upgrade/src/versions/core-3/changes/min-node-version.md
  • packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md
  • packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md
  • packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
  • packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md
  • packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md
  • packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md
  • packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md
  • packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md
  • packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md
🪛 LanguageTool
packages/upgrade/src/versions/core-3/changes/show-optional-fields-default.md

[grammar] ~8-~8: Use a hyphen to join words.
Context: ...ds are now hidden by default during sign up. To restore the previous behavior, e...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md

17-17: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (28)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (machine, chrome, RQ)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (billing, chrome, RQ)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (handshake, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Build Packages
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (23)
packages/upgrade/src/versions/core-3/changes/color-ring-backdrop-opacity.md (1)

1-21: LGTM! Clear and well-structured breaking change documentation.

The front matter is properly formatted with appropriate metadata (matcher, category, warning), and the documentation clearly communicates:

  • What changed: opacity behavior of CSS variables
  • Why it matters: users may have relied on the previous 15% opacity
  • How to fix it: provide an actionable code example with exact migration path

The diff example effectively demonstrates the adjustment needed for users who want to preserve the previous visual behavior.

packages/upgrade/src/versions/core-3/changes/nuxt-routing-strategy-default-path.md (1)

1-28: LGTM!

The documentation clearly explains the breaking change in the routing default behavior, provides the list of affected components, and includes a straightforward migration example. The YAML frontmatter is properly structured, and the markdown is well-formatted.

packages/upgrade/src/versions/core-3/changes/nuxt-getauth-removed.md (1)

1-21: LGTM!

The documentation clearly describes the removal of the deprecated getAuth() helper and provides a concise, accurate migration path with a before/after diff example. The YAML frontmatter is properly structured, and the markdown formatting is clean and readable.

packages/upgrade/src/versions/core-3/changes/min-node-version.md (1)

1-17: LGTM!

The documentation file is well-structured, accurately describes the Node.js version upgrade requirement, and includes a clear before/after code example. The YAML front matter is correctly formatted with proper regex escaping for the matcher pattern to identify outdated node engine constraints in package.json files.

packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md (1)

1-16: Documentation structure and content look good.

The YAML frontmatter is well-structured with appropriate metadata for the upgrade guide system. The explanation of the breaking change is clear and concise, and the example code block is properly formatted. The regex matcher should effectively identify code patterns that need this migration.

packages/upgrade/src/versions/core-3/changes/saml-account-renamed.md (1)

1-15: Clear and well-targeted documentation with appropriate matcher.

The rename documentation is concise and accurate. The samlAccount matcher is appropriately specific to avoid false positives when users search for required code changes.

packages/upgrade/src/versions/core-3/changes/saml-to-enterprise-sso.md (1)

1-12: Verify matcher specificity to avoid false positives.

The saml matcher is broad and will match any occurrence of the substring "saml" (e.g., in samlAccount, comments, variable names). Compared to related files which use more specific matchers (samlAccount in file 1, regex context in file 3), this could produce excessive false positives in the upgrade guide search.

Confirm that the upgrade CLI tool either:

  • Filters matches by context (e.g., only within strategy assignments), or
  • Has additional logic to reduce false positives

Otherwise, consider a more constrained matcher pattern.

packages/upgrade/src/versions/core-3/changes/user-settings-saml-renamed.md (1)

1-13: Well-documented property rename with context-aware matcher.

The regex matcher UserSettings[\\s\\S]*?saml is more context-specific than the simple string matchers in related files, which reduces false-positive risk. The documentation clearly conveys the required change.

packages/upgrade/src/versions/core-3/changes/experimental-prefix-aligned.md (1)

1-16: LGTM!

The file clearly documents the experimental prefix standardization with accurate examples and proper structure for the upgrade guide.

packages/upgrade/src/versions/core-3/changes/ui-themes-export-path.md (1)

1-16: LGTM!

The file documents the export path migration clearly with accurate examples. The matcher patterns appropriately catch both the standardized prefix and potential older variations.

packages/upgrade/src/versions/core-3/changes/appearance-layout-to-options.md (1)

1-20: LGTM! The breaking change documentation is clear, the frontmatter is correctly structured, and the code example effectively illustrates the upgrade path.

packages/upgrade/src/versions/core-3/changes/after-switch-organization-url-removed.md (1)

1-14: LGTM! The deprecation removal documentation is concise and the replacement prop is clearly indicated.

packages/upgrade/src/versions/core-3/changes/hide-slug-removed.md (1)

1-15: LGTM! The documentation clearly explains the removal and provides appropriate guidance to migrate via the Clerk Dashboard.

packages/upgrade/src/versions/core-3/changes/deprecated-redirect-props-removed.md (1)

1-29: LGTM! The documentation effectively covers all removed legacy redirect props with comprehensive examples for both fallback and forced redirect scenarios.

packages/upgrade/src/versions/core-3/changes/client-active-sessions-removed.md (1)

1-12: LGTM! The deprecation removal documentation is clear with an appropriate regex matcher for property access.

packages/upgrade/src/versions/core-3/changes/clerk-types-deprecation.md (1)

1-18: LGTM! The deprecation documentation is comprehensive, provides clear import migration guidance, and appropriately notes backward compatibility.

packages/upgrade/src/versions/core-3/changes/unstable-to-internal.md (1)

1-25: Documentation accurately reflects the API naming patterns. The underscore patterns in the migration guide are correct—confirmed by the codemod test fixtures that document the actual transformation:

  • @clerk/clerk-js methods use __unstable__ (double underscore after "unstable")
  • @clerk/nextjs methods use __unstable_ (single underscore after "unstable")
  • @clerk/chrome-extension uses __unstable__ before being renamed to createClerkClient

These patterns match the historical API names that were migrated to __internal_* prefixes in commit e35960f. No changes needed.

packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md (1)

8-26: Clear migration path with good examples.

The content provides three practical alternatives for configuring sign-out redirects, with accurate code examples. Migration guidance is straightforward.

packages/upgrade/src/versions/core-3/changes/billing-props-removed.md (1)

1-14: Concise and complete deprecation notice.

The documentation clearly identifies the three removed unstable properties, provides appropriate guidance (contact support), and the matcher array aligns with the listed props. No concerns.

packages/upgrade/src/versions/core-3/changes/set-active-before-emit-removed.md (1)

1-22: Clear callback signature migration guidance.

The diff-based example effectively shows the before/after for the beforeEmitnavigate callback change, and the explanation clearly describes the updated callback signature and return value. Well structured.

packages/upgrade/src/versions/core-3/changes/checkout-api-changed.md (1)

10-35: Comprehensive API migration for checkout with both React and Vanilla JS examples.

The documentation covers both the React Hook and Vanilla JS APIs, showing the substantial refactoring from individual destructured fields to a structured checkout object. The diff blocks clearly show the old and new patterns. The follow-up code snippets (lines 17–21 and 31–34) effectively illustrate the new API structure.

packages/upgrade/src/versions/core-3/changes/expo-min-version.md (2)

1-24: Markdown content and structure look good.

The documentation is clear, the YAML front matter is properly structured, and the code example with upgrade command effectively communicates the breaking change.


4-4: The matcher regex pattern is correct.

The pattern (?:^|~|>|=|\\s)* includes ^ as a literal character representing the caret operator in npm semantic versioning (e.g., "expo": "^52.0.0"). It is not a regex anchor in this context. The caret operator allows minor and patch-level changes. This pattern correctly matches all valid version specifiers and aligns with similar matchers elsewhere in the codebase, such as min-node-version.md.

CLERK_ENCRYPTION_KEY=your-encryption-key
```

More information: https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Wrap the bare URL in markdown link syntax.

The bare URL on line 17 violates the MD034 (no-bare-urls) markdownlint rule. Wrap the URL in markdown link syntax or angle brackets for proper formatting.

Apply this diff to fix the bare URL:

-More information: https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys
+More information: [Clerk middleware documentation](https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys)

Alternatively, wrap it in angle brackets:

-More information: https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys
+More information: <https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
More information: https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys
More information: [Clerk middleware documentation](https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys)
Suggested change
More information: https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys
More information: <https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys>
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

17-17: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In
packages/upgrade/src/versions/core-3/changes/nextjs-encryption-key-required.md
around line 17, the bare URL
"https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys" violates
MD034; wrap it using markdown link syntax like [More
information](https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys)
or enclose it in angle brackets
<https://clerk.com/docs/reference/nextjs/clerk-middleware#dynamic-keys> to fix
the lint error and update the file accordingly.

@@ -0,0 +1,26 @@
---
title: '`UserButton` sign-out redirect props removed'
matcher: '<UserButton[\\s\\S]*?(afterSignOutUrl|signOutUrl)[\\s\\S]*?>'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify what signOutUrl prop is and why it's matched.

The matcher regex includes both afterSignOutUrl and signOutUrl, but the documentation only explains the removal of sign-out redirect override props in general. Explicitly name both removed props in the content (or update the matcher if only one prop is being removed) to avoid ambiguity about what was deprecated.

🤖 Prompt for AI Agents
In
packages/upgrade/src/versions/core-3/changes/userbutton-signout-props-removed.md
around line 3, the regex matcher references both afterSignOutUrl and signOutUrl
but the markdown only generically mentions "sign-out redirect override props";
update the documentation to explicitly list both removed props (afterSignOutUrl
and signOutUrl) and explain that both were deprecated/removed, or if only one
prop was intended, adjust the matcher to match only that specific prop; ensure
the text and the matcher stay consistent so readers know exactly which props
were removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants