Department of Vibe Code Assessment

Report Card

Student: langflow-ai/openragTerm: March 13, 2026
Grade
0
Kinda Sloppy

Grades by Subject

Subject
Grade
Score
Issues
Security
A
100
Dependencies
A
100
Documentation
A
100
Test Coverage
B
88
1
Code Structure
F
0
83
Error Handling
F
34
11
Share on X

Teacher's Comments

Well, langflow-ai/openrag, showing up is only half the battle and here you brought a novel's worth of code that nobody asked for, scattered across 527 files. Mountains of lines with as much structure as a doodle in the margin—plus enough nesting to give an octopus vertigo—mean your code’s a maze no sane debugger wants to enter. Tests are decent, but when your source outpaces your tests by twenty to one, that’s like studying for the test with a single flashcard. Clean dependencies and documentation don’t rescue code architecture that’s holding a paperweight and hoping for a grade boost.

Error Handling:Eleven issues mean your app’s error handling is more like error hoping; not great.
Code Structure:Zero points and 83 issues? Your code’s a Jenga tower that’s waiting to be toppled.
Test Coverage:Surprisingly good effort here—someone actually did their homework on tests.
Security:Perfect score, so at least you locked the doors before dropping the textbooks.
Dependencies:All green; you kept your toolbox tidy, even if the tools were rusty.
Documentation:Spot on, your manual is the one thing future devs can actually read without crying.

Areas for Improvement

(95)
high

Very low test-to-source ratio (4.1%) — tests are 2977 LOC vs 72751 LOC source

17 test files, 354 source files, ratio: 4.1%
Test coverage is very thin (4.1% test-to-source ratio). Add tests for the most critical paths first.
high·flows/components/opensearch_multimodal.py

Large file (1962 lines) — this is a real problem

1962 LOC, threshold is 400
flows/components/opensearch_multimodal.py is 1962 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·frontend/app/chat/page.tsx

Large file (1240 lines) — this is a real problem

1240 LOC, threshold is 400
frontend/app/chat/page.tsx is 1240 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·frontend/app/settings/page.tsx

Large file (1269 lines) — this is a real problem

1269 LOC, threshold is 400
frontend/app/settings/page.tsx is 1269 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·frontend/components/knowledge-dropdown.tsx

Deep nesting detected (10 levels) — refactor this

Max nesting depth: 10
frontend/components/knowledge-dropdown.tsx has 10 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
high·frontend/hooks/useChatStreaming.ts

Deep nesting detected (14 levels) — refactor this

Max nesting depth: 14
frontend/hooks/useChatStreaming.ts has 14 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
high·src/agent.py

Large file (845 lines) — this is a real problem

845 LOC, threshold is 400
src/agent.py is 845 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/api/connectors.py

Large file (865 lines) — this is a real problem

865 LOC, threshold is 400
src/api/connectors.py is 865 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/api/provider_validation.py

Large file (808 lines) — this is a real problem

808 LOC, threshold is 400
src/api/provider_validation.py is 808 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/api/settings.py

Large file (1838 lines) — this is a real problem

1838 LOC, threshold is 400
src/api/settings.py is 1838 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/api/settings.py

Deep nesting detected (9 levels) — refactor this

Max nesting depth: 9
src/api/settings.py has 9 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
high·src/config/settings.py

Large file (885 lines) — this is a real problem

885 LOC, threshold is 400
src/config/settings.py is 885 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/connectors/google_drive/connector.py

Large file (1225 lines) — this is a real problem

1225 LOC, threshold is 400
src/connectors/google_drive/connector.py is 1225 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/connectors/onedrive/connector.py

Large file (925 lines) — this is a real problem

925 LOC, threshold is 400
src/connectors/onedrive/connector.py is 925 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/connectors/sharepoint/connector.py

Large file (857 lines) — this is a real problem

857 LOC, threshold is 400
src/connectors/sharepoint/connector.py is 857 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/main.py

Large file (1930 lines) — this is a real problem

1930 LOC, threshold is 400
src/main.py is 1930 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/models/processors.py

Large file (822 lines) — this is a real problem

822 LOC, threshold is 400
src/models/processors.py is 822 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/services/flows_service.py

Large file (1131 lines) — this is a real problem

1131 LOC, threshold is 400
src/services/flows_service.py is 1131 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/services/task_service.py

Large file (773 lines) — this is a real problem

773 LOC, threshold is 400
src/services/task_service.py is 773 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/tui/main.py

Large file (843 lines) — this is a real problem

843 LOC, threshold is 400
src/tui/main.py is 843 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/tui/managers/container_manager.py

Large file (1623 lines) — this is a real problem

1623 LOC, threshold is 400
src/tui/managers/container_manager.py is 1623 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/tui/managers/container_manager.py

Deep nesting detected (9 levels) — refactor this

Max nesting depth: 9
src/tui/managers/container_manager.py has 9 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
high·src/tui/managers/env_manager.py

Large file (784 lines) — this is a real problem

784 LOC, threshold is 400
src/tui/managers/env_manager.py is 784 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/tui/screens/monitor.py

Large file (1156 lines) — this is a real problem

1156 LOC, threshold is 400
src/tui/screens/monitor.py is 1156 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·src/utils/container_utils.py

Deep nesting detected (9 levels) — refactor this

Max nesting depth: 9
src/utils/container_utils.py has 9 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·frontend/app/chat/page.tsx

High console.log density (23 instances) — likely debug code left in production

23 console.log calls in 1240 lines
In frontend/app/chat/page.tsx, there are 23 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/components/cloud-picker/onedrive-v8-handler.ts

High console.log density (12 instances) — likely debug code left in production

12 console.log calls in 475 lines
In frontend/components/cloud-picker/onedrive-v8-handler.ts, there are 12 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/components/cloud-picker/provider-handlers.ts:136

Catch block only logs error without handling it

catch (error) {
                  console.warn("Failed to fetch file details:", error);
            
In frontend/components/cloud-picker/provider-handlers.ts at line 136, the catch block only console.logs the error. Add proper error handling — return an error response, show a user-facing message, or re-throw.
medium·frontend/components/cloud-picker/provider-handlers.ts

High console.log density (9 instances) — likely debug code left in production

9 console.log calls in 317 lines
In frontend/components/cloud-picker/provider-handlers.ts, there are 9 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/components/cloud-picker/sharepoint-v8-handler.ts

High console.log density (45 instances) — likely debug code left in production

45 console.log calls in 637 lines
In frontend/components/cloud-picker/sharepoint-v8-handler.ts, there are 45 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/components/cloud-picker/unified-cloud-picker.tsx

High console.log density (8 instances) — likely debug code left in production

8 console.log calls in 223 lines
In frontend/components/cloud-picker/unified-cloud-picker.tsx, there are 8 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/components/knowledge-dropdown.tsx

High console.log density (7 instances) — likely debug code left in production

7 console.log calls in 724 lines
In frontend/components/knowledge-dropdown.tsx, there are 7 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/contexts/auth-context.tsx

High console.log density (8 instances) — likely debug code left in production

8 console.log calls in 185 lines
In frontend/contexts/auth-context.tsx, there are 8 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/contexts/chat-context.tsx

High console.log density (11 instances) — likely debug code left in production

11 console.log calls in 488 lines
In frontend/contexts/chat-context.tsx, there are 11 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·frontend/hooks/useChatStreaming.ts:564

Catch block only logs error without handling it

catch (parseError) {
                console.warn("Failed to parse chunk:", line, parseError);
     
In frontend/hooks/useChatStreaming.ts at line 564, the catch block only console.logs the error. Add proper error handling — return an error response, show a user-facing message, or re-throw.
medium·frontend/hooks/useChatStreaming.ts

High console.log density (5 instances) — likely debug code left in production

5 console.log calls in 708 lines
In frontend/hooks/useChatStreaming.ts, there are 5 console.log statements. Replace with a proper logging library or remove debug logs before shipping.
medium·flows/components/opensearch_multimodal.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
flows/components/opensearch_multimodal.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·frontend/app/chat/_components/chat-input.tsx

Large file (620 lines) — should probably split this

620 LOC, threshold is 400
frontend/app/chat/_components/chat-input.tsx is 620 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/app/chat/page.tsx

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
frontend/app/chat/page.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·frontend/app/knowledge/page.tsx

Large file (668 lines) — should probably split this

668 LOC, threshold is 400
frontend/app/knowledge/page.tsx is 668 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/app/onboarding/_components/onboarding-card.tsx

Large file (707 lines) — should probably split this

707 LOC, threshold is 400
frontend/app/onboarding/_components/onboarding-card.tsx is 707 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/components/cloud-picker/provider-handlers.ts

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
frontend/components/cloud-picker/provider-handlers.ts has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·frontend/components/cloud-picker/sharepoint-v8-handler.ts

Large file (637 lines) — should probably split this

637 LOC, threshold is 400
frontend/components/cloud-picker/sharepoint-v8-handler.ts is 637 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/components/knowledge-dropdown.tsx

Large file (724 lines) — should probably split this

724 LOC, threshold is 400
frontend/components/knowledge-dropdown.tsx is 724 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/components/knowledge-filter-panel.tsx

Large file (510 lines) — should probably split this

510 LOC, threshold is 400
frontend/components/knowledge-filter-panel.tsx is 510 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/components/navigation.tsx

Large file (580 lines) — should probably split this

580 LOC, threshold is 400
frontend/components/navigation.tsx is 580 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·frontend/hooks/useChatStreaming.ts

Large file (708 lines) — should probably split this

708 LOC, threshold is 400
frontend/hooks/useChatStreaming.ts is 708 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·sdks/python/openrag_sdk/chat.py

Large file (501 lines) — should probably split this

501 LOC, threshold is 400
sdks/python/openrag_sdk/chat.py is 501 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/api/connectors.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/api/connectors.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/api/provider_validation.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/api/provider_validation.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/connectors/connection_manager.py

Large file (534 lines) — should probably split this

534 LOC, threshold is 400
src/connectors/connection_manager.py is 534 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/connectors/onedrive/connector.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/connectors/onedrive/connector.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/connectors/onedrive/oauth.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/connectors/onedrive/oauth.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/connectors/sharepoint/connector.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/connectors/sharepoint/connector.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/connectors/sharepoint/oauth.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/connectors/sharepoint/oauth.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/auth_service.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/services/auth_service.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/chat_service.py

Large file (650 lines) — should probably split this

650 LOC, threshold is 400
src/services/chat_service.py is 650 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/services/chat_service.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/services/chat_service.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/flows_service.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/services/flows_service.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/langflow_file_service.py

Large file (618 lines) — should probably split this

618 LOC, threshold is 400
src/services/langflow_file_service.py is 618 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/services/langflow_file_service.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/services/langflow_file_service.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/langflow_history_service.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/services/langflow_history_service.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/services/search_service.py

Large file (509 lines) — should probably split this

509 LOC, threshold is 400
src/services/search_service.py is 509 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/services/search_service.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/services/search_service.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/tui/cli.py

Large file (509 lines) — should probably split this

509 LOC, threshold is 400
src/tui/cli.py is 509 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/main.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/tui/main.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/tui/managers/docling_manager.py

Large file (629 lines) — should probably split this

629 LOC, threshold is 400
src/tui/managers/docling_manager.py is 629 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/screens/config.py

Large file (710 lines) — should probably split this

710 LOC, threshold is 400
src/tui/screens/config.py is 710 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/screens/diagnostics.py

Large file (596 lines) — should probably split this

596 LOC, threshold is 400
src/tui/screens/diagnostics.py is 596 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/screens/diagnostics.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/tui/screens/diagnostics.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/tui/screens/welcome.py

Large file (648 lines) — should probably split this

648 LOC, threshold is 400
src/tui/screens/welcome.py is 648 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/screens/welcome.py

Deep nesting detected (7 levels) — getting hard to follow

Max nesting depth: 7
src/tui/screens/welcome.py has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·src/tui/utils/startup_checks.py

Large file (687 lines) — should probably split this

687 LOC, threshold is 400
src/tui/utils/startup_checks.py is 687 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·src/tui/utils/version_check.py

Deep nesting detected (6 levels) — getting hard to follow

Max nesting depth: 6
src/tui/utils/version_check.py has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·frontend/app/knowledge/chunks/page.tsx

Large file (451 lines) — barely over threshold

451 LOC, threshold is 400
frontend/app/knowledge/chunks/page.tsx is 451 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·frontend/components/cloud-picker/onedrive-v8-handler.ts

Large file (475 lines) — barely over threshold

475 LOC, threshold is 400
frontend/components/cloud-picker/onedrive-v8-handler.ts is 475 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·frontend/components/task-notification-menu.tsx

Large file (411 lines) — barely over threshold

411 LOC, threshold is 400
frontend/components/task-notification-menu.tsx is 411 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·frontend/contexts/chat-context.tsx

Large file (488 lines) — barely over threshold

488 LOC, threshold is 400
frontend/contexts/chat-context.tsx is 488 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·frontend/contexts/task-context.tsx

Large file (444 lines) — barely over threshold

444 LOC, threshold is 400
frontend/contexts/task-context.tsx is 444 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/agent.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/agent.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/api/knowledge_filter.py

Large file (429 lines) — barely over threshold

429 LOC, threshold is 400
src/api/knowledge_filter.py is 429 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/config/config_manager.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/config/config_manager.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/connectors/google_drive/connector.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/connectors/google_drive/connector.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/connectors/service.py

Large file (439 lines) — barely over threshold

439 LOC, threshold is 400
src/connectors/service.py is 439 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/connectors/sharepoint/oauth.py

Large file (429 lines) — barely over threshold

429 LOC, threshold is 400
src/connectors/sharepoint/oauth.py is 429 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/services/auth_service.py

Large file (456 lines) — barely over threshold

456 LOC, threshold is 400
src/services/auth_service.py is 456 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/services/models_service.py

Large file (421 lines) — barely over threshold

421 LOC, threshold is 400
src/services/models_service.py is 421 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/tui/managers/docling_manager.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/tui/managers/docling_manager.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/tui/managers/env_manager.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/tui/managers/env_manager.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/tui/screens/config.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/tui/screens/config.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/tui/screens/monitor.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/tui/screens/monitor.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low·src/tui/widgets/command_modal.py

Large file (442 lines) — barely over threshold

442 LOC, threshold is 400
src/tui/widgets/command_modal.py is 442 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
low·src/utils/version_utils.py

Deep nesting detected (5 levels) — common in real code

Max nesting depth: 5
src/utils/version_utils.py has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
low

Multiple files with similar names and content: src/connectors/google_drive/connector.py, src/connectors/onedrive/connector.py, src/connectors/sharepoint/connector.py

3 files with base name 'connector' share similar code
There are 3 files that look like copies of each other. Consolidate them or extract shared logic.
low

Multiple files with similar names and content: src/connectors/google_drive/oauth.py, src/connectors/onedrive/oauth.py, src/connectors/sharepoint/oauth.py

3 files with base name 'oauth' share similar code
There are 3 files that look like copies of each other. Consolidate them or extract shared logic.

Progress Report

3 runs on record for this student

Run 2 of 3

+12 points since last run

Overall59
Code Structure0
Error Handling34
Test Coverage88
Security100+80
Dependencies100
Documentation100
2 fixed95 still outstanding

Fixed since last run

Hardcoded API key or secret found in source codedocs/docusaurus.config.js
Hardcoded password found in source codescripts/setup-e2e.sh