Repository navigation
feat: migrate to TanStack Query v5, add rate-limit cleanup cron, and overhaul DOX docs - #17
Conversation
VaibhavDaveDev
commented
Sep 21, 2026
- Migrate client-side server-data fetching to TanStack Query v5:
- Add query-client factory, QueryProvider, and centralized queryKeys
- Replace manual useEffect + useState and custom caches across dashboard, property, billing, and notification islands
- Wrap island roots in QueryProvider via withErrorBoundary
- Remove obsolete dashboard-cache.ts and use-async-resource.ts
- Enhance rate limiting and storage hygiene:
- Add on-write expired key pruning to in-memory email rate limiter
- Add GET /api/cron/cleanup-stale-rate-limits route to purge stale D1 rate-limit rows (OTP, password changes, daily counters)
- Add comprehensive test suites for cron cleanup and email rate-limit pruning
- Harden Cloudflare Turnstile bot protection:
- Switch verify endpoint payload to URL-encoded form data
- Add request timeout, token length guard, and hostname allowlist validation
- Implement proper widget ID tracking and lifecycle reset in useTurnstile
- Upgrade DOX documentation hierarchy:
- Replace stubs with operational contracts across AGENTS.md, src/AGENTS.md, src/api/AGENTS.md, and routes/lib child docs
- Add Prettier formatting tooling:
- Add .prettierignore and npm scripts (pnpm format, pnpm format:check)
- Format codebase to project Prettier standard
…overhaul DOX docs - Migrate client-side server-data fetching to TanStack Query v5: - Add query-client factory, QueryProvider, and centralized queryKeys - Replace manual useEffect + useState and custom caches across dashboard, property, billing, and notification islands - Wrap island roots in QueryProvider via withErrorBoundary - Remove obsolete dashboard-cache.ts and use-async-resource.ts - Enhance rate limiting and storage hygiene: - Add on-write expired key pruning to in-memory email rate limiter - Add GET /api/cron/cleanup-stale-rate-limits route to purge stale D1 rate-limit rows (OTP, password changes, daily counters) - Add comprehensive test suites for cron cleanup and email rate-limit pruning - Harden Cloudflare Turnstile bot protection: - Switch verify endpoint payload to URL-encoded form data - Add request timeout, token length guard, and hostname allowlist validation - Implement proper widget ID tracking and lifecycle reset in useTurnstile - Upgrade DOX documentation hierarchy: - Replace stubs with operational contracts across AGENTS.md, src/AGENTS.md, src/api/AGENTS.md, and routes/lib child docs - Add Prettier formatting tooling: - Add .prettierignore and npm scripts (pnpm format, pnpm format:check) - Format codebase to project Prettier standard
|
Important Review skippedToo many files! This PR contains 140 files, which is 40 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (140)
You can disable this status message by setting the 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 |