Refactor App.tsx into modular layout components#102
Conversation
- Handle TOCTOU race in registration by catching Prisma P2002 errors - Add GET to CORS allowed methods so non-registration endpoints work - Set mode 0o600 on persisted license key file - Create new license for re-registering customers with no active one - Remove dead error prop from UpgradePrompt - Remove process.env mutation in activateLicenseKey - Fix fallback registration URL port from 3002 to 3001 Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
Co-authored-by: Kristiyan Ivanov <k.ivanow@gmail.com>
- Handle TOCTOU race in registration by catching Prisma P2002 errors - Add GET to CORS allowed methods so non-registration endpoints work - Set mode 0o600 on persisted license key file - Create new license for re-registering customers with no active one - Remove dead error prop from UpgradePrompt - Remove process.env mutation in activateLicenseKey - Fix fallback registration URL port from 3002 to 3001 Co-Authored-By: Claude <noreply@anthropic.com>
Resolve conflicts keeping: - TooltipProvider wrapper and error prop pattern from master - Validate-before-persist activation flow from branch - ServiceUnavailableException error handling from branch - Masked license key logging from master - CORS and registration URL fixes from branch Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 267f626. Configure here.
|
btw, do we need the CLI entry in the sidebar as well, when we have it at the bottom of the screen? It can free some ui space if we remove it from the sidebar |
Agree |
|
Thank you for your contribution! Before we can merge this PR, you need to sign our Contributor License Agreement. To sign, please comment below with:
I have read the CLA Document and I hereby sign the CLA 2 out of 3 committers have signed the CLA. |
|
recheck |
…sidebar Extract inline components into src/components/layout/, add shadcn Sidebar/Sheet/Input primitives, resolve merge conflicts with master.
c8bdcf2 to
28c75f8
Compare

Summary
App.tsxintosrc/components/layout/:AppLayout,AppSidebar,NavItem,CommunityBanner,FeedbackModalSidebar,Sheet,Input, anduse-mobilehookSidebarProviderfor shadcn sidebar supportTest plan
pnpm build— passes clean🤖 Generated with Claude Code
Note
Medium Risk
Touches licensing/entitlement and introduces a new registration email flow plus runtime license activation/persistence, which can impact access control and onboarding if misconfigured. Also adds CORS/env changes and substantial UI layout refactoring that could affect navigation and CLI panel behavior.
Overview
UI layout refactor: Extracts the large inline layout from
App.tsxinto modular components (AppLayout,AppSidebar,NavItem,FeedbackModal) and switches to new shadcn primitives (Sidebar,Sheet,Input,useIsMobile) for a responsive, collapsible sidebar and updated CLI panel positioning/print hiding.Early-access licensing UX: Adds a new Settings → License section that lets Community users request a free license key via
VITE_REGISTRATION_URLand activate a key via a newPOST /license/activate, with immediatelicense-statusrefresh; locked nav items now route to Settings with a “Register free” tooltip/badge, and webhook upgrade copy is updated accordingly.Backend licensing/registration: Adds a
v1/registrationsendpoint in the entitlement service that creates/reuses a customer and issues (or re-sends) an Enterprise license key via a new Resend-basedEmailService; entitlement validation now supports cloud tenant resolution viatenantId, and the licenses service gains runtime activation with safe state handling, disk persistence of the key, and more robust error propagation/parsing (with new tests).Reviewed by Cursor Bugbot for commit 28c75f8. Bugbot is set up for automated code reviews on this repo. Configure here.