feat(dashboard): plan-gated product pages + professional sidebar overhaul #4048
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
Originally written by @ccantynz-alt on GitHub.
Imported from https://github.com/ccantynz-alt/AlecRae.com/pull/83
Summary
components/plan-gate.tsx) wraps any page in a paywall that reads the user's plan from/v1/auth/meand blocks access with an upgrade prompt — nothing ships that costs us money without the customer paying firstNew pages
/agent/files/security-center/integrations/hygiene/achievements/notifications/translateInfrastructure
apps/web/lib/plan.ts—PlanTiertype,TIER_ORDER,isPlanAtLeast(),FEATURE_PLANSmapapps/web/components/plan-gate.tsx—PlanGate(paywall wrapper) +PlanBadge(coloured tier chip)apps/web/lib/api-features.ts— 7 new typed API clients (agentApi,filesApi,securityCenterApi,hygieneApi,gamificationApi,pushNotificationsApi,translateApi); allfeatureFetchcalls carry explicit generic type parametersTest plan
/agenton a free account — should see upgrade paywall/agenton a Pro account — should see agent status and draft queue/security-center— should be accessible on all tiers/fileson a free account — should see upgrade prompt/notifications— push permission flow works on supported browsers/translate— translate button fires API, result displays inline/integrations— connect/disconnect platform toggles workNODE_TLS_REJECT_UNAUTHORIZED=0 ./node_modules/.bin/next build(70/70 static pages, 0 errors)🤖 Generated with Claude Code
https://claude.ai/code/session_013yjjcbxNHi9CvnxhXNPYAa
Generated by Claude Code