CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings
C
63/100
Health score

Insights

6 critical security issues found — immediate action recommended
Strong test suite with 465 test files (Good (50-80%))
31 dependencies scored for hygiene only — no advisory feed was consulted here, so this score is not a vulnerability check. See Security advisories for the OSV cross-check
Very active project — strong development momentum
How to improve this score63 → 95 possible
Gains are computed from the same formula that produced the score — completing everything below is worth 32 points.
+14.7
1. Fix no-hardcoded-secrets: Possible hardcoded passwordsecurity
4 occurrences in 1 file (src/lib/intelligence.ts)
Fix it yourself

Change: Fix no-hardcoded-secrets: Possible hardcoded password (no-hardcoded-secrets)

4 occurrences in 1 file (src/lib/intelligence.ts)

Where — Possible hardcoded password:

  • src/lib/intelligence.ts:467, 472, 538, 1113

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

+7.4
2. Fix no-private-keys: Private key in source codesecurity
2 occurrences in 2 files (src/routes/admin-server-targets.tsx, src/routes/deploy-targets.tsx)
Fix it yourself

Change: Fix no-private-keys: Private key in source code (no-private-keys)

2 occurrences in 2 files (src/routes/admin-server-targets.tsx, src/routes/deploy-targets.tsx)

Where — Private key in source code:

  • src/routes/admin-server-targets.tsx:223
  • src/routes/deploy-targets.tsx:615

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

+4
3. Add ~279 test files to reach a 80% test-to-source ratiotesting
465 test files today against ~930 source files (Good (50-80%))
Fix it yourself

Change: Add ~279 test files to reach a 80% test-to-source ratio

465 test files today against ~930 source files (Good (50-80%))

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

+2.9
4. Fix no-inner-html: Direct innerHTML assignment — potential XSSsecurity
10 occurrences in 4 files (src/lib/markdown-preview.ts, src/routes/connect-claude.tsx, src/routes/debt-map.tsx, …)
Fix it yourself

Change: Fix no-inner-html: Direct innerHTML assignment — potential XSS (no-inner-html)

10 occurrences in 4 files (src/lib/markdown-preview.ts, src/routes/connect-claude.tsx, src/routes/debt-map.tsx, …)

Where — Direct innerHTML assignment — potential XSS:

  • src/lib/markdown-preview.ts:53, 54
  • src/routes/connect-claude.tsx:738
  • src/routes/debt-map.tsx:1120, 1228
  • src/routes/demo.tsx:176, 177, 181, 182, 187

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

+1.5
5. Split the largest files to bring average size under 10,000 bytescomplexity
Average is 14,098 bytes across 1114 files; start with pulls.tsx, web.tsx, schema.ts
Fix it yourself

Change: Split the largest files to bring average size under 10,000 bytes

Average is 14,098 bytes across 1114 files; start with pulls.tsx, web.tsx, schema.ts

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

+1.5
6. Add CONTRIBUTING.mddocumentation
Tells collaborators how to work on the repo
Fix it yourself

Change: Add CONTRIBUTING.md

Tells collaborators how to work on the repo

Make the change on a branch, push it, and open a pull request — the health score recomputes on the next visit.

Security0
0 of 25 possible overall points (weight 25%)
39 findings across 6 rules
6 critical · 0 high · 10 medium
Testing75
15 of 20 possible overall points (weight 20%)
465 test files
Coverage estimate: Good (50-80%)
Complexity60
9 of 15 possible overall points (weight 15%)
1114 source files
Avg file size: 14,098 bytes
Largest: pulls.tsx (305,619 bytes)
Dependencies100
15 of 15 possible overall points (weight 15%)
31 dependencies (package.json, mobile/package.json, vscode-extension/package.json, editor-extensions/vscode/package.json)
Lockfile present
Documentation85
9 of 10 possible overall points (weight 10%)
README found
License present
75 doc files
Activity100
15 of 15 possible overall points (weight 15%)
340 commits (30d)
12 contributors
Last push: 0d ago
Security findings39 findings · 6 distinct rules
critical
Possible hardcoded password — 4 occurrences in 1 file
no-hardcoded-secrets · intelligence.ts (4)
details
src/lib/intelligence.ts — lines 467, 472, 538, 1113
critical
Private key in source code — 2 occurrences in 2 files
no-private-keys · admin-server-targets.tsx (1), deploy-targets.tsx (1)
details
src/routes/admin-server-targets.tsx — line 223
src/routes/deploy-targets.tsx — line 615
medium
Direct innerHTML assignment — potential XSS — 10 occurrences in 4 files
no-inner-html · demo.tsx (5), markdown-preview.ts (2), debt-map.tsx (2), +1 more
details
src/routes/demo.tsx — lines 176, 177, 181, 182, 187
src/lib/markdown-preview.ts — lines 53, 54
src/routes/debt-map.tsx — lines 1120, 1228
src/routes/connect-claude.tsx — line 738
low
Security linter rule disabled — 10 occurrences in 10 files
no-security-disable · self-host-bootstrap.ts (1), cloud-deploy.ts (1), intelligence.ts (1), +7 more
details
scripts/self-host-bootstrap.ts — line 43
src/lib/cloud-deploy.ts — line 577
src/lib/intelligence.ts — line 616
src/lib/post-deploy-smoke.ts — line 15
src/lib/ssh-server.ts — line 33
src/lib/systemd-notify.ts — line 47
src/routes/admin-advancement.tsx — line 26
src/routes/admin-self-host.tsx — line 26
src/routes/admin-status.tsx — line 25
src/routes/audit.tsx — line 20
low
SHA1 hash — consider SHA-256+ — 3 occurrences in 2 files
weak-hash · source-index.ts (2), ai-patch-generator.ts (1)
details
src/lib/selfcheck/source-index.ts — lines 264, 304
src/lib/ai-patch-generator.ts — line 181
info
Security-related TODO found — 10 occurrences in 4 files
security-todo · ai-auto-issues.ts (4), debt-analyzer.ts (3), SITE_AUDIT.md (2), +1 more
details
src/lib/ai-auto-issues.ts — lines 10, 35, 329, 384
src/lib/debt-analyzer.ts — lines 82, 84, 295
docs/SITE_AUDIT.md — lines 9, 14
src/hooks/post-receive.ts — line 372
Zero-config CIAuto-detected · Bun project detected · TypeScript detected · Hono framework
Type check
bun tsc --noEmit
Test
bun test
Type check
bun run typecheck