mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-30 11:26:24 +02:00
Resolve all 5 deferred items from Epic 5 adversarial code review: - Migration 124: Add CASCADE to subscriptionstatus enum drop (prevent orphaned references) - Stripe rate limiting: In-memory per-user limiter (20 calls/60s) on verify-checkout-session - Subscription request cooldown: 24h cooldown before resubmitting rejected requests - Token reset date: Initialize on first subscription activation - Checkout URL validation: Confirmed HTTPS-only (Stripe always returns HTTPS) Implement Story 5.4 (Usage Tracking & Rate Limit Enforcement): - Page quota pre-check at HTTP upload layer - Extend UserRead schema with token quota fields - Frontend 402 error handling in document upload - Quota indicator in dashboard sidebar Story 5.5 (Admin Seed & Approval Flow): - Seed admin user migration with default credentials warning - Subscription approval/rejection routes with admin guard - 24h rejection cooldown enforcement Story 5.6 (Admin-Only Model Config): - Global model config visible across all search spaces - Per-search-space model configs with user access control - Superuser CRUD for global configs Additional fixes from code review: - PageLimitService: PAST_DUE subscriptions enforce free-tier limits - TokenQuotaService: PAST_DUE subscriptions enforce free-tier limits - Config routes: Fixed user_id.is_(None) filter on mutation endpoints - Stripe webhook: Added guard against silent plan downgrade on unrecognized price_id All changes formatted with Ruff (Python) and Biome (TypeScript). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __tests__/components/assistant-ui/connector-popup/connect-forms/components | ||
| app | ||
| atoms | ||
| blog/content | ||
| changelog/content | ||
| components | ||
| content/docs | ||
| contexts | ||
| contracts | ||
| hooks | ||
| i18n | ||
| lib | ||
| messages | ||
| public | ||
| types | ||
| zero | ||
| .cursorrules | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| biome.json | ||
| bun.lock | ||
| components.json | ||
| docker-entrypoint.js | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| eslint.config.mjs | ||
| instrumentation-client.ts | ||
| instrumentation.ts | ||
| LICENSE | ||
| mdx-components.tsx | ||
| next.config.ts | ||
| nohup.out | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| source.config.ts | ||
| start-dev.sh | ||
| svgr.d.ts | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||