Skip to content

Conversation

cubic-dev-local[bot]
Copy link

Summary by cubic

Switch the monorepo build system from tsup to tsdown. Updates all package and example scripts and configs to use tsdown for builds and watch mode.

  • Refactors

    • Replace tsup/tsup-node with tsdown in build/dev/watch scripts across packages and examples.
    • Rename and update build configs to tsdown (react-email, render).
    • Remove the workspace-level tsup entry.
  • Dependencies

    • Add tsdown ^0.15.1; remove tsup.
    • Refresh pnpm-lock.yaml to reflect the new toolchain.
---

Based on: resend/react-email#2453

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

3 issues found across 32 files

Prompt for AI agents (all 3 issues)

Understand the root cause of the following 3 issues and fix them.


<file name="package.json">

<violation number="1" location="package.json:25">
Use an exact version to align with the repo’s pinned devDependencies; a caret range can cause non-deterministic upgrades that may break builds.</violation>
</file>

<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config. Consider removing it here or updating scripts to actually use it.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Although tsdown isn&#39;t referenced by this package&#39;s scripts or config, the PR migrates the monorepo to tsdown; including it here is likely intentional for consistency. Low impact; not worth reporting.</violation>
</file>

<file name="examples/aws-ses/package.json">

<violation number="1" location="examples/aws-ses/package.json:23">
The migration from `tsup` to `tsdown` is incomplete. The `packages/link/package.json` file was missed and its build scripts still use `tsup`. Removing the `tsup` dependency from the root `package.json` will break the build for the `@react-email/link` package.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Use an exact version to align with the repo’s pinned devDependencies; a caret range can cause non-deterministic upgrades that may break builds.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Use an exact version to align with the repo’s pinned devDependencies; a caret range can cause non-deterministic upgrades that may break builds.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Suggested change
"tsdown": "^0.15.1",
"tsdown": "0.15.1",
Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Unused devDependency: tsdown is added but not used by this package's scripts or config. Consider removing it here or updating scripts to actually use it.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Although tsdown isn't referenced by this package's scripts or config, the PR migrates the monorepo to tsdown; including it here is likely intentional for consistency. Low impact; not worth reporting.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config. Consider removing it here or updating scripts to actually use it.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Although tsdown isn&#39;t referenced by this package&#39;s scripts or config, the PR migrates the monorepo to tsdown; including it here is likely intentional for consistency. Low impact; not worth reporting.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

},
"devDependencies": {
"tsup": "^8.0.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

The migration from tsup to tsdown is incomplete. The packages/link/package.json file was missed and its build scripts still use tsup. Removing the tsup dependency from the root package.json will break the build for the @react-email/link package.

Prompt for AI agents
Address the following comment on examples/aws-ses/package.json at line 23:

<comment>The migration from `tsup` to `tsdown` is incomplete. The `packages/link/package.json` file was missed and its build scripts still use `tsup`. Removing the `tsup` dependency from the root `package.json` will break the build for the `@react-email/link` package.</comment>

<file context>
@@ -20,7 +20,7 @@
   },
   &quot;devDependencies&quot;: {
-    &quot;tsup&quot;: &quot;^8.0.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;^4&quot;
   }
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

8 issues found across 32 files

Prompt for AI agents (all 8 issues)

Understand the root cause of the following 8 issues and fix them.


<file name="package.json">

<violation number="1" location="package.json:25">
Use an exact version instead of a caret range to align with pinned devDependencies and avoid unexpected bumps during &#39;pnpm install --no-frozen-lockfile&#39;.</violation>
</file>

<file name="packages/render/package.json">

<violation number="1" location="packages/render/package.json:133">
Use a pinned devDependency version for tsdown to match existing pinning and avoid unexpected build changes.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact consistency issue; lockfile ensures reproducible installs and caret ranges are already used elsewhere in this package. Not worth reporting.</violation>
</file>

<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
Unused devDependency: tsdown is not referenced by this package&#39;s scripts or config; remove to avoid unnecessary installs.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Valid but minor; scripts don’t use tsdown, yet addition may be intentional with the monorepo-wide migration. Impact is low—filter to minimize false positives.</violation>
</file>

<file name="packages/react-email/package.json">

<violation number="1" location="packages/react-email/package.json:11">
Specifying &#39;src&#39; in the watch script may override the configured entry in tsdown.config.ts, leading to inconsistent build/watch behavior. Prefer relying on the config when watching.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: uncertaintyLanguage.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: False positive: `tsdown --watch src` sets the watch path, not the entry; it does not override tsdown.config.ts entry.

• **Libraries consulted**: tsdown CLI entry overrides config, Tsdown</violation>
</file>

<file name="packages/body/package.json">

<violation number="1" location="packages/body/package.json:26">
Only &quot;react&quot; is externalized; include &quot;react/jsx-runtime&quot; (and dev variant) to avoid bundling JSX runtime with the library.</violation>

<violation number="2" location="packages/body/package.json:27">
Only &quot;react&quot; is externalized; include &quot;react/jsx-runtime&quot; (and dev variant) to avoid bundling JSX runtime with the library.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of #0 (same issue in the watch script). Covered by the single recommendation; reporting both would be redundant.

• **Libraries consulted**: tsdown external option, Tsdown, React jsx-runtime automatic runtime imports react/jsx-runtime jsx-dev-runtime, React.dev</violation>
</file>

<file name="packages/button/package.json">

<violation number="1" location="packages/button/package.json:26">
Only &#39;react&#39; is marked external; consider also externalizing &#39;react/jsx-runtime&#39; to avoid bundling the JSX runtime when using the automatic JSX transform.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Uncertain tsdown handling of subpath externals; no build evidence of bundling issue and impact would be minor. Optional optimization, not a clear bug.

• **Libraries consulted**: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime</violation>

<violation number="2" location="packages/button/package.json:27">
Only &#39;react&#39; is marked external; consider also externalizing &#39;react/jsx-runtime&#39; to avoid bundling the JSX runtime when using the automatic JSX transform.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of #0 for the watch script; same uncertainty and low impact.

• **Libraries consulted**: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Use an exact version instead of a caret range to align with pinned devDependencies and avoid unexpected bumps during 'pnpm install --no-frozen-lockfile'.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Use an exact version instead of a caret range to align with pinned devDependencies and avoid unexpected bumps during &#39;pnpm install --no-frozen-lockfile&#39;.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Suggested change
"tsdown": "^0.15.1",
"tsdown": "0.15.1",
Fix with Cubic

"jsdom": "26.1.0",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Use a pinned devDependency version for tsdown to match existing pinning and avoid unexpected build changes.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Low-impact consistency issue; lockfile ensures reproducible installs and caret ranges are already used elsewhere in this package. Not worth reporting.

Prompt for AI agents
Address the following comment on packages/render/package.json at line 133:

<comment>Use a pinned devDependency version for tsdown to match existing pinning and avoid unexpected build changes.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact consistency issue; lockfile ensures reproducible installs and caret ranges are already used elsewhere in this package. Not worth reporting.</comment>

<file context>
@@ -130,7 +130,7 @@
     &quot;jsdom&quot;: &quot;26.1.0&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;
   },
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Suggested change
"tsdown": "^0.15.1",
"tsdown": "0.15.1",
Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Unused devDependency: tsdown is not referenced by this package's scripts or config; remove to avoid unnecessary installs.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Valid but minor; scripts don’t use tsdown, yet addition may be intentional with the monorepo-wide migration. Impact is low—filter to minimize false positives.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Unused devDependency: tsdown is not referenced by this package&#39;s scripts or config; remove to avoid unnecessary installs.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Valid but minor; scripts don’t use tsdown, yet addition may be intentional with the monorepo-wide migration. Impact is low—filter to minimize false positives.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"build": "tsup-node",
"build:watch": "tsup-node --watch src",
"build": "tsdown",
"build:watch": "tsdown --watch src",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Specifying 'src' in the watch script may override the configured entry in tsdown.config.ts, leading to inconsistent build/watch behavior. Prefer relying on the config when watching.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: uncertaintyLanguage.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: False positive: tsdown --watch src sets the watch path, not the entry; it does not override tsdown.config.ts entry.

Libraries consulted: tsdown CLI entry overrides config, Tsdown

Prompt for AI agents
Address the following comment on packages/react-email/package.json at line 11:

<comment>Specifying &#39;src&#39; in the watch script may override the configured entry in tsdown.config.ts, leading to inconsistent build/watch behavior. Prefer relying on the config when watching.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: uncertaintyLanguage.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: False positive: `tsdown --watch src` sets the watch path, not the entry; it does not override tsdown.config.ts entry.

• **Libraries consulted**: tsdown CLI entry overrides config, Tsdown</comment>

<file context>
@@ -7,8 +7,8 @@
-    &quot;build&quot;: &quot;tsup-node&quot;,
-    &quot;build:watch&quot;: &quot;tsup-node --watch src&quot;,
+    &quot;build&quot;: &quot;tsdown&quot;,
+    &quot;build:watch&quot;: &quot;tsdown --watch src&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 7/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Only "react" is externalized; include "react/jsx-runtime" (and dev variant) to avoid bundling JSX runtime with the library.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Duplicate of #0 (same issue in the watch script). Covered by the single recommendation; reporting both would be redundant.

Libraries consulted: tsdown external option, Tsdown, React jsx-runtime automatic runtime imports react/jsx-runtime jsx-dev-runtime, React.dev

Prompt for AI agents
Address the following comment on packages/body/package.json at line 27:

<comment>Only &quot;react&quot; is externalized; include &quot;react/jsx-runtime&quot; (and dev variant) to avoid bundling JSX runtime with the library.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of #0 (same issue in the watch script). Covered by the single recommendation; reporting both would be redundant.

• **Libraries consulted**: tsdown external option, Tsdown, React jsx-runtime automatic runtime imports react/jsx-runtime jsx-dev-runtime, React.dev</comment>

<file context>
@@ -23,8 +23,8 @@
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Suggested change
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react,react/jsx-runtime,react/jsx-dev-runtime --watch",
Fix with Cubic

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Only "react" is externalized; include "react/jsx-runtime" (and dev variant) to avoid bundling JSX runtime with the library.

Prompt for AI agents
Address the following comment on packages/body/package.json at line 26:

<comment>Only &quot;react&quot; is externalized; include &quot;react/jsx-runtime&quot; (and dev variant) to avoid bundling JSX runtime with the library.</comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Suggested change
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react,react/jsx-runtime,react/jsx-dev-runtime",
Fix with Cubic

"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Only 'react' is marked external; consider also externalizing 'react/jsx-runtime' to avoid bundling the JSX runtime when using the automatic JSX transform.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Duplicate of #0 for the watch script; same uncertainty and low impact.

Libraries consulted: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime

Prompt for AI agents
Address the following comment on packages/button/package.json at line 27:

<comment>Only &#39;react&#39; is marked external; consider also externalizing &#39;react/jsx-runtime&#39; to avoid bundling the JSX runtime when using the automatic JSX transform.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of #0 for the watch script; same uncertainty and low impact.

• **Libraries consulted**: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime</comment>

<file context>
@@ -23,8 +23,8 @@
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 7/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 18, 2025

Choose a reason for hiding this comment

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

Only 'react' is marked external; consider also externalizing 'react/jsx-runtime' to avoid bundling the JSX runtime when using the automatic JSX transform.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Uncertain tsdown handling of subpath externals; no build evidence of bundling issue and impact would be minor. Optional optimization, not a clear bug.

Libraries consulted: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime

Prompt for AI agents
Address the following comment on packages/button/package.json at line 26:

<comment>Only &#39;react&#39; is marked external; consider also externalizing &#39;react/jsx-runtime&#39; to avoid bundling the JSX runtime when using the automatic JSX transform.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Uncertain tsdown handling of subpath externals; no build evidence of bundling issue and impact would be minor. Optional optimization, not a clear bug.

• **Libraries consulted**: React JSX runtime react-jsx automatic runtime, Vite-plugin-react, react/jsx-runtime automatic runtime</comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 7/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

5 issues found across 32 files

Prompt for AI agents (all 5 issues)

Understand the root cause of the following 5 issues and fix them.


<file name="examples/aws-ses/package.json">

<violation number="1" location="examples/aws-ses/package.json:23">
The build migration from `tsup` to `tsdown` is incomplete. The `@react-email/link` package was not migrated and still references `tsup` in its build scripts, but the `tsup` dependency has been removed from the workspace, which will break the build for this package.</violation>
</file>

<file name="package.json">

<violation number="1" location="package.json:25">
Use an exact version for tsdown to align with repository pinning and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Caret range for tsdown is used consistently across the monorepo in this PR, and the committed pnpm lockfile plus pinned packageManager ensures reproducible installs. This is stylistic with low impact.</violation>
</file>

<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
Version range inconsistency: use an exact version for tsdown to align with pinned build-tool dependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Caret version range inconsistency is a low-impact style/policy matter; lockfile ensures reproducible installs. No explicit policy requiring pins, so not worth flagging.</violation>

<violation number="2" location="packages/tailwind/package.json:65">
Unused devDependency: tsdown is added but not referenced by this package&#39;s scripts or config; consider removing to avoid bloat and confusion.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*</violation>
</file>

<file name="packages/heading/package.json">

<violation number="1" location="packages/heading/package.json:26">
Externalize &#39;react/jsx-runtime&#39; along with &#39;react&#39; so the JSX runtime isn&#39;t bundled; this library uses the automatic React JSX runtime per tsconfig.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Repo-wide pattern intentionally externalizes only `react` with tsdown; no evidence that bundling `react/jsx-runtime` causes issues here; impact is minimal and likely a false positive.

• **Libraries consulted**: TypeScript JSX react-jsx runtime import react/jsx-runtime, microsoft typescript jsx react-jsx documentation, Typescript</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

},
"devDependencies": {
"tsup": "^8.0.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 23, 2025

Choose a reason for hiding this comment

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

The build migration from tsup to tsdown is incomplete. The @react-email/link package was not migrated and still references tsup in its build scripts, but the tsup dependency has been removed from the workspace, which will break the build for this package.

Prompt for AI agents
Address the following comment on examples/aws-ses/package.json at line 23:

<comment>The build migration from `tsup` to `tsdown` is incomplete. The `@react-email/link` package was not migrated and still references `tsup` in its build scripts, but the `tsup` dependency has been removed from the workspace, which will break the build for this package.</comment>

<file context>
@@ -20,7 +20,7 @@
   },
   &quot;devDependencies&quot;: {
-    &quot;tsup&quot;: &quot;^8.0.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;^4&quot;
   }
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 23, 2025

Choose a reason for hiding this comment

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

Use an exact version for tsdown to align with repository pinning and ensure reproducible builds.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Caret range for tsdown is used consistently across the monorepo in this PR, and the committed pnpm lockfile plus pinned packageManager ensures reproducible installs. This is stylistic with low impact.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Use an exact version for tsdown to align with repository pinning and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Caret range for tsdown is used consistently across the monorepo in this PR, and the committed pnpm lockfile plus pinned packageManager ensures reproducible installs. This is stylistic with low impact.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 23, 2025

Choose a reason for hiding this comment

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

Version range inconsistency: use an exact version for tsdown to align with pinned build-tool dependencies and ensure reproducible builds.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Caret version range inconsistency is a low-impact style/policy matter; lockfile ensures reproducible installs. No explicit policy requiring pins, so not worth flagging.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Version range inconsistency: use an exact version for tsdown to align with pinned build-tool dependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Caret version range inconsistency is a low-impact style/policy matter; lockfile ensures reproducible installs. No explicit policy requiring pins, so not worth flagging.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Suggested change
"tsdown": "^0.15.1",
"tsdown": "0.15.1",
Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 23, 2025

Choose a reason for hiding this comment

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

Unused devDependency: tsdown is added but not referenced by this package's scripts or config; consider removing to avoid bloat and confusion.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Unused devDependency: tsdown is added but not referenced by this package&#39;s scripts or config; consider removing to avoid bloat and confusion.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-dev-ai cubic-dev-ai bot Sep 23, 2025

Choose a reason for hiding this comment

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

Externalize 'react/jsx-runtime' along with 'react' so the JSX runtime isn't bundled; this library uses the automatic React JSX runtime per tsconfig.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Repo-wide pattern intentionally externalizes only react with tsdown; no evidence that bundling react/jsx-runtime causes issues here; impact is minimal and likely a false positive.

Libraries consulted: TypeScript JSX react-jsx runtime import react/jsx-runtime, microsoft typescript jsx react-jsx documentation, Typescript

Prompt for AI agents
Address the following comment on packages/heading/package.json at line 26:

<comment>Externalize &#39;react/jsx-runtime&#39; along with &#39;react&#39; so the JSX runtime isn&#39;t bundled; this library uses the automatic React JSX runtime per tsconfig.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Repo-wide pattern intentionally externalizes only `react` with tsdown; no evidence that bundling `react/jsx-runtime` causes issues here; impact is minimal and likely a false positive.

• **Libraries consulted**: TypeScript JSX react-jsx runtime import react/jsx-runtime, microsoft typescript jsx react-jsx documentation, Typescript</comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

14 issues found across 32 files

Prompt for AI agents (all 14 issues)

Understand the root cause of the following 14 issues and fix them.


<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
two-agent-filter: Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config; consider removing to keep dependencies minimal.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Unused devDependency is minor and has no functional impact; PR context indicates a monorepo-wide switch to tsdown, so addition may be intentional. Not high-impact enough to report.</violation>

<violation number="2" location="packages/tailwind/package.json:65">
single-agent-filter: Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config; consider removing to keep dependencies minimal.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Confirmed tsdown is only present in package.json and not used by scripts or config in this package, but this is a low-impact cleanliness issue. Given the PR’s monorepo-wide switch from tsup to tsdown, having it listed here is likely for consistency and does not cause functional problems. Not high-impact enough to report.</violation>
</file>

<file name="packages/heading/package.json">

<violation number="1" location="packages/heading/package.json:26">
two-agent-filter: Build script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch can cause build failures under Node 18. 

• **Libraries consulted**:</violation>

<violation number="2" location="packages/heading/package.json:26">
single-agent-filter: Build script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch can cause build failures under Node 18. 

• **Libraries consulted**:</violation>

<violation number="3" location="packages/heading/package.json:27">
two-agent-filter: Watch script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch risks failures when running watch on Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of violation 0 (same tsdown vs engines mismatch, just for watch). Keep the primary violation only.</violation>

<violation number="4" location="packages/heading/package.json:27">
single-agent-filter: Watch script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch risks failures when running watch on Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Same root cause as #0 (tsdown CLI requiring Node &gt;=20.19.0). Duplicate of the build script issue; reporting both is redundant.</violation>
</file>

<file name="package.json">

<violation number="1" location="package.json:25">
two-agent-filter: Use a pinned version for tsdown to align with devDependencies conventions and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact style/convention issue. The repo uses pnpm with a committed lockfile and a pinned packageManager, ensuring reproducible installs. Caret ranges are already used in pnpm overrides, indicating ranges are acceptable. Not worth reporting.</violation>

<violation number="2" location="package.json:25">
single-agent-filter: Use a pinned version for tsdown to align with devDependencies conventions and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low impact/style: pnpm-lock.yaml is present and packageManager is pinned, so caret range won’t affect reproducible installs. This deviates from local convention but is not a clear bug or high-impact issue; treat as stylistic consistency preference.</violation>
</file>

<file name="examples/sendgrid/package.json">

<violation number="1" location="examples/sendgrid/package.json:23">
two-agent-filter: Avoid using a caret range for pre-1.0 packages; minor updates can be breaking. Prefer ~0.15.1 or an exact version to prevent unexpected breakages.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Caret ranges for &lt;1.0.0 lock the minor version and only allow patch updates (e.g., ^0.15.1 resolves to &gt;=0.15.1 &lt;0.16.0). This is equivalent to ~0.15.1 here, so the claim of risky minor updates is incorrect. Pinning exactly is preference and low impact for an example devDependency.

• **Libraries consulted**: npm semver caret pre-1.0 behavior, node-semver caret ranges npm, Npmjs</violation>

<violation number="2" location="examples/sendgrid/package.json:23">
single-agent-filter: Avoid using a caret range for pre-1.0 packages; minor updates can be breaking. Prefer ~0.15.1 or an exact version to prevent unexpected breakages.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Incorrect premise: In npm semver, ^0.15.1 permits only patch updates (&gt;=0.15.1 &lt;0.16.0), effectively identical to ~0.15.1. It does not allow minor updates, so the claimed risk is unfounded. Also, this is a devDependency, making the impact low even if it were a concern.

• **Libraries consulted**: npm semver caret ranges 0.x behavior, node-semver caret range behavior ^0.x npm, Compare-versions, semver specification caret ranges pre-1.0</violation>
</file>

<file name="packages/render/package.json">

<violation number="1" location="packages/render/package.json:133">
two-agent-filter: [email protected] requires Node &gt;=20.19.0, but this package declares engines.node &gt;=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to &gt;=20 or use a tsdown version compatible with Node 18. 

• **Libraries consulted**:</violation>

<violation number="2" location="packages/render/package.json:133">
single-agent-filter: [email protected] requires Node &gt;=20.19.0, but this package declares engines.node &gt;=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to &gt;=20 or use a tsdown version compatible with Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Confirmed [email protected] requires Node &gt;=20.19 via pnpm-lock. However, devDependencies aren’t installed for consumers and CI uses Node 22, so builds run on a compatible Node version. The package’s engines.node &gt;=18 correctly reflects consumer runtime support; aligning it to &gt;=20 would unnecessarily restrict users. No engine-strict config found, so Node 18 installs won’t hard-fail. Impact is limited to local dev on older Node and is intentional given CI setup.</violation>
</file>

<file name="pnpm-lock.yaml">

<violation number="1" location="pnpm-lock.yaml:46">
two-agent-filter: The build tool `tsup` has been removed from `package.json` files but still exists as a dependency in `pnpm-lock.yaml`. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated. 

• **Libraries consulted**:</violation>

<violation number="2" location="pnpm-lock.yaml:46">
single-agent-filter: The build tool `tsup` has been removed from `package.json` files but still exists as a dependency in `pnpm-lock.yaml`. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated. 

• **Libraries consulted**:</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

two-agent-filter: Unused devDependency: tsdown is added but not used by this package's scripts or config; consider removing to keep dependencies minimal.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Unused devDependency is minor and has no functional impact; PR context indicates a monorepo-wide switch to tsdown, so addition may be intentional. Not high-impact enough to report.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>two-agent-filter: Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config; consider removing to keep dependencies minimal.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Unused devDependency is minor and has no functional impact; PR context indicates a monorepo-wide switch to tsdown, so addition may be intentional. Not high-impact enough to report.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

single-agent-filter: Unused devDependency: tsdown is added but not used by this package's scripts or config; consider removing to keep dependencies minimal.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Confirmed tsdown is only present in package.json and not used by scripts or config in this package, but this is a low-impact cleanliness issue. Given the PR’s monorepo-wide switch from tsup to tsdown, having it listed here is likely for consistency and does not cause functional problems. Not high-impact enough to report.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>single-agent-filter: Unused devDependency: tsdown is added but not used by this package&#39;s scripts or config; consider removing to keep dependencies minimal.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Confirmed tsdown is only present in package.json and not used by scripts or config in this package, but this is a low-impact cleanliness issue. Given the PR’s monorepo-wide switch from tsup to tsdown, having it listed here is likely for consistency and does not cause functional problems. Not high-impact enough to report.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

two-agent-filter: Watch script uses tsdown, which requires Node >=20.19.0 per lockfile, but this package declares engines node >=18. This mismatch risks failures when running watch on Node 18.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Duplicate of violation 0 (same tsdown vs engines mismatch, just for watch). Keep the primary violation only.

Prompt for AI agents
Address the following comment on packages/heading/package.json at line 27:

<comment>two-agent-filter: Watch script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch risks failures when running watch on Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of violation 0 (same tsdown vs engines mismatch, just for watch). Keep the primary violation only.</comment>

<file context>
@@ -23,8 +23,8 @@
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

two-agent-filter: Build script uses tsdown, which requires Node >=20.19.0 per lockfile, but this package declares engines node >=18. This mismatch can cause build failures under Node 18.

Libraries consulted:

Prompt for AI agents
Address the following comment on packages/heading/package.json at line 26:

<comment>two-agent-filter: Build script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch can cause build failures under Node 18. 

• **Libraries consulted**: </comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

single-agent-filter: Watch script uses tsdown, which requires Node >=20.19.0 per lockfile, but this package declares engines node >=18. This mismatch risks failures when running watch on Node 18.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Same root cause as #0 (tsdown CLI requiring Node >=20.19.0). Duplicate of the build script issue; reporting both is redundant.

Prompt for AI agents
Address the following comment on packages/heading/package.json at line 27:

<comment>single-agent-filter: Watch script uses tsdown, which requires Node &gt;=20.19.0 per lockfile, but this package declares engines node &gt;=18. This mismatch risks failures when running watch on Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Same root cause as #0 (tsdown CLI requiring Node &gt;=20.19.0). Duplicate of the build script issue; reporting both is redundant.</comment>

<file context>
@@ -23,8 +23,8 @@
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

},
"devDependencies": {
"tsup": "^8.0.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

single-agent-filter: Avoid using a caret range for pre-1.0 packages; minor updates can be breaking. Prefer ~0.15.1 or an exact version to prevent unexpected breakages.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Incorrect premise: In npm semver, ^0.15.1 permits only patch updates (>=0.15.1 <0.16.0), effectively identical to ~0.15.1. It does not allow minor updates, so the claimed risk is unfounded. Also, this is a devDependency, making the impact low even if it were a concern.

Libraries consulted: npm semver caret ranges 0.x behavior, node-semver caret range behavior ^0.x npm, Compare-versions, semver specification caret ranges pre-1.0

Prompt for AI agents
Address the following comment on examples/sendgrid/package.json at line 23:

<comment>single-agent-filter: Avoid using a caret range for pre-1.0 packages; minor updates can be breaking. Prefer ~0.15.1 or an exact version to prevent unexpected breakages.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Incorrect premise: In npm semver, ^0.15.1 permits only patch updates (&gt;=0.15.1 &lt;0.16.0), effectively identical to ~0.15.1. It does not allow minor updates, so the claimed risk is unfounded. Also, this is a devDependency, making the impact low even if it were a concern.

• **Libraries consulted**: npm semver caret ranges 0.x behavior, node-semver caret range behavior ^0.x npm, Compare-versions, semver specification caret ranges pre-1.0</comment>

<file context>
@@ -20,7 +20,7 @@
   },
   &quot;devDependencies&quot;: {
-    &quot;tsup&quot;: &quot;^8.0.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;^4&quot;
   }
</file context>

[internal] Confidence score: 7/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"jsdom": "26.1.0",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

two-agent-filter: [email protected] requires Node >=20.19.0, but this package declares engines.node >=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to >=20 or use a tsdown version compatible with Node 18.

Libraries consulted:

Prompt for AI agents
Address the following comment on packages/render/package.json at line 133:

<comment>two-agent-filter: [email protected] requires Node &gt;=20.19.0, but this package declares engines.node &gt;=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to &gt;=20 or use a tsdown version compatible with Node 18. 

• **Libraries consulted**: </comment>

<file context>
@@ -130,7 +130,7 @@
     &quot;jsdom&quot;: &quot;26.1.0&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;
   },
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"jsdom": "26.1.0",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

single-agent-filter: [email protected] requires Node >=20.19.0, but this package declares engines.node >=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to >=20 or use a tsdown version compatible with Node 18.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Confirmed [email protected] requires Node >=20.19 via pnpm-lock. However, devDependencies aren’t installed for consumers and CI uses Node 22, so builds run on a compatible Node version. The package’s engines.node >=18 correctly reflects consumer runtime support; aligning it to >=20 would unnecessarily restrict users. No engine-strict config found, so Node 18 installs won’t hard-fail. Impact is limited to local dev on older Node and is intentional given CI setup.

Prompt for AI agents
Address the following comment on packages/render/package.json at line 133:

<comment>single-agent-filter: [email protected] requires Node &gt;=20.19.0, but this package declares engines.node &gt;=18. Adding this devDependency can cause install/build failures on Node 18. Align the engines.node to &gt;=20 or use a tsdown version compatible with Node 18.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Confirmed [email protected] requires Node &gt;=20.19 via pnpm-lock. However, devDependencies aren’t installed for consumers and CI uses Node 22, so builds run on a compatible Node version. The package’s engines.node &gt;=18 correctly reflects consumer runtime support; aligning it to &gt;=20 would unnecessarily restrict users. No engine-strict config found, so Node 18 installs won’t hard-fail. Impact is limited to local dev on older Node and is intentional given CI setup.</comment>

<file context>
@@ -130,7 +130,7 @@
     &quot;jsdom&quot;: &quot;26.1.0&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;
   },
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

two-agent-filter: The build tool tsup has been removed from package.json files but still exists as a dependency in pnpm-lock.yaml. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated.

Libraries consulted:

Prompt for AI agents
Address the following comment on pnpm-lock.yaml at line 46:

<comment>two-agent-filter: The build tool `tsup` has been removed from `package.json` files but still exists as a dependency in `pnpm-lock.yaml`. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated. 

• **Libraries consulted**: </comment>

<file context>
@@ -38,9 +38,12 @@ importers:
       tsup:
         specifier: 8.4.0
-        version: 8.4.0(@microsoft/[email protected](@types/[email protected]))(@swc/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
+        version: 8.4.0(@microsoft/[email protected](@types/[email protected]))(@swc/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
       tsx:
         specifier: 4.20.3
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot Sep 24, 2025

Choose a reason for hiding this comment

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

single-agent-filter: The build tool tsup has been removed from package.json files but still exists as a dependency in pnpm-lock.yaml. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated.

Libraries consulted:

Prompt for AI agents
Address the following comment on pnpm-lock.yaml at line 46:

<comment>single-agent-filter: The build tool `tsup` has been removed from `package.json` files but still exists as a dependency in `pnpm-lock.yaml`. This inconsistency between the package manifests and the lockfile can lead to unpredictable dependency resolution and indicates the lockfile was not correctly updated. 

• **Libraries consulted**: </comment>

<file context>
@@ -38,9 +38,12 @@ importers:
       tsup:
         specifier: 8.4.0
-        version: 8.4.0(@microsoft/[email protected](@types/[email protected]))(@swc/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
+        version: 8.4.0(@microsoft/[email protected](@types/[email protected]))(@swc/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
       tsx:
         specifier: 4.20.3
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

3 issues found across 32 files

Prompt for AI agents (all 3 issues)

Understand the root cause of the following 3 issues and fix them.


<file name="package.json">

<violation number="1" location="package.json:25">
Use a pinned version instead of a caret range to stay consistent with other devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Technically accurate that tsdown uses a caret while most devDependencies are pinned, but the impact is low due to a committed pnpm lockfile guaranteeing reproducible installs. Caret ranges are intentionally used elsewhere (pnpm overrides), so this appears to be a stylistic consistency preference rather than a functional/maintainability issue.</violation>
</file>

<file name="packages/react-email/tsdown.config.ts">

<violation number="1" location="packages/react-email/tsdown.config.ts:1">
The build configuration for the `react-email` package disables the generation of TypeScript declaration files (`.dts`). As a core library, it must produce these files to allow for type-safe consumption by other packages and applications.</violation>
</file>

<file name="packages/section/package.json">

<violation number="1" location="packages/section/package.json:27">
tsdown requires Node &gt;=20.19.0; using it here can break builds under Node 18 environments. Align the Node version used for builds or update the package engines to Node &gt;=20.19.0.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of violation 0 (same issue for build:watch). Keep a single consolidated finding.

• **Libraries consulted**: tsdown node engines requirement, Tsdown</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Use a pinned version instead of a caret range to stay consistent with other devDependencies and ensure reproducible builds.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Technically accurate that tsdown uses a caret while most devDependencies are pinned, but the impact is low due to a committed pnpm lockfile guaranteeing reproducible installs. Caret ranges are intentionally used elsewhere (pnpm overrides), so this appears to be a stylistic consistency preference rather than a functional/maintainability issue.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Use a pinned version instead of a caret range to stay consistent with other devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Technically accurate that tsdown uses a caret while most devDependencies are pinned, but the impact is low due to a committed pnpm lockfile guaranteeing reproducible installs. Caret ranges are intentionally used elsewhere (pnpm overrides), so this appears to be a stylistic consistency preference rather than a functional/maintainability issue.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

@@ -1,4 +1,4 @@
import { defineConfig } from 'tsup';
import { defineConfig } from 'tsdown';
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

The build configuration for the react-email package disables the generation of TypeScript declaration files (.dts). As a core library, it must produce these files to allow for type-safe consumption by other packages and applications.

Prompt for AI agents
Address the following comment on packages/react-email/tsdown.config.ts at line 1:

<comment>The build configuration for the `react-email` package disables the generation of TypeScript declaration files (`.dts`). As a core library, it must produce these files to allow for type-safe consumption by other packages and applications.</comment>

<file context>
@@ -1,4 +1,4 @@
-import { defineConfig } from &#39;tsup&#39;;
+import { defineConfig } from &#39;tsdown&#39;;
 
 export default defineConfig({
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

tsdown requires Node >=20.19.0; using it here can break builds under Node 18 environments. Align the Node version used for builds or update the package engines to Node >=20.19.0.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Duplicate of violation 0 (same issue for build:watch). Keep a single consolidated finding.

Libraries consulted: tsdown node engines requirement, Tsdown

Prompt for AI agents
Address the following comment on packages/section/package.json at line 27:

<comment>tsdown requires Node &gt;=20.19.0; using it here can break builds under Node 18 environments. Align the Node version used for builds or update the package engines to Node &gt;=20.19.0.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Duplicate of violation 0 (same issue for build:watch). Keep a single consolidated finding.

• **Libraries consulted**: tsdown node engines requirement, Tsdown</comment>

<file context>
@@ -23,8 +23,8 @@
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

4 issues found across 32 files

Prompt for AI agents (all 4 issues)

Understand the root cause of the following 4 issues and fix them.


<file name="package.json">

<violation number="1" location="package.json:25">
Avoid caret range for a pre-1.0 build tool; pin exact version to prevent unexpected breakages and keep dependency style consistent with other devDependencies.</violation>
</file>

<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
Prefer a pinned version for build tooling to align with other devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact, stylistic suggestion: the file mixes pinned versions, caret ranges, and workspace ranges; no clear convention mandates pinning here. Minimal practical benefit.</violation>

<violation number="2" location="packages/tailwind/package.json:65">
tsdown is added as a devDependency but is not used by this package&#39;s scripts or config. Remove unused dependency to reduce maintenance and install time.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*</violation>
</file>

<file name="packages/react-email/package.json">

<violation number="1" location="packages/react-email/package.json:11">
Use a consistent watch script across packages; remove the extra `src` argument to match the monorepo pattern and rely on tsdown.config.ts.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact consistency suggestion without clear functional issue. &quot;tsdown --watch src&quot; is valid and may be intentional even with tsdown.config.ts present. No strong evidence of harm or enforced monorepo standard; filter to avoid false positives.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Avoid caret range for a pre-1.0 build tool; pin exact version to prevent unexpected breakages and keep dependency style consistent with other devDependencies.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Avoid caret range for a pre-1.0 build tool; pin exact version to prevent unexpected breakages and keep dependency style consistent with other devDependencies.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Suggested change
"tsdown": "^0.15.1",
"tsdown": "0.15.1",
Fix with Cubic

Copy link
Collaborator

Choose a reason for hiding this comment

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

this violation is true

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Prefer a pinned version for build tooling to align with other devDependencies and ensure reproducible builds.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Low-impact, stylistic suggestion: the file mixes pinned versions, caret ranges, and workspace ranges; no clear convention mandates pinning here. Minimal practical benefit.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Prefer a pinned version for build tooling to align with other devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact, stylistic suggestion: the file mixes pinned versions, caret ranges, and workspace ranges; no clear convention mandates pinning here. Minimal practical benefit.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

tsdown is added as a devDependency but is not used by this package's scripts or config. Remove unused dependency to reduce maintenance and install time.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>tsdown is added as a devDependency but is not used by this package&#39;s scripts or config. Remove unused dependency to reduce maintenance and install time.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

4 issues found across 32 files

Prompt for AI agents (all 4 issues)

Understand the root cause of the following 4 issues and fix them.


<file name="packages/tailwind/package.json">

<violation number="1" location="packages/tailwind/package.json:65">
Unused devDependency: &quot;tsdown&quot; is added but not referenced by @react-email/tailwind scripts or configs, increasing maintenance overhead.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Filter out. tsdown is present in devDependencies but unused by scripts/configs in this package (build uses tsc + vite; no tsdown refs). Given the monorepo-wide migration and low impact, this is not worth reporting under medium sensitivity.</violation>
</file>

<file name="package.json">

<violation number="1" location="package.json:25">
Use an exact version (no caret) for tsdown to match the pinned devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: The line &quot;tsdown&quot;: &quot;^0.15.1&quot; is correctly identified as using a caret while most devDependencies are pinned. However, pnpm’s committed lockfile guarantees deterministic installs, so the caret does not reduce reproducibility in practice unless the lockfile is intentionally updated (which this repo already manages). The repo also uses caret ranges in pnpm overrides, indicating mixed versioning is acceptable. This is a minor consistency/style issue without clear functional or security impact.</violation>
</file>

<file name="examples/postmark/package.json">

<violation number="1" location="examples/postmark/package.json:23">
Adding tsdown ^0.15.1 while keeping TypeScript at ^4 creates a peer version mismatch (tsdown resolves against TypeScript 5.x). Align TypeScript to v5 to avoid tooling inconsistencies.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: No authoritative evidence that [email protected] mandates TypeScript 5.x. Docs don’t state a TS peer requirement. The lockfile’s workspace resolution to TS 5.8.3 is typical and doesn’t prove a functional mismatch with the example’s local TypeScript ^4. No demonstrated breakage; impact is speculative. Not high-confidence or high-impact.

• **Libraries consulted**: tsdown, Tsdown</violation>
</file>

<file name="packages/preview/package.json">

<violation number="1" location="packages/preview/package.json:26">
Build scripts reference the tsdown CLI, but the repository shows no tsdown dependency or usage; running these scripts is likely to fail without adding tsdown to the workspace.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"tailwindcss": "3.4.10",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Unused devDependency: "tsdown" is added but not referenced by @react-email/tailwind scripts or configs, increasing maintenance overhead.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: Filter out. tsdown is present in devDependencies but unused by scripts/configs in this package (build uses tsc + vite; no tsdown refs). Given the monorepo-wide migration and low impact, this is not worth reporting under medium sensitivity.

Prompt for AI agents
Address the following comment on packages/tailwind/package.json at line 65:

<comment>Unused devDependency: &quot;tsdown&quot; is added but not referenced by @react-email/tailwind scripts or configs, increasing maintenance overhead.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Filter out. tsdown is present in devDependencies but unused by scripts/configs in this package (build uses tsc + vite; no tsdown refs). Given the monorepo-wide migration and low impact, this is not worth reporting under medium sensitivity.</comment>

<file context>
@@ -62,7 +62,7 @@
     &quot;tailwindcss&quot;: &quot;3.4.10&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;,
     &quot;vite&quot;: &quot;6.3.4&quot;,
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"pkg-pr-new": "0.0.54",
"tsconfig": "workspace:*",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Use an exact version (no caret) for tsdown to match the pinned devDependencies and ensure reproducible builds.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: The line "tsdown": "^0.15.1" is correctly identified as using a caret while most devDependencies are pinned. However, pnpm’s committed lockfile guarantees deterministic installs, so the caret does not reduce reproducibility in practice unless the lockfile is intentionally updated (which this repo already manages). The repo also uses caret ranges in pnpm overrides, indicating mixed versioning is acceptable. This is a minor consistency/style issue without clear functional or security impact.

Prompt for AI agents
Address the following comment on package.json at line 25:

<comment>Use an exact version (no caret) for tsdown to match the pinned devDependencies and ensure reproducible builds.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: The line &quot;tsdown&quot;: &quot;^0.15.1&quot; is correctly identified as using a caret while most devDependencies are pinned. However, pnpm’s committed lockfile guarantees deterministic installs, so the caret does not reduce reproducibility in practice unless the lockfile is intentionally updated (which this repo already manages). The repo also uses caret ranges in pnpm overrides, indicating mixed versioning is acceptable. This is a minor consistency/style issue without clear functional or security impact.</comment>

<file context>
@@ -22,7 +22,7 @@
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;tsx&quot;: &quot;4.20.3&quot;,
     &quot;turbo&quot;: &quot;2.5.4&quot;,
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

},
"devDependencies": {
"tsup": "^8.0.0",
"tsdown": "^0.15.1",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Adding tsdown ^0.15.1 while keeping TypeScript at ^4 creates a peer version mismatch (tsdown resolves against TypeScript 5.x). Align TypeScript to v5 to avoid tooling inconsistencies.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: No authoritative evidence that [email protected] mandates TypeScript 5.x. Docs don’t state a TS peer requirement. The lockfile’s workspace resolution to TS 5.8.3 is typical and doesn’t prove a functional mismatch with the example’s local TypeScript ^4. No demonstrated breakage; impact is speculative. Not high-confidence or high-impact.

Libraries consulted: tsdown, Tsdown

Prompt for AI agents
Address the following comment on examples/postmark/package.json at line 23:

<comment>Adding tsdown ^0.15.1 while keeping TypeScript at ^4 creates a peer version mismatch (tsdown resolves against TypeScript 5.x). Align TypeScript to v5 to avoid tooling inconsistencies.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: No authoritative evidence that [email protected] mandates TypeScript 5.x. Docs don’t state a TS peer requirement. The lockfile’s workspace resolution to TS 5.8.3 is typical and doesn’t prove a functional mismatch with the example’s local TypeScript ^4. No demonstrated breakage; impact is speculative. Not high-confidence or high-impact.

• **Libraries consulted**: tsdown, Tsdown</comment>

<file context>
@@ -20,7 +20,7 @@
   },
   &quot;devDependencies&quot;: {
-    &quot;tsup&quot;: &quot;^8.0.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;^4&quot;
   }
</file context>

[internal] Confidence score: 8/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

Build scripts reference the tsdown CLI, but the repository shows no tsdown dependency or usage; running these scripts is likely to fail without adding tsdown to the workspace.

Prompt for AI agents
Address the following comment on packages/preview/package.json at line 26:

<comment>Build scripts reference the tsdown CLI, but the repository shows no tsdown dependency or usage; running these scripts is likely to fail without adding tsdown to the workspace.</comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 7/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link
Collaborator

Choose a reason for hiding this comment

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

hallucination

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 32 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="packages/body/package.json">

<violation number="1" location="packages/body/package.json:26">
The build script uses an incorrect, comma-separated value for the `--format` flag. For `tsdown`, each format must be specified with a separate `--format` flag (e.g., `--format esm --format cjs`). This likely results in only one format being built, breaking module compatibility for consumers.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react",
"build:watch": "tsup src/index.ts --format esm,cjs --dts --external react --watch",
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

The build script uses an incorrect, comma-separated value for the --format flag. For tsdown, each format must be specified with a separate --format flag (e.g., --format esm --format cjs). This likely results in only one format being built, breaking module compatibility for consumers.

Prompt for AI agents
Address the following comment on packages/body/package.json at line 26:

<comment>The build script uses an incorrect, comma-separated value for the `--format` flag. For `tsdown`, each format must be specified with a separate `--format` flag (e.g., `--format esm --format cjs`). This likely results in only one format being built, breaking module compatibility for consumers.</comment>

<file context>
@@ -23,8 +23,8 @@
   &quot;scripts&quot;: {
-    &quot;build&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react&quot;,
-    &quot;build:watch&quot;: &quot;tsup src/index.ts --format esm,cjs --dts --external react --watch&quot;,
+    &quot;build&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react&quot;,
+    &quot;build:watch&quot;: &quot;tsdown src/index.ts --format esm,cjs --dts --external react --watch&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Suggested change
"build": "tsdown src/index.ts --format esm,cjs --dts --external react",
"build": "tsdown src/index.ts --format esm --format cjs --dts --external react",
Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 32 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="packages/react-email/tsdown.config.ts">

<violation number="1" location="packages/react-email/tsdown.config.ts:1">
The build configuration for `@react-email/render` does not produce the artifacts required by its `package.json` `exports` map. The new `tsdown.config.ts` omits the logic to create separate builds for `node`, `browser`, and `edge` environments, which will break the package for consumers.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: typescriptUnderstanding.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: The claim targets @react-email/render but the file under review is packages/react-email/tsdown.config.ts. Additionally, the render package’s tsdown config explicitly generates separate builds for node, browser, and edge (outDir: ./dist/node, ./dist/browser, ./dist/edge) which match its package.json exports map pointing to those directories. The react-email package’s config (single ESM output to dist) aligns with its package.json bin entry and does not require multi-environment artifacts. Therefore, the violation is factually incorrect and not applicable.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

@@ -1,4 +1,4 @@
import { defineConfig } from 'tsup';
import { defineConfig } from 'tsdown';
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

The build configuration for @react-email/render does not produce the artifacts required by its package.json exports map. The new tsdown.config.ts omits the logic to create separate builds for node, browser, and edge environments, which will break the package for consumers.

DEV MODE: This violation would have been filtered out by screening filters. Failing filters: typescriptUnderstanding.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: The claim targets @react-email/render but the file under review is packages/react-email/tsdown.config.ts. Additionally, the render package’s tsdown config explicitly generates separate builds for node, browser, and edge (outDir: ./dist/node, ./dist/browser, ./dist/edge) which match its package.json exports map pointing to those directories. The react-email package’s config (single ESM output to dist) aligns with its package.json bin entry and does not require multi-environment artifacts. Therefore, the violation is factually incorrect and not applicable.

Prompt for AI agents
Address the following comment on packages/react-email/tsdown.config.ts at line 1:

<comment>The build configuration for `@react-email/render` does not produce the artifacts required by its `package.json` `exports` map. The new `tsdown.config.ts` omits the logic to create separate builds for `node`, `browser`, and `edge` environments, which will break the package for consumers.

*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: typescriptUnderstanding.*

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: The claim targets @react-email/render but the file under review is packages/react-email/tsdown.config.ts. Additionally, the render package’s tsdown config explicitly generates separate builds for node, browser, and edge (outDir: ./dist/node, ./dist/browser, ./dist/edge) which match its package.json exports map pointing to those directories. The react-email package’s config (single ESM output to dist) aligns with its package.json bin entry and does not require multi-environment artifacts. Therefore, the violation is factually incorrect and not applicable.</comment>

<file context>
@@ -1,4 +1,4 @@
-import { defineConfig } from &#39;tsup&#39;;
+import { defineConfig } from &#39;tsdown&#39;;
 
 export default defineConfig({
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 32 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="packages/react-email/package.json">

<violation number="1" location="packages/react-email/package.json:11">
`tsdown.config.ts` already defines `entry: [&#39;./src/index.ts&#39;]`, so the CLI should just be run in watch mode. Passing `src` after `--watch` makes tsdown interpret it as a new entry and the watch build fails. Drop the extra argument so watch mode respects the config.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: `tsdown --watch &lt;path&gt;` is documented valid usage. The `src` argument scopes the watcher and doesn’t override the configured entry (`./src/index.ts`). The watch script is correct; no failure expected. Not a real issue.

• **Libraries consulted**: tsdown CLI watch entry arguments, Tsdown</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"build": "tsup-node",
"build:watch": "tsup-node --watch src",
"build": "tsdown",
"build:watch": "tsdown --watch src",
Copy link

@cubic-staging cubic-staging bot Sep 26, 2025

Choose a reason for hiding this comment

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

tsdown.config.ts already defines entry: ['./src/index.ts'], so the CLI should just be run in watch mode. Passing src after --watch makes tsdown interpret it as a new entry and the watch build fails. Drop the extra argument so watch mode respects the config.

    DEV MODE: This violation would have been filtered out by GPT-5.

Reasoning:
GPT-5: tsdown --watch <path> is documented valid usage. The src argument scopes the watcher and doesn’t override the configured entry (./src/index.ts). The watch script is correct; no failure expected. Not a real issue.

Libraries consulted: tsdown CLI watch entry arguments, Tsdown

Prompt for AI agents
Address the following comment on packages/react-email/package.json at line 11:

<comment>`tsdown.config.ts` already defines `entry: [&#39;./src/index.ts&#39;]`, so the CLI should just be run in watch mode. Passing `src` after `--watch` makes tsdown interpret it as a new entry and the watch build fails. Drop the extra argument so watch mode respects the config.

        DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: `tsdown --watch &lt;path&gt;` is documented valid usage. The `src` argument scopes the watcher and doesn’t override the configured entry (`./src/index.ts`). The watch script is correct; no failure expected. Not a real issue.

• **Libraries consulted**: tsdown CLI watch entry arguments, Tsdown</comment>

<file context>
@@ -7,8 +7,8 @@
-    &quot;build&quot;: &quot;tsup-node&quot;,
-    &quot;build:watch&quot;: &quot;tsup-node --watch src&quot;,
+    &quot;build&quot;: &quot;tsdown&quot;,
+    &quot;build:watch&quot;: &quot;tsdown --watch src&quot;,
     &quot;clean&quot;: &quot;rm -rf dist&quot;,
     &quot;test&quot;: &quot;vitest run&quot;,
</file context>

[internal] Confidence score: 6/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

@sanxroz
Copy link
Collaborator

sanxroz commented Oct 3, 2025

@cubic-dev-local review this

Copy link
Author

@cubic-dev-local review this

@sanxroz I've started the AI code review. It'll take a few minutes to complete.

1 similar comment
Copy link
Author

@cubic-dev-local review this

@sanxroz I've started the AI code review. It'll take a few minutes to complete.

Copy link
Author

@cubic-dev-local cubic-dev-local bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 32 files

Prompt for AI agents (all 2 issues)

Understand the root cause of the following 2 issues and fix them.


<file name="packages/react-email/tsdown.config.ts">

<violation number="1" location="packages/react-email/tsdown.config.ts:1">
The `.npmignore` file in this package is stale. It references the old `tsup.config.ts` file instead of `tsdown.config.ts`. This will cause the build configuration file to be published to npm.</violation>
</file>

<file name="packages/react-email/package.json">

<violation number="1" location="packages/react-email/package.json:56">
[email protected] requires Node &gt;=20.19.0, but this package still advertises Node &gt;=18.0.0. Developers using the supported Node 18 runtime will hit a build failure as soon as the new dev dependency runs. Please align the Node engine target or avoid upgrading to tsdown until it supports Node 18.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

@@ -1,4 +1,4 @@
import { defineConfig } from 'tsup';
import { defineConfig } from 'tsdown';
Copy link
Author

@cubic-dev-local cubic-dev-local bot Oct 3, 2025

Choose a reason for hiding this comment

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

The .npmignore file in this package is stale. It references the old tsup.config.ts file instead of tsdown.config.ts. This will cause the build configuration file to be published to npm.

Prompt for AI agents
Address the following comment on packages/react-email/tsdown.config.ts at line 1:

<comment>The `.npmignore` file in this package is stale. It references the old `tsup.config.ts` file instead of `tsdown.config.ts`. This will cause the build configuration file to be published to npm.</comment>

<file context>
@@ -1,4 +1,4 @@
-import { defineConfig } from &#39;tsup&#39;;
+import { defineConfig } from &#39;tsdown&#39;;
 
 export default defineConfig({
</file context>

[internal] Confidence score: 10/10

[internal] Posted by: System Design Agent

Fix with Cubic

"react": "19.0.0",
"react-dom": "19.0.0",
"tsup": "8.4.0",
"tsdown": "^0.15.1",
Copy link
Author

@cubic-dev-local cubic-dev-local bot Oct 3, 2025

Choose a reason for hiding this comment

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

[email protected] requires Node >=20.19.0, but this package still advertises Node >=18.0.0. Developers using the supported Node 18 runtime will hit a build failure as soon as the new dev dependency runs. Please align the Node engine target or avoid upgrading to tsdown until it supports Node 18.

Prompt for AI agents
Address the following comment on packages/react-email/package.json at line 56:

<comment>[email protected] requires Node &gt;=20.19.0, but this package still advertises Node &gt;=18.0.0. Developers using the supported Node 18 runtime will hit a build failure as soon as the new dev dependency runs. Please align the Node engine target or avoid upgrading to tsdown until it supports Node 18.</comment>

<file context>
@@ -53,7 +53,7 @@
     &quot;react&quot;: &quot;19.0.0&quot;,
     &quot;react-dom&quot;: &quot;19.0.0&quot;,
-    &quot;tsup&quot;: &quot;8.4.0&quot;,
+    &quot;tsdown&quot;: &quot;^0.15.1&quot;,
     &quot;typescript&quot;: &quot;5.8.3&quot;
   }
</file context>

[internal] Confidence score: 9/10

[internal] Posted by: General AI Review Agent

Fix with Cubic

Copy link
Author

@cubic-dev-local cubic-dev-local bot left a comment

Choose a reason for hiding this comment

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

No issues found across 32 files

Copy link

@cubic-staging cubic-staging bot left a comment

Choose a reason for hiding this comment

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

No issues found across 32 files

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants