Skip to content

fix(backend): Update Subscription and SubscriptionItem resources#9196

Open
dstaley wants to merge 2 commits into
mainfrom
ds.fix/backend-sub-subitem
Open

fix(backend): Update Subscription and SubscriptionItem resources#9196
dstaley wants to merge 2 commits into
mainfrom
ds.fix/backend-sub-subitem

Conversation

@dstaley

@dstaley dstaley commented Jul 17, 2026

Copy link
Copy Markdown
Member

Description

This PR updates the parsing logic for BillingSubscription and BillingSubscriptionItem in the @clerk/backend package to align with the latest response shapes for the Backend API.

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:

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Jul 17, 2026 9:02pm
swingset Ready Ready Preview, Comment Jul 17, 2026 9:02pm

Request Review

@changeset-bot

changeset-bot Bot commented Jul 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d40a9c3

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

This PR includes changesets to release 10 packages
Name Type
@clerk/backend Minor
@clerk/astro Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/hono Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch

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

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Billing subscription JSON contracts now include instance, pricing, totals, and seat fields. Shared billing converters normalize nested billing data, and subscription resources expose the converted structures through updated factories and constructors.

Changes

Layer Summary
Billing JSON contracts Subscription and subscription-item JSON types add instance identifiers and structured payment, pricing, lifetime-payment, and seat fields.
Billing conversion helpers New helpers convert billing amounts, totals, credits, discounts, period totals, and seat breakdowns into typed objects.
Subscription resource parsing Subscription resources normalize the expanded billing data through updated constructors and fromJSON factories. A minor backend changeset was added.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: alexisintech

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the backend changes to Subscription and SubscriptionItem resources.
Description check ✅ Passed The description matches the PR by explaining the backend parsing updates for BillingSubscription and BillingSubscriptionItem.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/tame-bats-tell.md:
- Around line 2-5: Update the changeset entry for `@clerk/backend` from minor to
major to reflect the breaking BillingSubscription and BillingSubscriptionItem
API changes, and add migration guidance covering the constructor shape and
nextPayment.amount type updates.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 544eaf57-70d6-4fc0-820a-de60667aa155

📥 Commits

Reviewing files that changed from the base of the PR and between 26530ce and 1cbd099.

📒 Files selected for processing (5)
  • .changeset/tame-bats-tell.md
  • packages/backend/src/api/resources/CommerceSubscription.ts
  • packages/backend/src/api/resources/CommerceSubscriptionItem.ts
  • packages/backend/src/api/resources/JSON.ts
  • packages/backend/src/util/billing.ts

Comment on lines +2 to +5
'@clerk/backend': minor
---

Update fields for BillingSubscription and BillingSubscriptionItem

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

cat packages/backend/package.json
rg -n -C 3 '\b(BillingSubscription|BillingSubscriptionItem)\b' packages/backend/src

Repository: clerk/javascript

Length of output: 24693


🏁 Script executed:

#!/bin/bash
set -euo pipefail

sed -n '1,140p' packages/backend/src/api/resources/CommerceSubscription.ts
printf '\n---\n'
sed -n '1,140p' packages/backend/src/api/resources/CommerceSubscriptionItem.ts
printf '\n---\n'
sed -n '140,190p' packages/backend/src/index.ts
printf '\n---\n'
sed -n '1,80p' .changeset/tame-bats-tell.md

Repository: clerk/javascript

Length of output: 10343


Require a major changeset for the Billing API surface BillingSubscription and BillingSubscriptionItem are exported from @clerk/backend, so the constructor shape and nextPayment.amount type change are breaking API changes. Update this changeset to major and add migration guidance.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/tame-bats-tell.md around lines 2 - 5, Update the changeset entry
for `@clerk/backend` from minor to major to reflect the breaking
BillingSubscription and BillingSubscriptionItem API changes, and add migration
guidance covering the constructor shape and nextPayment.amount type updates.

Source: Coding guidelines

@pkg-pr-new

pkg-pr-new Bot commented Jul 17, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9196

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9196

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9196

@clerk/expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9196

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/react

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

@clerk/react-router

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/ui

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

@clerk/upgrade

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

@clerk/vue

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

commit: d40a9c3

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-07-17T21:05:11.397Z

Summary

Metric Count
Packages analyzed 19
Packages with changes 1
🔴 Breaking changes 7
🟡 Non-breaking changes 3
🟢 Additions 8

Warning
7 breaking change(s) detected - Major version bump required

🤖 This report was reviewed by claude-sonnet-4-6.

🔴 Breaking changes index (7)

Every breaking change, up front. Full diffs are in the package sections below.

Package Subpath Change
@clerk/backend . BillingSubscription.undefined
@clerk/backend . BillingSubscriptionItem.undefined
@clerk/backend . BillingSubscriptionItem.isFreeTrial
@clerk/backend . BillingSubscriptionItem.nextPayment
@clerk/backend . BillingSubscriptionItemJSON.amount
@clerk/backend . BillingSubscriptionItemJSON.is_free_trial
@clerk/backend . BillingSubscriptionItemJSON.next_payment

@clerk/backend

Current version: 3.11.7
Recommended bump: MAJOR → 4.0.0

🔴 Breaking Changes (7)

Changed: BillingSubscription.undefined

  constructor(
      id: string, 
+     instanceId: string, 
      status: BillingSubscriptionJSON['status'], 
      payerId: string, 
      createdAt: number, 
      updatedAt: number, 
      activeAt: number | null, 
      pastDueAt: number | null, 
      subscriptionItems: BillingSubscriptionItem[], 
      nextPayment: {
          date: number;
          amount: BillingMoneyAmount;
+         perUnitTotals?: BillingPerUnitTotal[];
+         totals?: BillingTotals;
      } | null, 
      eligibleForFreeTrial: boolean);

Static analyzer: Breaking change in constructor BillingSubscription.undefined: Parameter status type changed: import("@clerk/backend").BillingSubscriptionJSON['status']string; Parameter payerId type changed: stringimport("@clerk/backend").BillingSubscriptionJSON['status']; Parameter createdAt type changed: numberstring; Parameter activeAt type changed: null|numbernumber; Parameter subscriptionItems type changed: import("@clerk/backend").BillingSubscriptionItem[]null|number; Parameter nextPayment type changed: null|{date:number;amount:import("@clerk/shared").BillingMoneyAmount;}import("@clerk/backend").BillingSubscriptionItem[]; Parameter eligibleForFreeTrial type changed: booleannull|{date:number;amount:import("@clerk/shared").BillingMoneyAmount;perUnitTotals?:import("@clerk/shared").BillingPerUnitTotal[];totals?:import("@clerk/shared").BillingTotals;}; Required parameter eligibleForFreeTrial was added

🤖 AI review (confirmed) (95%): A new required parameter instanceId was inserted at position 2 in the BillingSubscription constructor, shifting all subsequent parameters and breaking any consumer that calls new BillingSubscription(...) directly.

Migration: Add the new instanceId: string argument as the second parameter when constructing BillingSubscription instances.

Changed: BillingSubscriptionItem.undefined

  constructor(
      id: string, 
+     instanceId: string, 
      status: BillingSubscriptionItemJSON['status'], 
      planPeriod: 'month' | 'annual', 
      periodStart: number, 
      nextPayment: {
-         amount: number;
+         amount: BillingMoneyAmount;
          date: number;
+         perUnitTotals?: BillingPerUnitTotal[];
+         totals?: BillingTotals;
      } | null | undefined, 
      amount: BillingMoneyAmount | undefined, 
      plan: BillingPlan | null, 
      planId: string | null, 
+     priceId: string | null, 
      createdAt: number, 
      updatedAt: number, 
      periodEnd: number | null, 
      canceledAt: number | null, 
      pastDueAt: number | null, 
      endedAt: number | null, 
      payerId: string | undefined, 
-     isFreeTrial?: boolean | undefined, 
-     lifetimePaid?: BillingMoneyAmount | undefined);
+     isFreeTrial: boolean, 
+     lifetimePaid?: BillingMoneyAmount | undefined, 
+     seats?: BillingSubscriptionItemSeats | undefined);

Static analyzer: Breaking change in constructor BillingSubscriptionItem.undefined: Parameter status type changed: import("@clerk/backend").BillingSubscriptionItemJSON['status']string; Parameter planPeriod type changed: 'annual'|'month'import("@clerk/backend").BillingSubscriptionItemJSON['status']; Parameter periodStart type changed: number'annual'|'month'; Parameter nextPayment type changed: null|undefined|{amount:number;date:number;}number; Parameter amount type changed: import("@clerk/shared").BillingMoneyAmount|undefinednull|undefined|{amount:import("@clerk/shared").BillingMoneyAmount;date:number;perUnitTotals?:import("@clerk/shared").BillingPerUnitTotal[];totals?:import("@clerk/shared").BillingTotals;}; Parameter plan type changed: import("@clerk/backend").BillingPlan|nullimport("@clerk/shared").BillingMoneyAmount|undefined; Parameter planId type changed: null|stringimport("@clerk/backend").BillingPlan|null; Parameter createdAt type changed: numbernull|string; Parameter updatedAt type changed: numbernull|string; Parameter periodEnd type changed: null|numbernumber; Parameter canceledAt type changed: null|numbernumber; Parameter payerId type changed: string|undefinednull|number; Parameter isFreeTrial is no longer optional; Parameter isFreeTrial type changed: boolean|undefinednull|number; Parameter lifetimePaid is no longer optional; Parameter lifetimePaid type changed: import("@clerk/shared").BillingMoneyAmount|undefinedstring|undefined; Required parameter isFreeTrial was added; Optional parameter lifetimePaid was added; Optional parameter seats was added

🤖 AI review (confirmed) (95%): A new required parameter instanceId was inserted at position 2 in the BillingSubscriptionItem constructor, and a new required parameter priceId was also inserted later, shifting all subsequent parameters and breaking any consumer that calls new BillingSubscriptionItem(...) directly.

Migration: Add instanceId: string as the second argument and priceId: string | null after planId when constructing BillingSubscriptionItem instances.

Changed: BillingSubscriptionItem.isFreeTrial

- readonly isFreeTrial?: boolean | undefined;
+ readonly isFreeTrial: boolean;

Static analyzer: Breaking change in property BillingSubscriptionItem.isFreeTrial: Member is no longer optional; Type changed: boolean|undefinedboolean

🤖 AI review (confirmed) (85%): Making isFreeTrial a required (non-optional) property on the BillingSubscriptionItem class narrows the type; consumers who previously typed this as boolean | undefined and assigned undefined will now fail, and code relying on the optional signature breaks.

Migration: Ensure all code that reads or assigns isFreeTrial treats it as always boolean, removing any undefined branches.

Changed: BillingSubscriptionItem.nextPayment

  readonly nextPayment: {
-         amount: number;
+         amount: BillingMoneyAmount;
          date: number;
+         perUnitTotals?: BillingPerUnitTotal[];
+         totals?: BillingTotals;
      } | null | undefined;

Static analyzer: Breaking change in property BillingSubscriptionItem.nextPayment: Type changed: null|undefined|{amount:number;date:number;}null|undefined|{amount:import("@clerk/shared").BillingMoneyAmount;date:number;perUnitTotals?:import("@clerk/shared").Bi…

🤖 AI review (confirmed) (85%): The amount field in the nextPayment object changed from number to BillingMoneyAmount; consumers that previously read nextPayment.amount as a number will have a type mismatch.

Migration: Update consumer code to treat nextPayment.amount as a BillingMoneyAmount object rather than a plain number.

Changed: BillingSubscriptionItemJSON.amount

- amount: BillingMoneyAmountJSON;
+ amount?: BillingMoneyAmountJSON | null;

Static analyzer: Breaking change in property BillingSubscriptionItemJSON.amount: Member became optional; Type changed: import("@clerk/backend").~BillingMoneyAmountJSONimport("@clerk/backend").~BillingMoneyAmountJSON|null

🤖 AI review (confirmed) (85%): BillingSubscriptionItemJSON.amount changed from a required BillingMoneyAmountJSON to an optional BillingMoneyAmountJSON | null; consumers constructing objects of this interface that provided the required field now encounter type mismatches when checking optionality, and consumers reading it must now handle null/undefined.

Migration: Update consumer code that reads amount from BillingSubscriptionItemJSON to handle null | undefined cases.

Changed: BillingSubscriptionItemJSON.is_free_trial

- is_free_trial?: boolean;
+ is_free_trial: boolean;

Static analyzer: Breaking change in property BillingSubscriptionItemJSON.is_free_trial: Member is no longer optional

🤖 AI review (confirmed) (85%): BillingSubscriptionItemJSON.is_free_trial changed from optional to required; consumers constructing objects of this interface that omitted this field will now fail to compile.

Migration: Add a required is_free_trial: boolean field when constructing objects that conform to BillingSubscriptionItemJSON.

Changed: BillingSubscriptionItemJSON.next_payment

- next_payment?: {
-         amount: number;
-         date: number;
-     } | null;
+ next_payment?: BillingSubscriptionItemNextPaymentJSON | null;

Static analyzer: Breaking change in property BillingSubscriptionItemJSON.next_payment: Type changed: null|{amount:number;date:number;}import("@clerk/shared").BillingSubscriptionItemNextPaymentJSON|null

🤖 AI review (confirmed) (80%): The inline type { amount: number; date: number } was replaced by BillingSubscriptionItemNextPaymentJSON, which changes the shape of amount from number to a structured type; consumers reading or constructing this field must update their code.

Migration: Update code that reads next_payment.amount from BillingSubscriptionItemJSON to handle the new BillingSubscriptionItemNextPaymentJSON shape instead of a plain number.

🟡 Non-breaking Changes (3)

Modified: BillingSubscription.nextPayment

  readonly nextPayment: {
          date: number;
          amount: BillingMoneyAmount;
+         perUnitTotals?: BillingPerUnitTotal[];
+         totals?: BillingTotals;
      } | null;

Static analyzer: Breaking change in property BillingSubscription.nextPayment: Type changed: null|{date:number;amount:import("@clerk/shared").BillingMoneyAmount;}null|{date:number;amount:import("@clerk/shared").BillingMoneyAmount;perUnitTotals?:import("@clerk/shared").BillingPerUn…

🤖 AI review (reclassified as non-breaking) (90%): The nextPayment property on BillingSubscription only gains two new optional fields (perUnitTotals? and totals?); existing consumers reading the property still see a compatible shape (the existing fields are unchanged), and since this is a readonly output property no consumer is required to supply those fields.

Modified: BillingSubscriptionItemJSON.lifetime_paid

- lifetime_paid: BillingMoneyAmountJSON | null;
+ lifetime_paid?: BillingMoneyAmountJSON | null;

Static analyzer: Modified property BillingSubscriptionItemJSON.lifetime_paid: Member became optional

🤖 AI review (confirmed) (95%): Making lifetime_paid optional in the interface is non-breaking: consumers reading it already had to handle null, and consumers constructing this object type can now omit the field rather than being required to provide it.

Modified: BillingSubscriptionJSON.next_payment

  next_payment?: {
          date: number;
          amount: BillingMoneyAmountJSON;
+         per_unit_totals?: BillingPerUnitTotalJSON[];
+         totals?: SharedBillingTotalsJSON;
      };

Static analyzer: Breaking change in property BillingSubscriptionJSON.next_payment: Type changed: {date:number;amount:import("@clerk/backend").~BillingMoneyAmountJSON;}{date:number;amount:import("@clerk/backend").~BillingMoneyAmountJSON;per_unit_totals?:import("@clerk/shared").BillingPe…

🤖 AI review (reclassified as non-breaking) (90%): The next_payment object in BillingSubscriptionJSON only gains new optional fields (per_unit_totals? and totals?); existing consumers neither need to supply those fields when constructing nor are required to handle them when reading, so no well-typed consumer is broken.

🟢 Additions (8)

Added: BillingSubscription.instanceId

+ readonly instanceId: string;

Added property BillingSubscription.instanceId

Added: BillingSubscriptionItem.instanceId

+ readonly instanceId: string;

Added property BillingSubscriptionItem.instanceId

Added: BillingSubscriptionItem.priceId

+ readonly priceId: string | null;

Added property BillingSubscriptionItem.priceId

Added: BillingSubscriptionItem.seats

+ readonly seats?: BillingSubscriptionItemSeats | undefined;

Added property BillingSubscriptionItem.seats

Added: BillingSubscriptionItemJSON.instance_id

+ instance_id: string;

Added property BillingSubscriptionItemJSON.instance_id

Added: BillingSubscriptionItemJSON.price_id

+ price_id?: string;

Added property BillingSubscriptionItemJSON.price_id

Added: BillingSubscriptionItemJSON.seats

+ seats?: BillingSubscriptionItemSeatsJSON;

Added property BillingSubscriptionItemJSON.seats

Added: BillingSubscriptionJSON.instance_id

+ instance_id: string;

Added property BillingSubscriptionJSON.instance_id


Report generated by Break Check

Last ran on d40a9c3.

@dstaley
dstaley requested a review from a team July 17, 2026 20:47
@dstaley

dstaley commented Jul 17, 2026

Copy link
Copy Markdown
Member Author

@macroscope-app review

@macroscopeapp

macroscopeapp Bot commented Jul 17, 2026

Copy link
Copy Markdown

Manual reviews triggered for commit d40a9c3:

All prior checks · these links stay valid even if you push more commits.

@macroscopeapp

macroscopeapp Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review in progress. Results will be posted as check runs when complete.

@macroscopeapp

macroscopeapp Bot commented Jul 17, 2026

Copy link
Copy Markdown

Approvability

Verdict: Needs human review

This PR modifies billing-related resources which are treated as sensitive. Additionally, there's an unresolved comment noting that the type change to nextPayment.amount may constitute a breaking API change requiring a major version bump rather than minor.

You can customize Macroscope's approvability policy. Learn more.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/backend/src/api/resources/CommerceSubscriptionItem.ts (1)

38-44: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Update the backend API documentation for the new payment shape.

nextPayment.amount is now BillingMoneyAmount and includes perUnitTotals/totals, while clerk-docs still documents the older { amount, date } shape. Update the public documentation with this API change.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/backend/src/api/resources/CommerceSubscriptionItem.ts` around lines
38 - 44, Update the public clerk-docs documentation for the nextPayment API
shape to match CommerceSubscriptionItem: document amount as BillingMoneyAmount
and include the optional perUnitTotals and totals fields alongside date. Replace
the older { amount, date } representation without changing unrelated
subscription documentation.

Sources: Coding guidelines, Linked repositories

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@packages/backend/src/api/resources/CommerceSubscriptionItem.ts`:
- Around line 38-44: Update the public clerk-docs documentation for the
nextPayment API shape to match CommerceSubscriptionItem: document amount as
BillingMoneyAmount and include the optional perUnitTotals and totals fields
alongside date. Replace the older { amount, date } representation without
changing unrelated subscription documentation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: e7a1b51e-6fc9-445d-a608-d21220fb711f

📥 Commits

Reviewing files that changed from the base of the PR and between 1cbd099 and d40a9c3.

📒 Files selected for processing (1)
  • packages/backend/src/api/resources/CommerceSubscriptionItem.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go (manual)
  • clerk/dashboard (manual)
  • clerk/accounts (manual)
  • clerk/backoffice (manual)
  • clerk/clerk (manual)
  • clerk/clerk-docs (manual)
  • clerk/cloudflare-workers (manual)

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.

1 participant