Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

jingyaogong/minimind-o

https://github.com/jingyaogong/minimind-o · scanned 2026-05-16 22:30 UTC (17 hours, 47 minutes ago) · 10 languages

47 findings (15 legacy + 32 scanner) 13th percentile · Python · small (2-20K LoC) Scanner says 74 (lower by 23)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 17 hours, 47 minutes ago · v1 · 47 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Severity: Critical 0 High 11 Medium 14 Low 21 Source: Legacy 15 9-layer 32 Crowd 0 Layer: Quality 10 Security 21 Software 5 Frontend 1 Cicd 1 Api 9
Scan summary Repository scanned at 74.2/100 with 77.8% coverage. It contains 154 nodes across 9 cross-layer flows, written primarily in mixed languages. Engine surfaced 32 findings — concentrated in security (10), api (9), quality (6). Risk profile is high: 0 critical, 9 high, 3 medium. Recommended next step: open the security layer findings first — that's where the highest-impact wins live.

Showing 47 of 47 findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Legacy security path_traversal conf 0.80 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads.
scripts/web_demo_omni.py:136 path_traversallegacy
high Legacy quality testing No test files found
Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions.
testinglegacy
high 9-layer security auth conf 1.00 Flask mutation route `chat` without `@login_required` — webui/web_demo.py:296
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
webui/web_demo.py:296 authowaspauth.flask.unauth_route
high 9-layer security auth conf 1.00 Flask mutation route `clone_voice` without `@login_required` — webui/web_demo.py:267
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
webui/web_demo.py:267 authowaspauth.flask.unauth_route
high 9-layer security auth conf 1.00 Flask mutation route `delete_voice` without `@login_required` — webui/web_demo.py:284
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
webui/web_demo.py:284 authowaspauth.flask.unauth_route
high 9-layer security auth conf 1.00 Flask mutation route `switch_model` without `@login_required` — webui/web_demo.py:256
Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent.
webui/web_demo.py:256 authowaspauth.flask.unauth_route
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in eval_omni.py:39
Found a known-risky pattern (eval_used). Review and replace if possible.
eval_omni.py:39 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in model/model_omni.py:135
Found a known-risky pattern (eval_used). Review and replace if possible.
model/model_omni.py:135 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in scripts/web_demo_omni.py:82
Found a known-risky pattern (eval_used). Review and replace if possible.
scripts/web_demo_omni.py:82 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in trainer/train_sft_omni.py:118
Found a known-risky pattern (eval_used). Review and replace if possible.
trainer/train_sft_omni.py:118 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in webui/web_demo.py:212
Found a known-risky pattern (eval_used). Review and replace if possible.
webui/web_demo.py:212 owaspeval_used
medium Legacy security auth conf 0.92 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
authlegacy
medium Legacy security auth conf 0.74 [AUC002] Low visible authorization coverage in route inventory: Only 0.0% of discovered routes show nearby authentication, authorization, middleware, or public-route evidence.
Only 0.0% of discovered routes show nearby authentication, authorization, middleware, or public-route evidence.
authlegacy
medium Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /.
A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /.
webui/web_demo.py:243 authlegacy
medium Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /call.
A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /call.
webui/web_demo.py:245 authlegacy
medium Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /chat.
A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /chat.
webui/web_demo.py:296 authlegacy
medium Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /delete_voice.
A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: ANY /delete_voice.
webui/web_demo.py:284 authlegacy
medium Legacy security deserialization conf 1.00 [SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted model files.
Use torch.load(..., weights_only=True) or use safetensors format.
scripts/web_demo_omni.py:100 deserializationlegacy
medium Legacy security deserialization conf 1.00 [SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted model files.
Use torch.load(..., weights_only=True) or use safetensors format.
scripts/convert_omni.py:20 deserializationlegacy
medium Legacy security deserialization conf 1.00 [SEC011] Unsafe PyTorch Model Loading: torch.load() uses pickle internally and can execute arbitrary code from untrusted model files.
Use torch.load(..., weights_only=True) or use safetensors format.
eval_omni.py:31 deserializationlegacy
medium Legacy quality practices No CI/CD configuration found
Add a CI/CD pipeline: create .github/workflows/ci.yml for GitHub Actions with steps to lint, test, and build on every push and pull request.
practiceslegacy
medium Legacy quality quality conf 0.78 Public web service has no security.txt
security.txt gives researchers and customers a safe disclosure channel. Public web apps and APIs should publish it under /.well-known/security.txt.
.well-known/security.txt qualitylegacy
medium 9-layer security coverage conf 1.00 No auth library detected
The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). Either auth lives in custom code, in a separate service, or is missing.
coverageauth
medium 9-layer cicd coverage conf 1.00 No CI/CD pipelines detected
No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints.
coverage
medium 9-layer quality tests conf 1.00 Very low test-to-source ratio
0 test file(s) for 10 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths.
testscoverage
low Legacy security auth conf 0.76 [AUC005] No authorization-focused tests detected: No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
authlegacy
low Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
webui/web_demo.py:29 qualitylegacy
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: webui/web_demo.py:scan_hf_models, scripts/web_demo_omni.py:scan_hf_models This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: webui/web_demo.py:clone_voice_path, webui/web_demo.py:clone_voice This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: model/model_omni.py:reset, model/model_omni.py:reset This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 5 places
Functions with the same first-5-line body hash: model/model_omni.py:forward, model/model_omni.py:forward, model/model_omni.py:forward, model/model_omni.py:forward This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or docum…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 7 places
Functions with the same first-5-line body hash: model/model_minimind.py:forward, model/model_minimind.py:forward, model/model_minimind.py:forward, model/model_minimind.py:forward This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Cons…
integrityduplicatedry
low 9-layer software dead-code conf 1.00 Possibly dead Python function: convert_transformers2torch
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/convert_omni.py:41 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: omni_collate_fn
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
trainer/train_sft_omni.py:24 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: recv_loop
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
webui/web_demo.py:382 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: respond
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/web_demo_omni.py:188 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: vlm_collate_fn
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
trainer/trainer_utils.py:165 dead-code
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /
`webui/web_demo.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /call
`webui/web_demo.py` declares `ANY /call` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /chat
`webui/web_demo.py` declares `ANY /chat` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /clone_voice
`webui/web_demo.py` declares `ANY /clone_voice` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /delete_voice
`webui/web_demo.py` declares `ANY /delete_voice` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /models
`webui/web_demo.py` declares `ANY /models` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /switch_model
`webui/web_demo.py` declares `ANY /switch_model` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /voices
`webui/web_demo.py` declares `ANY /voices` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /ws/realtime
`webui/web_demo.py` declares `ANY /ws/realtime` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
info 9-layer frontend coverage conf 1.00 No frontend routes/components detected
No React/Vue/Next routes were found. This is fine for backend-only repos.
coverage
{# ── 2026-05-17 Round 14: AI-agent bridge footer ────────────────────── Discoverability: the /agents/voting/ guide + MCP manifest exist but aren't linked from anywhere users actually land. Small, opt-in footer. #}
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/b15e88c4-14b4-4910-8df2-19845d14efdf/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/b15e88c4-14b4-4910-8df2-19845d14efdf/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.