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.

vlakir/angarion

https://github.com/vlakir/angarion · scanned 2026-06-16 00:52 UTC (2 months, 1 week ago)

84 raw signals (0 security + 84 graph)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 months, 1 week ago · v1 · 69 actionable findings from 1 signal source. 15 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Corpus Intelligence Cross-corpus context (cohort percentile, top patterns, fix plan) is shown only on repositories you own. Sign up and connect your repo to view it.
Scan summary Repository scanned at 59.7/100 with 88.9% coverage. It contains 2166 nodes across 30 cross-layer flows, written primarily in mixed languages. Engine surfaced 84 findings — concentrated in api (35), quality (34), security (10). Risk profile is high: 0 critical, 8 high, 3 medium. Recommended next step: open the api layer findings first — that's where the highest-impact wins live.

Showing 65 of 69 actionable findings. 84 raw detector signals were grouped into reader-sized issues. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high System graph security auth conf 1.00 FastAPI DELETE `delete_setting` without auth dependency — src/angarion/adapters/http/ops.py:274
`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:274 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI POST `catchup` without auth dependency — src/angarion/adapters/http/ops.py:351
`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:351 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI POST `pause` without auth dependency — src/angarion/adapters/http/ops.py:289
`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:289 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI POST `requeue` without auth dependency — src/angarion/adapters/http/ops.py:327
`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:327 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI POST `restart` without auth dependency — src/angarion/adapters/http/ops.py:339
`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:339 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI POST `resume` without auth dependency — src/angarion/adapters/http/ops.py:308
`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:308 securityAuth fastapi unauth mutation
high System graph security auth conf 1.00 FastAPI PUT `put_settings` without auth dependency — src/angarion/adapters/http/ops.py:259
`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public.
src/angarion/adapters/http/ops.py:259 securityAuth fastapi unauth mutation
high System graph security security conf 1.00 Insecure pattern 'new_function_used' in src/angarion/adapters/http/static/htmx.min.js:1
Found a known-risky pattern (new_function_used). Review and replace if possible.
src/angarion/adapters/http/static/htmx.min.js:1 New function used
medium System graph quality Placeholder conf 1.00 Critical user flow still appears backed by mock or placeholder data
A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded.
Mock dataCritical flowGenerated repo pattern
medium System graph security security conf 1.00 Insecure pattern 'domparser_html_parse' in src/angarion/adapters/http/static/htmx.min.js:1
Found a known-risky pattern (domparser_html_parse). Review and replace if possible.
src/angarion/adapters/http/static/htmx.min.js:1 Domparser html parse
medium System graph security security conf 1.00 Insecure pattern 'insert_adjacent_html' in src/angarion/adapters/http/static/htmx.min.js:1
Found a known-risky pattern (insert_adjacent_html). Review and replace if possible.
src/angarion/adapters/http/static/htmx.min.js:1 Insert adjacent html
low System graph quality Integrity conf 1.00 14 occurrences Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scripts/seed_session.py:load_secrets, scripts/tg_login.py:load_secrets 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.
14 occurrences
repo-level (14 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 2 occurrences Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: src/angarion/adapters/memory/storage.py:load, src/angarion/adapters/memory/storage.py:load, src/angarion/adapters/memory/storage.py:load This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene)…
2 occurrences
repo-level (2 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 4 places
Functions with the same first-5-line body hash: src/angarion/adapters/memory/storage.py:get, src/angarion/adapters/memory/storage.py:get, src/angarion/adapters/memory/storage.py:get, src/angarion/adapters/memory/storage.py:get This is *the* AI-coder failure mode (4× more duplication in vibe-coded …
duplicatesduplication
low System graph quality Integrity conf 1.00 2 occurrences Near-duplicate function bodies in 5 places
Functions with the same first-5-line body hash: examples/digest/processor.py:process, src/angarion/application/llm.py:process, src/angarion/application/processors.py:process, src/angarion/application/processors.py:process This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos…
2 occurrences
repo-level (2 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: src/angarion/adapters/memory/storage.py:put, src/angarion/adapters/memory/storage.py:put, src/angarion/adapters/memory/storage.py:put, src/angarion/adapters/storage/stores.py:put This is *the* AI-coder failure mode (4× more duplication in vibe-coded …
duplicatesduplication
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `key_v1` in tests/unit/domain/test_keys.py:91
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in src/angarion/adapters/http/ops.py:170
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in src/angarion/adapters/memory/storage.py:112
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in src/angarion/adapters/telegram/catchup.py:191
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in src/angarion/application/ingest.py:116
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in src/angarion/application/worker.py:236
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in tests/unit/adapters/http/test_api_v1.py:81
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `model_copy` in tests/unit/test_bootstrap.py:403
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `test_retry_copy` in tests/unit/domain/test_models.py:198
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph software Dead code conf 1.00 Possibly dead Python function: decorate
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/angarion/application/processors.py:82
low System graph software Dead code conf 1.00 Possibly dead Python function: handle
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/angarion/adapters/telegram/listener.py:203
low System graph software Dead code conf 1.00 Possibly dead Python function: process_result_value
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/angarion/adapters/storage/orm.py:59
low System graph quality Provenance conf 1.00 Shallow git history limits provenance confidence
The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence.
Git historyGenerated repo pattern
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/angarion/adapters/http/static/htmx.min.js:1
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph api Wiring conf 1.00 Unused endpoint: DELETE /settings/{key}
`src/angarion/adapters/http/ops.py` declares `DELETE /settings/{key}` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: DELETE /{user_id}
`src/angarion/adapters/http/auth/admin.py` declares `DELETE /{user_id}` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /
`src/angarion/adapters/http/ui.py` declares `GET /` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /diagnostics
`src/angarion/adapters/http/routes.py` declares `GET /diagnostics` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /dlq
`src/angarion/adapters/http/ops_pages.py` declares `GET /dlq` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /events
`src/angarion/adapters/http/routes.py` declares `GET /events` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /fragments/cursors
`src/angarion/adapters/http/ui.py` declares `GET /fragments/cursors` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /fragments/event-counts
`src/angarion/adapters/http/ui.py` declares `GET /fragments/event-counts` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /fragments/events-table
`src/angarion/adapters/http/ui.py` declares `GET /fragments/events-table` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /fragments/pipelines
`src/angarion/adapters/http/ui.py` declares `GET /fragments/pipelines` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /fragments/queue
`src/angarion/adapters/http/ui.py` declares `GET /fragments/queue` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /login
`src/angarion/adapters/http/auth/pages.py` declares `GET /login` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /logout
`src/angarion/adapters/http/auth/pages.py` declares `GET /logout` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /pipelines
`src/angarion/adapters/http/ui.py` declares `GET /pipelines` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /register
`src/angarion/adapters/http/auth/pages.py` declares `GET /register` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /settings
`src/angarion/adapters/http/ops_pages.py` declares `GET /settings` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /stats
`examples/web/ext.py` declares `GET /stats` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /ui/ext
`examples/web/ext.py` declares `GET /ui/ext` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: GET /users
`src/angarion/adapters/http/auth/pages.py` declares `GET /users` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: PATCH /{user_id}
`src/angarion/adapters/http/auth/admin.py` declares `PATCH /{user_id}` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /
`src/angarion/adapters/http/auth/admin.py` declares `POST /` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /catchup
`src/angarion/adapters/http/ops_pages.py` declares `POST /catchup` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /dlq/{uid}/requeue
`src/angarion/adapters/http/ops_pages.py` declares `POST /dlq/{uid}/requeue` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /login
`src/angarion/adapters/http/auth/pages.py` declares `POST /login` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /pipelines/{pipeline}/pause
`src/angarion/adapters/http/ops_pages.py` declares `POST /pipelines/{pipeline}/pause` 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 consu…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /pipelines/{pipeline}/resume
`src/angarion/adapters/http/ops_pages.py` declares `POST /pipelines/{pipeline}/resume` 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 cons…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /register
`src/angarion/adapters/http/auth/users.py` declares `POST /register` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /restart
`src/angarion/adapters/http/ops_pages.py` declares `POST /restart` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /settings
`src/angarion/adapters/http/ops_pages.py` declares `POST /settings` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /settings/{key}/reset
`src/angarion/adapters/http/ops_pages.py` declares `POST /settings/{key}/reset` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /users/create
`src/angarion/adapters/http/auth/pages.py` declares `POST /users/create` 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.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /users/{user_id}/approve
`src/angarion/adapters/http/auth/pages.py` declares `POST /users/{user_id}/approve` 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 consume…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /users/{user_id}/deactivate
`src/angarion/adapters/http/auth/pages.py` declares `POST /users/{user_id}/deactivate` 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 cons…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: POST /users/{user_id}/delete
`src/angarion/adapters/http/auth/pages.py` declares `POST /users/{user_id}/delete` 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…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: PUT /settings
`src/angarion/adapters/http/ops.py` declares `PUT /settings` 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.
Unused endpoint
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/5aed16b2-8396-46ac-aa1c-c689b39a4526/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/5aed16b2-8396-46ac-aa1c-c689b39a4526/

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.