This repo is a prime example of “let’s shove everything into a few giant files and call it a day.” With over 3,000 lines in a single doc and multiple 500+ line files begging for mercy, your code structure is the dumpster fire here. The killer: you nailed error handling and security, but forgot to tell your package.json how to test itself. Fix the sprawling files and add a test script before this mess eats your sanity.
Error Handling:Zero errors found—your AI decided to actually do this one right.
Code Structure:Sixty-six issues and multiple monolithic files prove your codebase is a glutton for punishment.
Test Coverage:Almost perfect, but no test script in package.json means tests might as well not exist.
Security:No red flags here, your AI’s got the locks tight.
Dependencies:Mostly clean, but one issue suggests you’re not fully vetting your external baggage.
Documentation:Docs are colossal but present—just maybe split those 3k+ line beasts before anyone tries reading them.
docs/plans/2026-02-19-phase-3-search-retrieval-plan.md is 981 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-19-phase-4-chat-implementation-plan.md is 2034 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-19-phase-5-eval-cost-impl.md is 3246 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md is 2096 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md is 533 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-24-rest-api-plan.md
Large file (2090 lines) — likely doing too much
2090 LOC, threshold is 400
docs/plans/2026-02-24-rest-api-plan.md is 2090 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-24-vlm-visual-extraction-plan.md is 1181 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-25-contextual-chunking-plan.md is 761 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
docs/plans/2026-02-25-semantic-caching-plan.md is 1176 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·lib/demo/content.ts
Large file (561 lines) — likely doing too much
561 LOC, threshold is 400
lib/demo/content.ts is 561 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·planning/PHASE_2_5_PLAN.md
Large file (1745 lines) — likely doing too much
1745 LOC, threshold is 400
planning/PHASE_2_5_PLAN.md is 1745 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·pnpm-lock.yaml
Large file (10335 lines) — likely doing too much
10335 LOC, threshold is 400
pnpm-lock.yaml is 10335 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·types/database.types.ts
Large file (910 lines) — likely doing too much
910 LOC, threshold is 400
types/database.types.ts is 910 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·app/(dashboard)/admin/actions.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
app/(dashboard)/admin/actions.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/(dashboard)/documents/[id]/page.tsx
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
app/(dashboard)/documents/[id]/page.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/(dashboard)/eval/actions.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
app/(dashboard)/eval/actions.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/chat/route.ts
Deep nesting detected (8 levels) — hard to read and maintain
Max nesting depth: 8
app/api/chat/route.ts has 8 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/v1/chat/route.ts
Deep nesting detected (7 levels) — hard to read and maintain
Max nesting depth: 7
app/api/v1/chat/route.ts has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/v1/search/route.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
app/api/v1/search/route.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/auth/confirm/route.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
app/auth/confirm/route.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/admin/demo-manager.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/admin/demo-manager.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ai/message.tsx
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
components/ai/message.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ai/prompt-input.tsx
Deep nesting detected (7 levels) — hard to read and maintain
Max nesting depth: 7
components/ai/prompt-input.tsx has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/chat/chat-interface.tsx
Deep nesting detected (9 levels) — hard to read and maintain
Max nesting depth: 9
components/chat/chat-interface.tsx has 9 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/chat/conversation-list.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/chat/conversation-list.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/document-detail.tsx
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
components/documents/document-detail.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/document-list.tsx
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
components/documents/document-list.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/upload-form.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/documents/upload-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/eval-results.tsx
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
components/eval/eval-results.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/feedback-suggestions.tsx
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
components/eval/feedback-suggestions.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/test-set-manager.tsx
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
components/eval/test-set-manager.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/forgot-password-form.tsx
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
components/forgot-password-form.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/login-form.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/login-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/settings/api-keys-section.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/settings/api-keys-section.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/settings/system-prompt-editor.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/sign-up-form.tsx
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
components/sign-up-form.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/tutorial/fetch-data-steps.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/tutorial/fetch-data-steps.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/tutorial/sign-up-user-steps.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/tutorial/sign-up-user-steps.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ui/input-group.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/ui/input-group.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ui/sidebar.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/ui/sidebar.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/update-password-form.tsx
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
components/update-password-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/api-guide.md
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
docs/api-guide.md has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
docs/plans/2026-02-19-phase-3-search-retrieval-plan.md has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (10 levels) — hard to read and maintain
Max nesting depth: 10
docs/plans/2026-02-19-phase-4-chat-implementation-plan.md has 10 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
docs/plans/2026-02-19-phase-5-eval-cost-impl.md has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-24-rest-api-plan.md
Deep nesting detected (10 levels) — hard to read and maintain
Max nesting depth: 10
docs/plans/2026-02-24-rest-api-plan.md has 10 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
docs/plans/2026-02-25-semantic-caching-plan.md has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/embedder.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
lib/rag/embedder.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/eval-runner.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
lib/rag/eval-runner.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/config.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
lib/rag/optimizer/config.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/experiment.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
lib/rag/optimizer/experiment.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/session.ts
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
lib/rag/optimizer/session.ts has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/reranker.ts
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
lib/rag/reranker.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/supabase/proxy.ts
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
lib/supabase/proxy.ts has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/supabase/server.ts
Deep nesting detected (6 levels) — hard to read and maintain
Max nesting depth: 6
lib/supabase/server.ts has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·services/ingestion/src/vlm.py
Deep nesting detected (4 levels) — hard to read and maintain
Max nesting depth: 4
services/ingestion/src/vlm.py has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·types/database.types.ts
Deep nesting detected (5 levels) — hard to read and maintain
Max nesting depth: 5
types/database.types.ts has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·package.json
High dependency count (36)
36 production dependencies
Review your 36 dependencies. Some may be unused or replaceable with built-in alternatives.
low
Multiple files with similar names suggesting copy-paste: app/(dashboard)/actions.ts, app/(dashboard)/admin/actions.ts, app/(dashboard)/chat/actions.ts
7 files with base name 'actions'
There are 7 files that look like copies of each other. Consolidate them or give them meaningful, distinct names.
low
Multiple files with similar names suggesting copy-paste: lib/rag/optimizer/config.ts, services/ingestion/src/config.py, supabase/config.toml
3 files with base name 'config'
There are 3 files that look like copies of each other. Consolidate them or give them meaningful, distinct names.