Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@steven-tey
Copy link
Collaborator

@steven-tey steven-tey commented Oct 22, 2025

Summary by CodeRabbit

  • Changes
    • Removed domain transfer functionality between workspaces.
    • Removed link transfer capability between workspaces.
    • Updated error messaging for transfer-related operations.

@vercel
Copy link
Contributor

vercel bot commented Oct 22, 2025

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

Project Deployment Preview Updated (UTC)
dub Ready Ready Preview Oct 22, 2025 8:03pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 22, 2025

Walkthrough

This PR removes transfer functionality for both domains and links across the codebase. Deletions include domain/link transfer API routes, cron processors, email utilities, UI modals, and transfer controls. Error messages are updated to reflect the removal of transfer capabilities.

Changes

Cohort / File(s) Summary
Domain Transfer Infrastructure
apps/web/app/(ee)/api/cron/domains/transfer/route.ts, apps/web/app/(ee)/api/cron/domains/transfer/utils.ts, apps/web/app/api/domains/[domain]/transfer/route.ts
Removed cron job handler for processing domain transfers, email notification utility for transfer completion, and main API endpoint for initiating domain transfers (including workspace quota validation and analytics).
Link Transfer Route
apps/web/app/api/links/[linkId]/transfer/route.ts
Removed API endpoint for transferring links between workspaces, including link validation, quota checks, and cache/webhook cleanup.
Error Message Updates
apps/web/app/api/links/[linkId]/route.ts, apps/web/app/api/links/upsert/route.ts
Updated forbidden transfer error messages to generic denial text: "You cannot transfer links to another workspace."
Transfer UI Modals
apps/web/ui/modals/transfer-domain-modal.tsx, apps/web/ui/modals/transfer-link-modal.tsx
Removed modal components and hooks for domain and link transfers, including workspace selection, form submission, and API integration.
Transfer UI Controls
apps/web/ui/domains/domain-card.tsx, apps/web/ui/links/link-controls.tsx
Removed transfer button, modal triggering, keyboard shortcuts, and associated imports from domain and link control components.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Rationale: The PR spans multiple interconnected systems (API routes, utilities, UI modals, and controls) across 10+ files with deletions rather than additions. While deletions are generally lower-risk than new logic, the breadth requires verification that all transfer references are cleanly removed, no orphaned state remains in components, and error handling appropriately reflects the change. The heterogeneity of file types and deletion scope elevates complexity.

Possibly related PRs

  • Standardize the Zod usage #2968 — Modifies the same transfer-related route files to standardize imports, indicating coordination around the transfer feature removal.

Suggested reviewers

  • devkiran

Poem

🐰 With a hop and a skip, we're hopping away,
Transfer buttons gone—no moving today!
Modals and routes now part of the past,
Simpler workflows, streamlined at last!
The warren rejoices, transfers no more! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "Remove transfer feature" is directly and comprehensively related to the main change in the changeset. The pull request systematically removes all transfer functionality across the codebase, including API routes for transferring domains and links, modal components and UI controls that trigger transfers, utility functions, and related error messages. The title is concise, clear, and non-vague—it uses specific language ("transfer feature") rather than generic terms like "misc updates." A teammate scanning the git history would immediately understand that this PR eliminates the transfer capability entirely.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch remove-transfer

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c72b71e and 26fe223.

📒 Files selected for processing (10)
  • apps/web/app/(ee)/api/cron/domains/transfer/route.ts (0 hunks)
  • apps/web/app/(ee)/api/cron/domains/transfer/utils.ts (0 hunks)
  • apps/web/app/api/domains/[domain]/transfer/route.ts (0 hunks)
  • apps/web/app/api/links/[linkId]/route.ts (1 hunks)
  • apps/web/app/api/links/[linkId]/transfer/route.ts (0 hunks)
  • apps/web/app/api/links/upsert/route.ts (1 hunks)
  • apps/web/ui/domains/domain-card.tsx (1 hunks)
  • apps/web/ui/links/link-controls.tsx (1 hunks)
  • apps/web/ui/modals/transfer-domain-modal.tsx (0 hunks)
  • apps/web/ui/modals/transfer-link-modal.tsx (0 hunks)
💤 Files with no reviewable changes (6)
  • apps/web/ui/modals/transfer-domain-modal.tsx
  • apps/web/app/(ee)/api/cron/domains/transfer/route.ts
  • apps/web/app/api/domains/[domain]/transfer/route.ts
  • apps/web/ui/modals/transfer-link-modal.tsx
  • apps/web/app/(ee)/api/cron/domains/transfer/utils.ts
  • apps/web/app/api/links/[linkId]/transfer/route.ts
⏰ 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: build
🔇 Additional comments (8)
apps/web/app/api/links/upsert/route.ts (1)

109-114: Well-aligned error message improvement.

The error message update from referencing the (now-deleted) transfer endpoint to "You cannot transfer links to another workspace." is clearer and more user-friendly. Since the dedicated transfer route is removed in this PR, the new message appropriately reflects that transfers are not supported.

apps/web/app/api/links/[linkId]/route.ts (1)

140-145: LGTM! Error message updated appropriately.

The error message has been updated to reflect the removal of the transfer feature. The validation logic correctly prevents changing the workspace/project ID, and the new message clearly communicates this restriction.

apps/web/ui/domains/domain-card.tsx (2)

41-41: LGTM! Import cleanup is correct.

The FolderInput icon import has been appropriately removed as it was only used for the now-deleted transfer button.


315-564: LGTM! Transfer functionality cleanly removed from domain card.

All transfer-related code has been properly removed from the DomainCardMenu component, including:

  • Transfer button from the popover menu
  • useTransferDomainModal hook usage
  • TransferDomainModal component rendering
  • Related icon imports

The remaining domain management functionality is intact and unaffected.

apps/web/ui/links/link-controls.tsx (4)

22-23: LGTM! Import statements updated correctly.

The import statements have been properly cleaned up to remove transfer-related components and icons.


32-41: LGTM! Transfer option removed from OPTIONS.

The OPTIONS object has been correctly updated to exclude the transfer shortcut.


144-182: LGTM! Keyboard shortcuts updated correctly.

The keyboard shortcut handler has been properly updated to exclude the transfer shortcut.


184-356: LGTM! Transfer UI elements cleanly removed.

All transfer-related UI components have been properly removed from the render logic:

  • Transfer button removed from the popover menu
  • TransferLinkModal component no longer rendered
  • All other link control options remain functional

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.

❤️ Share

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

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