Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughThis PR updates dependency versions across the monorepo, converts many date-fns default imports to named imports, moves the MCP client import to Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
apps/web/app/api/user/stats/sender-emails/route.ts (1)
3-50: Namedformatimport + minor date filter nuanceSwitching to
import { format } from "date-fns/format"is consistent with other files and keeps theformat(d.startOfPeriod, "LLL dd, y")call unchanged.As a small robustness tweak, consider changing the
if (fromDate)/if (toDate)checks to explicit null/undefined checks (e.g.,if (fromDate != null)) so that a value of0—if ever valid in your timestamp domain—is not treated as “no filter”. Also, please confirm your date-fns version supports named imports from"date-fns/format"as used here.apps/web/app/(app)/[emailAccountId]/bulk-unsubscribe/BulkUnsubscribeDesktop.tsx (1)
114-121: Slightly reduced max width for sender columnDropping the
min-[1550px]:max-w-[300px]breakpoint in favor of a constantmax-w-[250px]will increase truncation on very wide screens but keeps the layout simpler and consistent. If you still see overly aggressive truncation on large desktops, consider reintroducing a wider max width only at high breakpoints.apps/web/components/DatePickerWithRange.tsx (1)
96-107: Specify radix when usingNumber.parseIntfor robustnessOn Line 104,
Number.parseInt(value)is called without a radix. While your current values are decimal day offsets, omitting the radix is against the stated guidelines and can be brittle.Consider tightening this to something like:
const days = Number.parseInt(value, 10); // ... from: subDays(now, days),or simply
const days = Number(value)if you only ever expect base‑10 numbers.apps/web/utils/date.ts (1)
73-79: Double‑check UTC labeling informatDateForLLM
formatDateForLLMformats the providedDatewithformat(date, "EEEE, yyyy-MM-dd HH:mm:ss 'UTC'"). Unless callers are guaranteed to pass a Date already normalized to UTC, this will output local time while appending the string “UTC”, which can be misleading.Consider either:
- Converting
dateto UTC before formatting, or- Dropping the hardcoded
'UTC'suffix and letting the consumer handle timezone labeling.This isn’t introduced by this PR but is worth verifying while you’re standardizing date handling.
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (1)
apps/web/package.json(6 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/package.json
📄 CodeRabbit inference engine (.cursor/rules/installing-packages.mdc)
Use
pnpmas the package manager
Files:
apps/web/package.json
apps/web/package.json
📄 CodeRabbit inference engine (.cursor/rules/installing-packages.mdc)
Don't install packages in root; install in
apps/webworkspace instead
Files:
apps/web/package.json
!(pages/_document).{jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/ultracite.mdc)
Don't use the next/head module in pages/_document.js on Next.js projects
Files:
apps/web/package.json
🧠 Learnings (5)
📚 Learning: 2025-11-25T14:42:08.869Z
Learnt from: CR
Repo: elie222/inbox-zero PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-11-25T14:42:08.869Z
Learning: Applies to **/*.{jsx,tsx} : Make sure all dependencies are correctly specified in React hooks
Applied to files:
apps/web/package.json
📚 Learning: 2025-11-25T14:38:37.508Z
Learnt from: CR
Repo: elie222/inbox-zero PR: 0
File: .cursor/rules/prisma-enum-imports.mdc:0-0
Timestamp: 2025-11-25T14:38:37.508Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Always import Prisma enums from `@/generated/prisma/enums` instead of `@/generated/prisma/client` to avoid Next.js bundling errors in client components
Applied to files:
apps/web/package.json
📚 Learning: 2025-11-25T14:42:11.919Z
Learnt from: CR
Repo: elie222/inbox-zero PR: 0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-11-25T14:42:11.919Z
Learning: Applies to utils/**/*.{js,ts,jsx,tsx} : The `utils` folder contains core app logic such as Next.js Server Actions and Gmail API requests
Applied to files:
apps/web/package.json
📚 Learning: 2025-11-25T14:40:13.649Z
Learnt from: CR
Repo: elie222/inbox-zero PR: 0
File: .cursor/rules/ui-components.mdc:0-0
Timestamp: 2025-11-25T14:40:13.649Z
Learning: Applies to **/*.{tsx,ts,jsx,js} : Use Shadcn UI and Tailwind for components and styling
Applied to files:
apps/web/package.json
📚 Learning: 2025-11-25T14:40:15.063Z
Learnt from: CR
Repo: elie222/inbox-zero PR: 0
File: .cursor/rules/ui-components.mdc:0-0
Timestamp: 2025-11-25T14:40:15.063Z
Learning: Applies to **/*.{tsx,ts} : Use Shadcn UI and Tailwind for components and styling
Applied to files:
apps/web/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: cubic · AI code reviewer
🔇 Additional comments (3)
apps/web/package.json (3)
144-146: Verify React 19 breaking changes are addressed in the codebase.React is upgraded to
19.2.1and React DOM to19.2.1(major version bump from 18.x). React 19 introduces breaking changes such as removedpropTypesanddefaultPropsfor function components, deprecated string refs, removed legacy Context APIs, and changes touseRefand ref callbacks. Ensure that the codebase has been updated to handle these breaking changes, particularly in TypeScript ref callbacks and hook usage.
95-95: Verifyaipackage version compatibility with @AI-SDK modules.The
aipackage is updated to5.0.106, and multiple@ai-sdk/*packages are also updated to new versions. Ensure that version compatibility across the AI SDK ecosystem is maintained, as version mismatches can lead to runtime errors or unexpected behavior.
7-7: No action required—prisma migrate is correctly handled outside the build script.The build script properly runs only
next build. Database migrations are intentionally handled through separate deployment mechanisms: Docker containers runprisma migrate deployon startup (viadocker/scripts/start.shandapps/web/entrypoint.sh), and AWS deployments use theDIRECT_URLenvironment variable configured in AWS Copilot. This separation of concerns is the correct approach—migrations should not run during the build phase but rather during container initialization or in a separate deployment step.Likely an incorrect or invalid review comment.
| "@ai-sdk/gateway": "2.0.18", | ||
| "@ai-sdk/google": "2.0.44", | ||
| "@ai-sdk/groq": "2.0.32", | ||
| "@ai-sdk/mcp": "0.0.11", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
@ai-sdk/mcp npm package versions releases
💡 Result:
Brief summary — @ai-sdk/mcp npm package:
- Package exists and is published under the @AI-SDK scope (used by the AI SDK). [1]
- Latest published version (most recent release) appears to be 0.0.11 (listed as released ~6 hours ago in the package index snapshot). [1]
- The AI SDK docs reference importing from "@ai-sdk/mcp" (API: experimental_createMCPClient). [2]
Sources:
[1] Ecosyste.ms / npm package summary for @ai-sdk/mcp.
[2] AI SDK documentation referencing @ai-sdk/mcp (experimental_createMCPClient).
🏁 Script executed:
# Check the package.json file for context and comments around this dependency
cd apps/web && head -30 package.jsonRepository: elie222/inbox-zero
Length of output: 1160
🏁 Script executed:
# Search for any comments or documentation about @ai-sdk/mcp version pinning
rg -i "mcp|migration" --type json --type md --type ts --type tsx apps/web/ -A 2 -B 2 | head -50Repository: elie222/inbox-zero
Length of output: 89
🏁 Script executed:
# Search for recent commits or PRs mentioning @ai-sdk/mcp or MCP
git log --oneline --all -- apps/web/package.json | head -20Repository: elie222/inbox-zero
Length of output: 149
🏁 Script executed:
# Search for MCP usage in the codebase to understand the context
rg "@ai-sdk/mcp|experimental_createMCPClient" --type ts --type tsx -l | head -10Repository: elie222/inbox-zero
Length of output: 89
🏁 Script executed:
# Check if there are any CHANGELOG or documentation files explaining MCP integration
fd -e md -e txt | xargs grep -l -i "mcp\|@ai-sdk/mcp" 2>/dev/null | head -5Repository: elie222/inbox-zero
Length of output: 44
Address the pre-release version of @ai-sdk/mcp.
@ai-sdk/mcp is pinned to version 0.0.11, which is a pre-release version marked as experimental by the AI SDK team. While this appears to be the latest available version (and intentionally updated in a recent "fix versions" commit), pre-release versions lack stability guarantees and may introduce breaking changes. Consider documenting why this pre-release version is necessary, or plan for a migration path once a stable release becomes available.
🤖 Prompt for AI Agents
In apps/web/package.json at line 24, the dependency "@ai-sdk/mcp": "0.0.11" pins
a pre-release experimental version; update the package.json and repository
metadata to either (a) document why this pre-release is required by adding a
comment or README entry referencing the feature/bugfix that necessitates 0.0.11
and its risks, or (b) change the dependency strategy to be more future-proof
(e.g., use a semver range or Git tag that can be migrated) and add an open issue
or TODO in the repo tracking migration to a stable release; ensure the
package.json change is accompanied by a short PR description referencing the
documentation or issue for traceability.
| "@formkit/auto-animate": "0.9.0", | ||
| "@googleapis/calendar": "^12.0.0", | ||
| "@googleapis/gmail": "15.0.0", | ||
| "@googleapis/calendar": "^14.0.0", |
There was a problem hiding this comment.
Resolve version constraint inconsistency for @googleapis/calendar.
@googleapis/calendar uses a caret range ^14.0.0, while similar Google API packages use fixed versions (e.g., @googleapis/gmail at 16.1.0, @googleapis/people at 6.0.0). This inconsistency could allow unexpected minor/patch version bumps and potential compatibility issues. Align with the fixed-version pattern used elsewhere in the dependency graph.
Suggested change:
- "@googleapis/calendar": "^14.0.0",
+ "@googleapis/calendar": "14.0.0",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "@googleapis/calendar": "^14.0.0", | |
| "@googleapis/calendar": "14.0.0", |
🤖 Prompt for AI Agents
In apps/web/package.json at line 33, the dependency "@googleapis/calendar":
"^14.0.0" uses a caret range while other Google API packages are pinned; change
it to a fixed version (remove the caret, e.g., "14.0.0" or the specific tested
patch you want to pin) to match the project's fixed-version pattern, then
regenerate the lockfile by running your package manager install (npm/yarn/pnpm)
so the lockfile is updated.
Upgrade dependencies across web and CLI, switch
date-fnsto path-based named imports, and capBulkUnsubscribeRowDesktoptable cell width at 250px instead of 300px at ≥1550pxUpdates repository dependencies and lockfile, replaces default
date-fnsimports with path-based named imports, removesprisma migrate deployfrom the web build script, and adjusts a desktop bulk unsubscribe table cell width rule.📍Where to Start
Start with the build script and dependency changes in package.json, then review the
date-fnsimport pattern updates beginning at utils/date.ts.Macroscope summarized f9484b2.
Summary by CodeRabbit
Chores
Style
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.