{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-e98e379a50301e81", "name": "Possibly dead Python function: make_coinalyze_timeout", "shortDescription": {"text": "Possibly dead Python function: make_coinalyze_timeout"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b8e27658c92741c", "name": "Possibly dead Python function: cmd_start", "shortDescription": {"text": "Possibly dead Python function: cmd_start"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31c0280bd31c79b3", "name": "Possibly dead Python function: cmd_stop", "shortDescription": {"text": "Possibly dead Python function: cmd_stop"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15bea352e2f81e44", "name": "Possibly dead Python function: cmd_status", "shortDescription": {"text": "Possibly dead Python function: cmd_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-871cfe517b028959", "name": "Possibly dead Python function: cmd_setlev", "shortDescription": {"text": "Possibly dead Python function: cmd_setlev"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a609385000c6f300", "name": "Possibly dead Python function: cmd_togglebb", "shortDescription": {"text": "Possibly dead Python function: cmd_togglebb"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0d6bea5a8a65be2", "name": "Possibly dead Python function: cmd_togglemacross", "shortDescription": {"text": "Possibly dead Python function: cmd_togglemacross"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ec3aff753d9d73b", "name": "Possibly dead Python function: cmd_toggleharmonic", "shortDescription": {"text": "Possibly dead Python function: cmd_toggleharmonic"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-19c58f5706fbdf00", "name": "Possibly dead Python function: cmd_toggleichimoku", "shortDescription": {"text": "Possibly dead Python function: cmd_toggleichimoku"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2eeac60fa0c09944", "name": "Possibly dead Python function: cmd_positions", "shortDescription": {"text": "Possibly dead Python function: cmd_positions"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e2b33802149a312", "name": "Possibly dead Python function: cmd_equity", "shortDescription": {"text": "Possibly dead Python function: cmd_equity"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2eba748040ac2887", "name": "Possibly dead Python function: broadcast_log", "shortDescription": {"text": "Possibly dead Python function: broadcast_log"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f8c99292e87794d", "name": "Possibly dead Python function: emit", "shortDescription": {"text": "Possibly dead Python function: emit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14cb506e6ac1e7c7", "name": "Possibly dead Python function: min_sl_pct_by_leverage", "shortDescription": {"text": "Possibly dead Python function: min_sl_pct_by_leverage"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a60e510a1597969d", "name": "Possibly dead Python function: is_auto_start", "shortDescription": {"text": "Possibly dead Python function: is_auto_start"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69f5a68c2e40cec6", "name": "Possibly dead Python function: reset_license", "shortDescription": {"text": "Possibly dead Python function: reset_license"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03e75712aeddf45d", "name": "Possibly dead Python function: quit", "shortDescription": {"text": "Possibly dead Python function: quit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-467c43cdeb2ee92b", "name": "Possibly dead Python function: is_auto_start", "shortDescription": {"text": "Possibly dead Python function: is_auto_start"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcfc4cd69529ca41", "name": "Possibly dead Python function: quit", "shortDescription": {"text": "Possibly dead Python function: quit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e066691601852931", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0f3d135d0fa329b", "name": "Insecure pattern 'direct_innerhtml_assignment' in ui/js/app.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui/js/app.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a1399a7f7fa953d", "name": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/trades.html:593", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/trades.html:593"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60b2c4489dd584ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/app.js:869", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/app.js:869"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68591c1feb24d1ea", "name": "Insecure pattern 'cors_wildcard' in src/aurora/interfaces/api.py:573", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in src/aurora/interfaces/api.py:573"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91273a98fab4d716", "name": "GitHub Action tracks a moving branch", "shortDescription": {"text": "GitHub Action tracks a moving branch"}, "fullDescription": {"text": "superfly/flyctl-actions/setup-flyctl@master can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18aea8a0985327dc", "name": "Very large file: tests/test_strategy.py (1619 lines)", "shortDescription": {"text": "Very large file: tests/test_strategy.py (1619 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33046a06cbda7502", "name": "Very large file: ui/js/app.js (2663 lines)", "shortDescription": {"text": "Very large file: ui/js/app.js (2663 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ce5d1396ecaf24a", "name": "Very large file: ui_ict/app.js (2711 lines)", "shortDescription": {"text": "Very large file: ui_ict/app.js (2711 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d61fa23d3b0cdcd9", "name": "Very large file: src/aurora/interfaces/bot_instance.py (1546 lines)", "shortDescription": {"text": "Very large file: src/aurora/interfaces/bot_instance.py (1546 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea940061075b8912", "name": "Very large file: src/aurora/interfaces/api.py (1647 lines)", "shortDescription": {"text": "Very large file: src/aurora/interfaces/api.py (1647 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce3b8b9a0f78010e", "name": "Very large file: src/aurora/core/strategy.py (1310 lines)", "shortDescription": {"text": "Very large file: src/aurora/core/strategy.py (1310 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c78c48397206be9", "name": "Very large file: src/aurora_ict_launcher/launcher.py (1951 lines)", "shortDescription": {"text": "Very large file: src/aurora_ict_launcher/launcher.py (1951 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1e85938fd691d91", "name": "Very large file: src/aurora_ict/bot/bot_ict_instance.py (3797 lines)", "shortDescription": {"text": "Very large file: src/aurora_ict/bot/bot_ict_instance.py (3797 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-844a03ee650ef63e", "name": "Very large file: src/aurora_ict/auth/users_db.py (1415 lines)", "shortDescription": {"text": "Very large file: src/aurora_ict/auth/users_db.py (1415 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4eeb80a1ff4b87d0", "name": "Very large file: src/aurora_ict/api/app.py (2670 lines)", "shortDescription": {"text": "Very large file: src/aurora_ict/api/app.py (2670 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-497a84f95326f331", "name": "Very large file: src/aurora_launcher/launcher.py (1667 lines)", "shortDescription": {"text": "Very large file: src/aurora_launcher/launcher.py (1667 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 62 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 22 placeholder/mock markers across 14 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75a84dd3516ba49c", "name": "Commented-code block (5 lines) in tests/test_implied_fvg_rejection_bpr_po3.py:31", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_implied_fvg_rejection_bpr_po3.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c19a7576f824c169", "name": "Legacy-named symbol `test_subscription_enforces_edge_v2` in tests/test_license_tier_settings.py:84", "shortDescription": {"text": "Legacy-named symbol `test_subscription_enforces_edge_v2` in tests/test_license_tier_settings.py:84"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79423e441a391908", "name": "Legacy-named symbol `test_get_status_returns_copy` in tests/test_apk_updater.py:89", "shortDescription": {"text": "Legacy-named symbol `test_get_status_returns_copy` in tests/test_apk_updater.py:89"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4fd66d6263e05a2", "name": "Legacy-named symbol `test_ema_recent_weighted_more_than_old` in tests/test_indicators.py:51", "shortDescription": {"text": "Legacy-named symbol `test_ema_recent_weighted_more_than_old` in tests/test_indicators.py:51"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f62ad3d1d8a27af", "name": "Commented-code block (8 lines) in tests/test_indicators.py:585", "shortDescription": {"text": "Commented-code block (8 lines) in tests/test_indicators.py:585"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea596255cc105a59", "name": "Legacy-named symbol `br_legacy` in tests/test_auth_users_db.py:607", "shortDescription": {"text": "Legacy-named symbol `br_legacy` in tests/test_auth_users_db.py:607"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ee0a7dee9481e82", "name": "Commented-code block (5 lines) in ui/js/app.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in ui/js/app.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f056a180ca85c08d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 ui/js/app.js:919", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ui/js/app.js:919"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d116fa0b3eb88f4", "name": "Commented-code block (5 lines) in ui/js/apiClient.js:123", "shortDescription": {"text": "Commented-code block (5 lines) in ui/js/apiClient.js:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4d03d206f5173f7", "name": "Commented-code block (7 lines) in scripts/build_exe.py:109", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/build_exe.py:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09b1b02a06ffd06f", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/build_exe.py:143", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_exe.py:143"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e92a0a7f6e437713", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/build_launcher.py:102", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_launcher.py:102"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a89d48d75a517e9", "name": "Legacy-named symbol `aurora_latest_release_v1` in website/app.js:73", "shortDescription": {"text": "Legacy-named symbol `aurora_latest_release_v1` in website/app.js:73"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bd47532a1809832", "name": "Commented-code block (5 lines) in ui_ict/app.js:561", "shortDescription": {"text": "Commented-code block (5 lines) in ui_ict/app.js:561"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d4ac76aa6161699", "name": "`fetch()` without try/.catch or AbortSignal \u2014 ui_ict/app.js:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ui_ict/app.js:8"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d41cb6891352f02f", "name": "Commented-code block (6 lines) in src/aurora/updater.py:265", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora/updater.py:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4d3217173a15c3a", "name": "Network/subprocess call without timeout or try/except \u2014 src/aurora/updater.py:124", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/aurora/updater.py:124"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e6befe6dfab4dcc", "name": "Commented-code block (5 lines) in src/aurora/backtest/engine.py:392", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/backtest/engine.py:392"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40edd15fac577f41", "name": "Commented-code block (5 lines) in src/aurora/interfaces/bot_instance.py:171", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/interfaces/bot_instance.py:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3e9baa47ed1c388", "name": "Commented-code block (6 lines) in src/aurora/interfaces/apk_updater.py:34", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora/interfaces/apk_updater.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9890c1ded5a56834", "name": "Commented-code block (5 lines) in src/aurora/interfaces/api.py:840", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/interfaces/api.py:840"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-881681d9d48fa847", "name": "Commented-code block (6 lines) in src/aurora/interfaces/log_buffer.py:24", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora/interfaces/log_buffer.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35d8285d642f48f0", "name": "Commented-code block (5 lines) in src/aurora/exchange/ccxt_client.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/exchange/ccxt_client.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9b57664f2d9dbe2", "name": "Commented-code block (5 lines) in src/aurora/market/coinalyze.py:39", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/market/coinalyze.py:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bd464786a240f0f", "name": "Commented-code block (5 lines) in src/aurora/core/signal.py:105", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/core/signal.py:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7bdac999f3078d4", "name": "Commented-code block (9 lines) in src/aurora/core/strategy.py:879", "shortDescription": {"text": "Commented-code block (9 lines) in src/aurora/core/strategy.py:879"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfe91499526b07c5", "name": "Commented-code block (5 lines) in src/aurora/core/risk.py:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora/core/risk.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00a0a0799d5bf1ba", "name": "Commented-code block (6 lines) in src/aurora_ict_launcher/launcher.py:87", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_ict_launcher/launcher.py:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d8fe2fec18f2725", "name": "Commented-code block (5 lines) in src/aurora_ict_launcher/ui/js/app.js:100", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict_launcher/ui/js/app.js:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2531c4ba354724a9", "name": "Network/subprocess call without timeout or try/except \u2014 src/aurora_ict/updater.py:120", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/aurora_ict/updater.py:120"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d26890c158b28510", "name": "Legacy-named symbol `model_copy` in src/aurora_ict/saas.py:175", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/saas.py:175"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f55f5e2ea9cf8e1f", "name": "Commented-code block (5 lines) in src/aurora_ict/saas.py:233", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict/saas.py:233"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f47ecfc1540d1439", "name": "Commented-code block (5 lines) in src/aurora_ict/strategy/silver_bullet.py:321", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict/strategy/silver_bullet.py:321"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68ae1ef2935ef78d", "name": "Commented-code block (5 lines) in src/aurora_ict/bot/pair_registry.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict/bot/pair_registry.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc9d6915e70f94d9", "name": "Legacy-named symbol `model_copy` in src/aurora_ict/bot/multi_user_manager.py:193", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/bot/multi_user_manager.py:193"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-248971b9bee06c74", "name": "Commented-code block (8 lines) in src/aurora_ict/bot/multi_user_manager.py:216", "shortDescription": {"text": "Commented-code block (8 lines) in src/aurora_ict/bot/multi_user_manager.py:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f179050a7785642d", "name": "Commented-code block (6 lines) in src/aurora_ict/bot/manager.py:130", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_ict/bot/manager.py:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95552900c15a87e6", "name": "Commented-code block (8 lines) in src/aurora_ict/bot/aurora_adapter.py:164", "shortDescription": {"text": "Commented-code block (8 lines) in src/aurora_ict/bot/aurora_adapter.py:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5accef385dd421d", "name": "Commented-code block (5 lines) in src/aurora_ict/bot/bot_ict_instance.py:275", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict/bot/bot_ict_instance.py:275"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f90f6fdcdc33421c", "name": "Commented-code block (8 lines) in src/aurora_ict/config/settings.py:127", "shortDescription": {"text": "Commented-code block (8 lines) in src/aurora_ict/config/settings.py:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82ba7ac3d73e55d0", "name": "Commented-code block (6 lines) in src/aurora_ict/auth/users_db.py:60", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_ict/auth/users_db.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e64bad3ec663c623", "name": "Legacy-named symbol `model_copy` in src/aurora_ict/api/app.py:517", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/api/app.py:517"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45811eb59df5b601", "name": "Commented-code block (5 lines) in src/aurora_ict/api/app.py:565", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_ict/api/app.py:565"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d0ab8872cb9e7be", "name": "Commented-code block (6 lines) in src/aurora_ict/signal/ict_signal.py:125", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_ict/signal/ict_signal.py:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7efd2710613dd10b", "name": "Legacy-named symbol `_detect_obs_legacy` in src/aurora_ict/indicators/order_block.py:198", "shortDescription": {"text": "Legacy-named symbol `_detect_obs_legacy` in src/aurora_ict/indicators/order_block.py:198"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bbda7819a69a14f", "name": "Commented-code block (6 lines) in src/aurora_ict/timing/power_of_3.py:91", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_ict/timing/power_of_3.py:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bff8e1c00f0400df", "name": "Commented-code block (6 lines) in src/aurora_launcher/launcher.py:86", "shortDescription": {"text": "Commented-code block (6 lines) in src/aurora_launcher/launcher.py:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab69205b54f2687a", "name": "Commented-code block (5 lines) in src/aurora_launcher/ui/js/app.js:87", "shortDescription": {"text": "Commented-code block (5 lines) in src/aurora_launcher/ui/js/app.js:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0b5e7cb1208a7cd", "name": "13 env vars used in code but missing from .env.example", "shortDescription": {"text": "13 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AURORA_DATA_DIR`, `AURORA_FROM_LAUNCHER`, `AURORA_ICT_DATA_DIR`, `AURORA_ICT_FROM_LAUNCHER`, `AURORA_ICT_SECURE_COOKIE`, `AURORA_ICT_TELEGRAM_BOT_TOKEN`, `AURORA_LICENSE_API_BASE`, `AURORA_PLATFORM` + 5 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/phase_flip_backtest.py:load_slice, scripts/phase_backtest.py:load_slice\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/aurora/market/exchanges/bitget_series.py:fetch_series, src/aurora/market/exchanges/bybit_series.py:fetch_series, src/aurora/market/exchanges/okx_series.py:fetch_series, src/aurora/market/exchanges/series_base.py:fetch_series\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/aurora/market/exchanges/binance.py:fetch_snapshot, src/aurora/market/exchanges/bybit.py:fetch_snapshot, src/aurora/market/exchanges/bitget.py:fetch_snapshot, src/aurora/market/exchanges/hyperliquid.py:fetch_snapshot\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6678d521e9981c70", "name": "FastAPI POST `apply_ui_update_endpoint` without auth dependency \u2014 src/aurora/interfaces/api.py:714", "shortDescription": {"text": "FastAPI POST `apply_ui_update_endpoint` without auth dependency \u2014 src/aurora/interfaces/api.py:714"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2105586ae0d8139", "name": "FastAPI POST `update_config` without auth dependency \u2014 src/aurora/interfaces/api.py:1446", "shortDescription": {"text": "FastAPI POST `update_config` without auth dependency \u2014 src/aurora/interfaces/api.py:1446"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b0b6ab9708f955e", "name": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1465", "shortDescription": {"text": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1465"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe57cf887b6c535e", "name": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1474", "shortDescription": {"text": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1474"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2330974b048fb42d", "name": "FastAPI POST `restart_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1483", "shortDescription": {"text": "FastAPI POST `restart_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1483"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e66c13b07b86cc29", "name": "FastAPI POST `relaunch_via_launcher` without auth dependency \u2014 src/aurora/interfaces/api.py:1496", "shortDescription": {"text": "FastAPI POST `relaunch_via_launcher` without auth dependency \u2014 src/aurora/interfaces/api.py:1496"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4cb1150678b66f7", "name": "FastAPI POST `setup_pin` without auth dependency \u2014 src/aurora_ict/auth/router.py:142", "shortDescription": {"text": "FastAPI POST `setup_pin` without auth dependency \u2014 src/aurora_ict/auth/router.py:142"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce0d0d6a350b960a", "name": "FastAPI POST `set_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:307", "shortDescription": {"text": "FastAPI POST `set_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:307"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e859ff62621b018", "name": "FastAPI DELETE `delete_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:348", "shortDescription": {"text": "FastAPI DELETE `delete_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:348"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-693b97c2c87cb2d3", "name": "FastAPI POST `admin_login` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:488", "shortDescription": {"text": "FastAPI POST `admin_login` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:488"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9889322dadcfdeae", "name": "FastAPI POST `admin_logout` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:519", "shortDescription": {"text": "FastAPI POST `admin_logout` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:519"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c57bf7a0b6c731d", "name": "FastAPI POST `admin_rebuild_sqlite` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:551", "shortDescription": {"text": "FastAPI POST `admin_rebuild_sqlite` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:551"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41b0f43241bfb07a", "name": "FastAPI POST `admin_update_license` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:619", "shortDescription": {"text": "FastAPI POST `admin_update_license` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:619"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca7c08b1efea34f5", "name": "FastAPI POST `admin_trades_backfill` without auth dependency \u2014 src/aurora_ict/api/app.py:1219", "shortDescription": {"text": "FastAPI POST `admin_trades_backfill` without auth dependency \u2014 src/aurora_ict/api/app.py:1219"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f529d5c0aef1622", "name": "FastAPI POST `admin_force_close` without auth dependency \u2014 src/aurora_ict/api/app.py:1321", "shortDescription": {"text": "FastAPI POST `admin_force_close` without auth dependency \u2014 src/aurora_ict/api/app.py:1321"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b2da5077581d733", "name": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1908", "shortDescription": {"text": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1908"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d5e75f4d29ec690", "name": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1921", "shortDescription": {"text": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1921"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cea0f051793fcafc", "name": "FastAPI POST `set_run_mode` without auth dependency \u2014 src/aurora_ict/api/app.py:1931", "shortDescription": {"text": "FastAPI POST `set_run_mode` without auth dependency \u2014 src/aurora_ict/api/app.py:1931"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c704b0d3fca29765", "name": "FastAPI POST `set_enabled` without auth dependency \u2014 src/aurora_ict/api/app.py:1942", "shortDescription": {"text": "FastAPI POST `set_enabled` without auth dependency \u2014 src/aurora_ict/api/app.py:1942"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea743d69dcf55cad", "name": "FastAPI POST `test_connection` without auth dependency \u2014 src/aurora_ict/api/app.py:1950", "shortDescription": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 src/aurora_ict/api/app.py:1950"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e28ee7bfece705e2", "name": "FastAPI POST `set_trade_timeframe` without auth dependency \u2014 src/aurora_ict/api/app.py:1994", "shortDescription": {"text": "FastAPI POST `set_trade_timeframe` without auth dependency \u2014 src/aurora_ict/api/app.py:1994"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13cd0c5adaae4cf9", "name": "FastAPI POST `set_daily_profit_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2044", "shortDescription": {"text": "FastAPI POST `set_daily_profit_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2044"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6779da84efccf2a", "name": "FastAPI POST `set_daily_loss_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2064", "shortDescription": {"text": "FastAPI POST `set_daily_loss_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2064"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ea71c8cbc6ae7ba", "name": "FastAPI POST `set_credentials` without auth dependency \u2014 src/aurora_ict/api/app.py:2086", "shortDescription": {"text": "FastAPI POST `set_credentials` without auth dependency \u2014 src/aurora_ict/api/app.py:2086"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68e3df4cfef072d9", "name": "FastAPI POST `close_position` without auth dependency \u2014 src/aurora_ict/api/app.py:2111", "shortDescription": {"text": "FastAPI POST `close_position` without auth dependency \u2014 src/aurora_ict/api/app.py:2111"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e1903f2b6305601", "name": "FastAPI POST `cancel_pending` without auth dependency \u2014 src/aurora_ict/api/app.py:2176", "shortDescription": {"text": "FastAPI POST `cancel_pending` without auth dependency \u2014 src/aurora_ict/api/app.py:2176"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d684e62055b70f3", "name": "FastAPI POST `create_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:74", "shortDescription": {"text": "FastAPI POST `create_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:74"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aae5eba7a70ba4d0", "name": "FastAPI DELETE `delete_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:103", "shortDescription": {"text": "FastAPI DELETE `delete_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:103"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9464d451e602d20", "name": "Dangling fetch: GET http://127.0.0.1:8765/status (ui/js/app.js:57)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:8765/status (ui/js/app.js:57)"}, "fullDescription": {"text": "`ui/js/app.js:57` calls `GET http://127.0.0.1:8765/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:8765/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f71c8df8b66686f", "name": "Dangling fetch: GET https://api.github.com/repos/WL131231/Aurora-releases/releases/latest (website/app.js:102)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/WL131231/Aurora-releases/releases/latest (website/app.js:102)"}, "fullDescription": {"text": "`website/app.js:102` calls `GET https://api.github.com/repos/WL131231/Aurora-releases/releases/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/wl131231/aurora-releases/releases/latest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfafaf6bb3748d6d", "name": "Dangling fetch: GET /auth/status (ui_ict/app.js:8)", "shortDescription": {"text": "Dangling fetch: GET /auth/status (ui_ict/app.js:8)"}, "fullDescription": {"text": "`ui_ict/app.js:8` calls `GET /auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/aurora/interfaces/api.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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a8789f7bab0ddfd", "name": "Unused endpoint: GET /indicators/list", "shortDescription": {"text": "Unused endpoint: GET /indicators/list"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /indicators/list` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bdc45e42ba4cda0", "name": "Unused endpoint: GET /positions", "shortDescription": {"text": "Unused endpoint: GET /positions"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /positions` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e99127dcd090925", "name": "Unused endpoint: POST /update/apply_ui", "shortDescription": {"text": "Unused endpoint: POST /update/apply_ui"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `POST /update/apply_ui` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f27f0e6a9fb07b9b", "name": "Unused endpoint: GET /trades", "shortDescription": {"text": "Unused endpoint: GET /trades"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /trades` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53190bd2c422009c", "name": "Unused endpoint: GET /market-trend", "shortDescription": {"text": "Unused endpoint: GET /market-trend"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /market-trend` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-032cc2c16423e1d8", "name": "Unused endpoint: GET /release/latest", "shortDescription": {"text": "Unused endpoint: GET /release/latest"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /release/latest` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd8dc4599ec52a08", "name": "Unused endpoint: GET /stats", "shortDescription": {"text": "Unused endpoint: GET /stats"}, "fullDescription": {"text": "`src/aurora/interfaces/api.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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbe02bcd26f10cbf", "name": "Unused endpoint: GET /chart", "shortDescription": {"text": "Unused endpoint: GET /chart"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /chart` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41f393ebd7ffc31b", "name": "Unused endpoint: GET /dashboard-flow", "shortDescription": {"text": "Unused endpoint: GET /dashboard-flow"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /dashboard-flow` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c4a48f3d8ff77d7", "name": "Unused endpoint: GET /dashboard-flow/series", "shortDescription": {"text": "Unused endpoint: GET /dashboard-flow/series"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /dashboard-flow/series` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b43dadb20b58bf43", "name": "Unused endpoint: GET /dashboard-flow/ratios", "shortDescription": {"text": "Unused endpoint: GET /dashboard-flow/ratios"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /dashboard-flow/ratios` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6f48e60c30777ab", "name": "Unused endpoint: GET /config", "shortDescription": {"text": "Unused endpoint: GET /config"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /config` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0666d1d987815276", "name": "Unused endpoint: POST /config", "shortDescription": {"text": "Unused endpoint: POST /config"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `POST /config` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a13a7e97aeacf55f", "name": "Unused endpoint: POST /start", "shortDescription": {"text": "Unused endpoint: POST /start"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `POST /start` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e69c90752a76eba5", "name": "Unused endpoint: POST /stop", "shortDescription": {"text": "Unused endpoint: POST /stop"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `POST /stop` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfea1130c34bf33b", "name": "Unused endpoint: POST /restart", "shortDescription": {"text": "Unused endpoint: POST /restart"}, "fullDescription": {"text": "`src/aurora/interfaces/api.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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d711c81ec577fc0a", "name": "Unused endpoint: POST /relaunch", "shortDescription": {"text": "Unused endpoint: POST /relaunch"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `POST /relaunch` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72f99d58636b648b", "name": "Unused endpoint: GET /logs", "shortDescription": {"text": "Unused endpoint: GET /logs"}, "fullDescription": {"text": "`src/aurora/interfaces/api.py` declares `GET /logs` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3891402b7328b104", "name": "Unused endpoint: POST /setup-pin", "shortDescription": {"text": "Unused endpoint: POST /setup-pin"}, "fullDescription": {"text": "`src/aurora_ict/auth/router.py` declares `POST /setup-pin` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-618721b912bad1c2", "name": "Unused endpoint: POST /login", "shortDescription": {"text": "Unused endpoint: POST /login"}, "fullDescription": {"text": "`src/aurora_ict/auth/router.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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99fc36db98c134ce", "name": "Unused endpoint: POST /logout", "shortDescription": {"text": "Unused endpoint: POST /logout"}, "fullDescription": {"text": "`src/aurora_ict/auth/router.py` declares `POST /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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-224cbb7548a6b13c", "name": "Unused endpoint: POST /api-keys", "shortDescription": {"text": "Unused endpoint: POST /api-keys"}, "fullDescription": {"text": "`src/aurora_ict/auth/router.py` declares `POST /api-keys` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86584bfea8a23fd2", "name": "Unused endpoint: DELETE /api-keys", "shortDescription": {"text": "Unused endpoint: DELETE /api-keys"}, "fullDescription": {"text": "`src/aurora_ict/auth/router.py` declares `DELETE /api-keys` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c508f177634ecc3", "name": "Unused endpoint: GET /ict/trades", "shortDescription": {"text": "Unused endpoint: GET /ict/trades"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /ict/trades` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b7f463d445d0833d", "name": "Unused endpoint: GET /ict/trades/export", "shortDescription": {"text": "Unused endpoint: GET /ict/trades/export"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /ict/trades/export` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba14173b6cb2c54d", "name": "Unused endpoint: GET /admin/trades", "shortDescription": {"text": "Unused endpoint: GET /admin/trades"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/trades` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a868e2bd7ae47849", "name": "Unused endpoint: GET /admin/trades/export", "shortDescription": {"text": "Unused endpoint: GET /admin/trades/export"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/trades/export` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12058af03c00a17a", "name": "Unused endpoint: GET /admin/trades/export-all", "shortDescription": {"text": "Unused endpoint: GET /admin/trades/export-all"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/trades/export-all` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9063c99f6ab5b6b", "name": "Unused endpoint: GET /admin/trades/all_users", "shortDescription": {"text": "Unused endpoint: GET /admin/trades/all_users"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/trades/all_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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-590fa9d81cf6a85c", "name": "Unused endpoint: POST /admin/login", "shortDescription": {"text": "Unused endpoint: POST /admin/login"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `POST /admin/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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-392aa70ef1d3cf0c", "name": "Unused endpoint: POST /admin/logout", "shortDescription": {"text": "Unused endpoint: POST /admin/logout"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `POST /admin/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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2db517414b3dfbc", "name": "Unused endpoint: GET /admin/session", "shortDescription": {"text": "Unused endpoint: GET /admin/session"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/session` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0aba7f1883cb96f2", "name": "Unused endpoint: GET /admin/users", "shortDescription": {"text": "Unused endpoint: GET /admin/users"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0440d027fe714eac", "name": "Unused endpoint: POST /admin/trades/rebuild", "shortDescription": {"text": "Unused endpoint: POST /admin/trades/rebuild"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `POST /admin/trades/rebuild` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a35e943d0dd8d4e8", "name": "Unused endpoint: GET /admin/trades/backup", "shortDescription": {"text": "Unused endpoint: GET /admin/trades/backup"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `GET /admin/trades/backup` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-354e54d9967375e1", "name": "Unused endpoint: POST /admin/user/license", "shortDescription": {"text": "Unused endpoint: POST /admin/user/license"}, "fullDescription": {"text": "`src/aurora_ict/api/trades_router.py` declares `POST /admin/user/license` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f7699bf1a884616", "name": "Unused endpoint: GET /ict/health", "shortDescription": {"text": "Unused endpoint: GET /ict/health"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/health` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11c45204f0828fc0", "name": "Unused endpoint: GET /ict/status", "shortDescription": {"text": "Unused endpoint: GET /ict/status"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/status` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e57d4205b04ed07", "name": "Unused endpoint: POST /ict/start", "shortDescription": {"text": "Unused endpoint: POST /ict/start"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/start` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-027b0f9649048a10", "name": "Unused endpoint: POST /ict/stop", "shortDescription": {"text": "Unused endpoint: POST /ict/stop"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/stop` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-67f3ab88d17277d4", "name": "Unused endpoint: POST /ict/stop-all", "shortDescription": {"text": "Unused endpoint: POST /ict/stop-all"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/stop-all` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76209b83d2c7253a", "name": "Unused endpoint: GET /ict/running-pairs", "shortDescription": {"text": "Unused endpoint: GET /ict/running-pairs"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/running-pairs` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25a0aa8f27c69ba8", "name": "Unused endpoint: GET /ict/markets", "shortDescription": {"text": "Unused endpoint: GET /ict/markets"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/markets` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03228da5f7b09c6d", "name": "Unused endpoint: GET /ict/config", "shortDescription": {"text": "Unused endpoint: GET /ict/config"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/config` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-957572c704c17b93", "name": "Unused endpoint: POST /ict/run-mode", "shortDescription": {"text": "Unused endpoint: POST /ict/run-mode"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/run-mode` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7721050b68caa314", "name": "Unused endpoint: POST /ict/enabled", "shortDescription": {"text": "Unused endpoint: POST /ict/enabled"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/enabled` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-784ff84d2654f52e", "name": "Unused endpoint: POST /ict/test-connection", "shortDescription": {"text": "Unused endpoint: POST /ict/test-connection"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/test-connection` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d91a276013c9ec1", "name": "Unused endpoint: POST /ict/timeframe", "shortDescription": {"text": "Unused endpoint: POST /ict/timeframe"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `POST /ict/timeframe` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eed1a6d565815a1d", "name": "Unused endpoint: GET /ict/daily_loss_limit", "shortDescription": {"text": "Unused endpoint: GET /ict/daily_loss_limit"}, "fullDescription": {"text": "`src/aurora_ict/api/app.py` declares `GET /ict/daily_loss_limit` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22823"}, "properties": {"repository": "WL131231/Aurora-ICT", "repoUrl": "https://github.com/WL131231/Aurora-ICT", "branch": "main"}, "results": [{"ruleId": "scanner-e98e379a50301e81", "level": "note", "message": {"text": "Possibly dead Python function: make_coinalyze_timeout"}, "properties": {"repobilityId": "3f484e72d3ef1080", "scanner": "scanner-primary", "fingerprint": "e98e379a50301e81", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/timeouts.py:95"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b8e27658c92741c", "level": "note", "message": {"text": "Possibly dead Python function: cmd_start"}, "properties": {"repobilityId": "fc872c8259f0135a", "scanner": "scanner-primary", "fingerprint": "7b8e27658c92741c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:285"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31c0280bd31c79b3", "level": "note", "message": {"text": "Possibly dead Python function: cmd_stop"}, "properties": {"repobilityId": "b0bb02562fb1f7b3", "scanner": "scanner-primary", "fingerprint": "31c0280bd31c79b3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:298"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15bea352e2f81e44", "level": "note", "message": {"text": "Possibly dead Python function: cmd_status"}, "properties": {"repobilityId": "244b91f3ae7622bf", "scanner": "scanner-primary", "fingerprint": "15bea352e2f81e44", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:311"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-871cfe517b028959", "level": "note", "message": {"text": "Possibly dead Python function: cmd_setlev"}, "properties": {"repobilityId": "ace6e33b25e0591c", "scanner": "scanner-primary", "fingerprint": "871cfe517b028959", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:343"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a609385000c6f300", "level": "note", "message": {"text": "Possibly dead Python function: cmd_togglebb"}, "properties": {"repobilityId": "6f66eb361000e942", "scanner": "scanner-primary", "fingerprint": "a609385000c6f300", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:382"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c0d6bea5a8a65be2", "level": "note", "message": {"text": "Possibly dead Python function: cmd_togglemacross"}, "properties": {"repobilityId": "7844713c2e8ab070", "scanner": "scanner-primary", "fingerprint": "c0d6bea5a8a65be2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:386"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ec3aff753d9d73b", "level": "note", "message": {"text": "Possibly dead Python function: cmd_toggleharmonic"}, "properties": {"repobilityId": "6cc431efc149b8bb", "scanner": "scanner-primary", "fingerprint": "3ec3aff753d9d73b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:390"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19c58f5706fbdf00", "level": "note", "message": {"text": "Possibly dead Python function: cmd_toggleichimoku"}, "properties": {"repobilityId": "eca3c66629e39074", "scanner": "scanner-primary", "fingerprint": "19c58f5706fbdf00", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:394"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2eeac60fa0c09944", "level": "note", "message": {"text": "Possibly dead Python function: cmd_positions"}, "properties": {"repobilityId": "833a98cf668d6718", "scanner": "scanner-primary", "fingerprint": "2eeac60fa0c09944", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:400"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e2b33802149a312", "level": "note", "message": {"text": "Possibly dead Python function: cmd_equity"}, "properties": {"repobilityId": "40b23170b26dbc3e", "scanner": "scanner-primary", "fingerprint": "8e2b33802149a312", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/telegram.py:432"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2eba748040ac2887", "level": "note", "message": {"text": "Possibly dead Python function: broadcast_log"}, "properties": {"repobilityId": "8a5e589a3029d21e", "scanner": "scanner-primary", "fingerprint": "2eba748040ac2887", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py:1589"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f8c99292e87794d", "level": "note", "message": {"text": "Possibly dead Python function: emit"}, "properties": {"repobilityId": "fecc700ec874b669", "scanner": "scanner-primary", "fingerprint": "0f8c99292e87794d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/log_buffer.py:54"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14cb506e6ac1e7c7", "level": "note", "message": {"text": "Possibly dead Python function: min_sl_pct_by_leverage"}, "properties": {"repobilityId": "eddc3dbe8498a585", "scanner": "scanner-primary", "fingerprint": "14cb506e6ac1e7c7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/core/risk.py:176"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a60e510a1597969d", "level": "note", "message": {"text": "Possibly dead Python function: is_auto_start"}, "properties": {"repobilityId": "870f35c0b3b43ab7", "scanner": "scanner-primary", "fingerprint": "a60e510a1597969d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict_launcher/launcher.py:1129"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69f5a68c2e40cec6", "level": "note", "message": {"text": "Possibly dead Python function: reset_license"}, "properties": {"repobilityId": "98523190e20f3858", "scanner": "scanner-primary", "fingerprint": "69f5a68c2e40cec6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict_launcher/launcher.py:1274"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-03e75712aeddf45d", "level": "note", "message": {"text": "Possibly dead Python function: quit"}, "properties": {"repobilityId": "09bdd6412a02a732", "scanner": "scanner-primary", "fingerprint": "03e75712aeddf45d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict_launcher/launcher.py:1737"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-467c43cdeb2ee92b", "level": "note", "message": {"text": "Possibly dead Python function: is_auto_start"}, "properties": {"repobilityId": "870f35c0b3b43ab7", "scanner": "scanner-primary", "fingerprint": "467c43cdeb2ee92b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_launcher/launcher.py:1048"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcfc4cd69529ca41", "level": "note", "message": {"text": "Possibly dead Python function: quit"}, "properties": {"repobilityId": "09bdd6412a02a732", "scanner": "scanner-primary", "fingerprint": "fcfc4cd69529ca41", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_launcher/launcher.py:1454"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e066691601852931", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "4f3126357789a643", "scanner": "scanner-primary", "fingerprint": "e066691601852931", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-b0f3d135d0fa329b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui/js/app.js:213"}, "properties": {"repobilityId": "8a959b10da7bc371", "scanner": "scanner-primary", "fingerprint": "b0f3d135d0fa329b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/js/app.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-5a1399a7f7fa953d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/trades.html:593"}, "properties": {"repobilityId": "3502282589e79e3e", "scanner": "scanner-primary", "fingerprint": "5a1399a7f7fa953d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_ict/trades.html"}, "region": {"startLine": 593}}}]}, {"ruleId": "scanner-60b2c4489dd584ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ui_ict/app.js:869"}, "properties": {"repobilityId": "f9aabfd0cce42489", "scanner": "scanner-primary", "fingerprint": "60b2c4489dd584ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_ict/app.js"}, "region": {"startLine": 869}}}]}, {"ruleId": "scanner-68591c1feb24d1ea", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in src/aurora/interfaces/api.py:573"}, "properties": {"repobilityId": "bb12281904ae9fbf", "scanner": "scanner-primary", "fingerprint": "68591c1feb24d1ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 573}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-91273a98fab4d716", "level": "error", "message": {"text": "GitHub Action tracks a moving branch"}, "properties": {"repobilityId": "e7075f398d1af6e0", "scanner": "scanner-primary", "fingerprint": "91273a98fab4d716", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fly-deploy.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0ad86557a2848db6", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0ad86557a2848db6", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 329}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18aea8a0985327dc", "level": "note", "message": {"text": "Very large file: tests/test_strategy.py (1619 lines)"}, "properties": {"repobilityId": "53d18eb309ed97c1", "scanner": "scanner-primary", "fingerprint": "18aea8a0985327dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-33046a06cbda7502", "level": "note", "message": {"text": "Very large file: ui/js/app.js (2663 lines)"}, "properties": {"repobilityId": "c72c198aaf974963", "scanner": "scanner-primary", "fingerprint": "33046a06cbda7502", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ce5d1396ecaf24a", "level": "note", "message": {"text": "Very large file: ui_ict/app.js (2711 lines)"}, "properties": {"repobilityId": "005c90f69008555a", "scanner": "scanner-primary", "fingerprint": "3ce5d1396ecaf24a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d61fa23d3b0cdcd9", "level": "note", "message": {"text": "Very large file: src/aurora/interfaces/bot_instance.py (1546 lines)"}, "properties": {"repobilityId": "184e7db6aea95281", "scanner": "scanner-primary", "fingerprint": "d61fa23d3b0cdcd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea940061075b8912", "level": "note", "message": {"text": "Very large file: src/aurora/interfaces/api.py (1647 lines)"}, "properties": {"repobilityId": "e8b0bb16b4bb56b3", "scanner": "scanner-primary", "fingerprint": "ea940061075b8912", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ce3b8b9a0f78010e", "level": "note", "message": {"text": "Very large file: src/aurora/core/strategy.py (1310 lines)"}, "properties": {"repobilityId": "0a7bb50b4b6a96ec", "scanner": "scanner-primary", "fingerprint": "ce3b8b9a0f78010e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c78c48397206be9", "level": "note", "message": {"text": "Very large file: src/aurora_ict_launcher/launcher.py (1951 lines)"}, "properties": {"repobilityId": "501fc79e4dddfcb3", "scanner": "scanner-primary", "fingerprint": "5c78c48397206be9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f1e85938fd691d91", "level": "note", "message": {"text": "Very large file: src/aurora_ict/bot/bot_ict_instance.py (3797 lines)"}, "properties": {"repobilityId": "ca6cc94136c8bd13", "scanner": "scanner-primary", "fingerprint": "f1e85938fd691d91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-844a03ee650ef63e", "level": "note", "message": {"text": "Very large file: src/aurora_ict/auth/users_db.py (1415 lines)"}, "properties": {"repobilityId": "b2478ecd9923bce2", "scanner": "scanner-primary", "fingerprint": "844a03ee650ef63e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4eeb80a1ff4b87d0", "level": "note", "message": {"text": "Very large file: src/aurora_ict/api/app.py (2670 lines)"}, "properties": {"repobilityId": "f5e8d18e98248738", "scanner": "scanner-primary", "fingerprint": "4eeb80a1ff4b87d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-497a84f95326f331", "level": "note", "message": {"text": "Very large file: src/aurora_launcher/launcher.py (1667 lines)"}, "properties": {"repobilityId": "87290461f80407c1", "scanner": "scanner-primary", "fingerprint": "497a84f95326f331", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "efaece2790291c42", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "aadd03ac2cd0252e", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "4d9bb9c9bb8023e0", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "10995f6fbe6a8832", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c1ee466422ad7fd5", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "51669ffd8f0b46cd", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "e11732d197a9084b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-75a84dd3516ba49c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_implied_fvg_rejection_bpr_po3.py:31"}, "properties": {"repobilityId": "d7391972f3a85814", "scanner": "scanner-primary", "fingerprint": "75a84dd3516ba49c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c19a7576f824c169", "level": "note", "message": {"text": "Legacy-named symbol `test_subscription_enforces_edge_v2` in tests/test_license_tier_settings.py:84"}, "properties": {"repobilityId": "08c51f007164064e", "scanner": "scanner-primary", "fingerprint": "c19a7576f824c169", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-79423e441a391908", "level": "note", "message": {"text": "Legacy-named symbol `test_get_status_returns_copy` in tests/test_apk_updater.py:89"}, "properties": {"repobilityId": "e228cc0c5a825bc5", "scanner": "scanner-primary", "fingerprint": "79423e441a391908", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c4fd66d6263e05a2", "level": "note", "message": {"text": "Legacy-named symbol `test_ema_recent_weighted_more_than_old` in tests/test_indicators.py:51"}, "properties": {"repobilityId": "6a4de37ca4d00ef5", "scanner": "scanner-primary", "fingerprint": "c4fd66d6263e05a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f62ad3d1d8a27af", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/test_indicators.py:585"}, "properties": {"repobilityId": "9d1de78903b565fa", "scanner": "scanner-primary", "fingerprint": "3f62ad3d1d8a27af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea596255cc105a59", "level": "note", "message": {"text": "Legacy-named symbol `br_legacy` in tests/test_auth_users_db.py:607"}, "properties": {"repobilityId": "6cbf97cba41ae6d0", "scanner": "scanner-primary", "fingerprint": "ea596255cc105a59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7ee0a7dee9481e82", "level": "none", "message": {"text": "Commented-code block (5 lines) in ui/js/app.js:13"}, "properties": {"repobilityId": "09bc12d3a793213c", "scanner": "scanner-primary", "fingerprint": "7ee0a7dee9481e82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f056a180ca85c08d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ui/js/app.js:919"}, "properties": {"repobilityId": "4d0824c0971ea971", "scanner": "scanner-primary", "fingerprint": "f056a180ca85c08d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d116fa0b3eb88f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in ui/js/apiClient.js:123"}, "properties": {"repobilityId": "e2824100e5a3dc61", "scanner": "scanner-primary", "fingerprint": "0d116fa0b3eb88f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4d03d206f5173f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/build_exe.py:109"}, "properties": {"repobilityId": "f581bdc934b60773", "scanner": "scanner-primary", "fingerprint": "f4d03d206f5173f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09b1b02a06ffd06f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_exe.py:143"}, "properties": {"repobilityId": "62584b8bab751069", "scanner": "scanner-primary", "fingerprint": "09b1b02a06ffd06f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e92a0a7f6e437713", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_launcher.py:102"}, "properties": {"repobilityId": "8c03f0f8972121b9", "scanner": "scanner-primary", "fingerprint": "e92a0a7f6e437713", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a89d48d75a517e9", "level": "note", "message": {"text": "Legacy-named symbol `aurora_latest_release_v1` in website/app.js:73"}, "properties": {"repobilityId": "49e434c94e75bc34", "scanner": "scanner-primary", "fingerprint": "8a89d48d75a517e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6bd47532a1809832", "level": "none", "message": {"text": "Commented-code block (5 lines) in ui_ict/app.js:561"}, "properties": {"repobilityId": "32bdbeccb03e26f5", "scanner": "scanner-primary", "fingerprint": "6bd47532a1809832", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d4ac76aa6161699", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ui_ict/app.js:8"}, "properties": {"repobilityId": "94a1d95639f46fba", "scanner": "scanner-primary", "fingerprint": "1d4ac76aa6161699", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d41cb6891352f02f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora/updater.py:265"}, "properties": {"repobilityId": "1bf05077f8530b07", "scanner": "scanner-primary", "fingerprint": "d41cb6891352f02f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4d3217173a15c3a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/aurora/updater.py:124"}, "properties": {"repobilityId": "27f0d21d14ca7c84", "scanner": "scanner-primary", "fingerprint": "d4d3217173a15c3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5e6befe6dfab4dcc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/backtest/engine.py:392"}, "properties": {"repobilityId": "bddf0ddef5ee5914", "scanner": "scanner-primary", "fingerprint": "5e6befe6dfab4dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40edd15fac577f41", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/interfaces/bot_instance.py:171"}, "properties": {"repobilityId": "2818433633663329", "scanner": "scanner-primary", "fingerprint": "40edd15fac577f41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e9baa47ed1c388", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora/interfaces/apk_updater.py:34"}, "properties": {"repobilityId": "8f155f655d2a96d2", "scanner": "scanner-primary", "fingerprint": "b3e9baa47ed1c388", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9890c1ded5a56834", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/interfaces/api.py:840"}, "properties": {"repobilityId": "cdd9314c4b9ea921", "scanner": "scanner-primary", "fingerprint": "9890c1ded5a56834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-881681d9d48fa847", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora/interfaces/log_buffer.py:24"}, "properties": {"repobilityId": "37a98ec3b90a4370", "scanner": "scanner-primary", "fingerprint": "881681d9d48fa847", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d8285d642f48f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/exchange/ccxt_client.py:115"}, "properties": {"repobilityId": "9b4fd3695eb9c68b", "scanner": "scanner-primary", "fingerprint": "35d8285d642f48f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9b57664f2d9dbe2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/market/coinalyze.py:39"}, "properties": {"repobilityId": "dd92bad388cae0bf", "scanner": "scanner-primary", "fingerprint": "d9b57664f2d9dbe2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bd464786a240f0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/core/signal.py:105"}, "properties": {"repobilityId": "3b8537779d170702", "scanner": "scanner-primary", "fingerprint": "3bd464786a240f0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7bdac999f3078d4", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/aurora/core/strategy.py:879"}, "properties": {"repobilityId": "088ffb0eaef7bcf1", "scanner": "scanner-primary", "fingerprint": "d7bdac999f3078d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfe91499526b07c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora/core/risk.py:18"}, "properties": {"repobilityId": "bc3f88faf43904f7", "scanner": "scanner-primary", "fingerprint": "dfe91499526b07c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00a0a0799d5bf1ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_ict_launcher/launcher.py:87"}, "properties": {"repobilityId": "25a7dac94f6c8a57", "scanner": "scanner-primary", "fingerprint": "00a0a0799d5bf1ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d8fe2fec18f2725", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict_launcher/ui/js/app.js:100"}, "properties": {"repobilityId": "f1c1b66c4329187e", "scanner": "scanner-primary", "fingerprint": "5d8fe2fec18f2725", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2531c4ba354724a9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/aurora_ict/updater.py:120"}, "properties": {"repobilityId": "6d4f32b76e24d9b0", "scanner": "scanner-primary", "fingerprint": "2531c4ba354724a9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d26890c158b28510", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/saas.py:175"}, "properties": {"repobilityId": "90d84298e1861e08", "scanner": "scanner-primary", "fingerprint": "d26890c158b28510", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f55f5e2ea9cf8e1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict/saas.py:233"}, "properties": {"repobilityId": "fd06e52f119ca4a2", "scanner": "scanner-primary", "fingerprint": "f55f5e2ea9cf8e1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f47ecfc1540d1439", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict/strategy/silver_bullet.py:321"}, "properties": {"repobilityId": "23994c498b506ff2", "scanner": "scanner-primary", "fingerprint": "f47ecfc1540d1439", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68ae1ef2935ef78d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict/bot/pair_registry.py:42"}, "properties": {"repobilityId": "a5f8b22981b7061d", "scanner": "scanner-primary", "fingerprint": "68ae1ef2935ef78d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc9d6915e70f94d9", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/bot/multi_user_manager.py:193"}, "properties": {"repobilityId": "31a467c9ac2b2865", "scanner": "scanner-primary", "fingerprint": "dc9d6915e70f94d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-248971b9bee06c74", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/aurora_ict/bot/multi_user_manager.py:216"}, "properties": {"repobilityId": "53aca31c17df6c9e", "scanner": "scanner-primary", "fingerprint": "248971b9bee06c74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f179050a7785642d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_ict/bot/manager.py:130"}, "properties": {"repobilityId": "9942a428e38906f4", "scanner": "scanner-primary", "fingerprint": "f179050a7785642d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95552900c15a87e6", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/aurora_ict/bot/aurora_adapter.py:164"}, "properties": {"repobilityId": "9ed91eafc20763d2", "scanner": "scanner-primary", "fingerprint": "95552900c15a87e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5accef385dd421d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict/bot/bot_ict_instance.py:275"}, "properties": {"repobilityId": "9aa4a5d646e9be64", "scanner": "scanner-primary", "fingerprint": "d5accef385dd421d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f90f6fdcdc33421c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/aurora_ict/config/settings.py:127"}, "properties": {"repobilityId": "ccbbca880cafd0c2", "scanner": "scanner-primary", "fingerprint": "f90f6fdcdc33421c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82ba7ac3d73e55d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_ict/auth/users_db.py:60"}, "properties": {"repobilityId": "1f8c08639a975688", "scanner": "scanner-primary", "fingerprint": "82ba7ac3d73e55d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e64bad3ec663c623", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/aurora_ict/api/app.py:517"}, "properties": {"repobilityId": "40cabc2a24555595", "scanner": "scanner-primary", "fingerprint": "e64bad3ec663c623", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-45811eb59df5b601", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_ict/api/app.py:565"}, "properties": {"repobilityId": "20510c8bf589e417", "scanner": "scanner-primary", "fingerprint": "45811eb59df5b601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d0ab8872cb9e7be", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_ict/signal/ict_signal.py:125"}, "properties": {"repobilityId": "a261cda3e2a0910d", "scanner": "scanner-primary", "fingerprint": "3d0ab8872cb9e7be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7efd2710613dd10b", "level": "note", "message": {"text": "Legacy-named symbol `_detect_obs_legacy` in src/aurora_ict/indicators/order_block.py:198"}, "properties": {"repobilityId": "2dd1abc872d14b91", "scanner": "scanner-primary", "fingerprint": "7efd2710613dd10b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6bbda7819a69a14f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_ict/timing/power_of_3.py:91"}, "properties": {"repobilityId": "df5b6e926c539bf7", "scanner": "scanner-primary", "fingerprint": "6bbda7819a69a14f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bff8e1c00f0400df", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/aurora_launcher/launcher.py:86"}, "properties": {"repobilityId": "76e25daad6cbc77b", "scanner": "scanner-primary", "fingerprint": "bff8e1c00f0400df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab69205b54f2687a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/aurora_launcher/ui/js/app.js:87"}, "properties": {"repobilityId": "e6d554f46868f450", "scanner": "scanner-primary", "fingerprint": "ab69205b54f2687a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0b5e7cb1208a7cd", "level": "note", "message": {"text": "13 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "2737b8666c1f7eeb", "scanner": "scanner-primary", "fingerprint": "b0b5e7cb1208a7cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9041c48951ad54b9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e72b350e4f5a4573", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d1b8d3f21c7e998f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "717ec8b3c07383f3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "576d4443186a6774", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5732e60ca956193a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2532162203d6db7c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7252bc4d0e9c5cc4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "6656be82d872b2ba", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "76d730dd82ca78d3", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "57b6f4110216d4cd", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9b6b92f6da55ce55", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "536ba0bcb7f74f90", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e7526e8e56b5ec95", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e11b38663ae52830", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "016f3be0146ef493", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3e0b9f47e8e35d5d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e76a5ad7cdc75a18", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "204ef83b997ab8cf", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "98dc407856691802", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-6678d521e9981c70", "level": "error", "message": {"text": "FastAPI POST `apply_ui_update_endpoint` without auth dependency \u2014 src/aurora/interfaces/api.py:714"}, "properties": {"repobilityId": "7cd6a82f0234ef3a", "scanner": "scanner-primary", "fingerprint": "6678d521e9981c70", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 714}}}]}, {"ruleId": "scanner-e2105586ae0d8139", "level": "error", "message": {"text": "FastAPI POST `update_config` without auth dependency \u2014 src/aurora/interfaces/api.py:1446"}, "properties": {"repobilityId": "dd55df67d54b26ed", "scanner": "scanner-primary", "fingerprint": "e2105586ae0d8139", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 1446}}}]}, {"ruleId": "scanner-4b0b6ab9708f955e", "level": "error", "message": {"text": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1465"}, "properties": {"repobilityId": "1f9363693e89f9e2", "scanner": "scanner-primary", "fingerprint": "4b0b6ab9708f955e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 1465}}}]}, {"ruleId": "scanner-fe57cf887b6c535e", "level": "error", "message": {"text": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1474"}, "properties": {"repobilityId": "171cd5e7c7b5cd2a", "scanner": "scanner-primary", "fingerprint": "fe57cf887b6c535e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 1474}}}]}, {"ruleId": "scanner-2330974b048fb42d", "level": "error", "message": {"text": "FastAPI POST `restart_bot` without auth dependency \u2014 src/aurora/interfaces/api.py:1483"}, "properties": {"repobilityId": "cd84d20833d02427", "scanner": "scanner-primary", "fingerprint": "2330974b048fb42d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 1483}}}]}, {"ruleId": "scanner-e66c13b07b86cc29", "level": "error", "message": {"text": "FastAPI POST `relaunch_via_launcher` without auth dependency \u2014 src/aurora/interfaces/api.py:1496"}, "properties": {"repobilityId": "34282a5b600c1b2a", "scanner": "scanner-primary", "fingerprint": "e66c13b07b86cc29", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora/interfaces/api.py"}, "region": {"startLine": 1496}}}]}, {"ruleId": "scanner-e4cb1150678b66f7", "level": "error", "message": {"text": "FastAPI POST `setup_pin` without auth dependency \u2014 src/aurora_ict/auth/router.py:142"}, "properties": {"repobilityId": "5de6a99d370af843", "scanner": "scanner-primary", "fingerprint": "e4cb1150678b66f7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/auth/router.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-ce0d0d6a350b960a", "level": "error", "message": {"text": "FastAPI POST `set_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:307"}, "properties": {"repobilityId": "b041caf7ca7b774c", "scanner": "scanner-primary", "fingerprint": "ce0d0d6a350b960a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/auth/router.py"}, "region": {"startLine": 307}}}]}, {"ruleId": "scanner-2e859ff62621b018", "level": "error", "message": {"text": "FastAPI DELETE `delete_api_keys_endpoint` without auth dependency \u2014 src/aurora_ict/auth/router.py:348"}, "properties": {"repobilityId": "35955f64bd267d71", "scanner": "scanner-primary", "fingerprint": "2e859ff62621b018", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/auth/router.py"}, "region": {"startLine": 348}}}]}, {"ruleId": "scanner-693b97c2c87cb2d3", "level": "error", "message": {"text": "FastAPI POST `admin_login` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:488"}, "properties": {"repobilityId": "c6650e3e498f1b8f", "scanner": "scanner-primary", "fingerprint": "693b97c2c87cb2d3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/trades_router.py"}, "region": {"startLine": 488}}}]}, {"ruleId": "scanner-9889322dadcfdeae", "level": "error", "message": {"text": "FastAPI POST `admin_logout` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:519"}, "properties": {"repobilityId": "6600fb8ed531218d", "scanner": "scanner-primary", "fingerprint": "9889322dadcfdeae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/trades_router.py"}, "region": {"startLine": 519}}}]}, {"ruleId": "scanner-8c57bf7a0b6c731d", "level": "error", "message": {"text": "FastAPI POST `admin_rebuild_sqlite` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:551"}, "properties": {"repobilityId": "879598e1defc5ea1", "scanner": "scanner-primary", "fingerprint": "8c57bf7a0b6c731d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/trades_router.py"}, "region": {"startLine": 551}}}]}, {"ruleId": "scanner-41b0f43241bfb07a", "level": "error", "message": {"text": "FastAPI POST `admin_update_license` without auth dependency \u2014 src/aurora_ict/api/trades_router.py:619"}, "properties": {"repobilityId": "35ca13891b261578", "scanner": "scanner-primary", "fingerprint": "41b0f43241bfb07a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/trades_router.py"}, "region": {"startLine": 619}}}]}, {"ruleId": "scanner-ca7c08b1efea34f5", "level": "error", "message": {"text": "FastAPI POST `admin_trades_backfill` without auth dependency \u2014 src/aurora_ict/api/app.py:1219"}, "properties": {"repobilityId": "428fdcb98801dbf9", "scanner": "scanner-primary", "fingerprint": "ca7c08b1efea34f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1219}}}]}, {"ruleId": "scanner-0f529d5c0aef1622", "level": "error", "message": {"text": "FastAPI POST `admin_force_close` without auth dependency \u2014 src/aurora_ict/api/app.py:1321"}, "properties": {"repobilityId": "c60e27e1ed68fa73", "scanner": "scanner-primary", "fingerprint": "0f529d5c0aef1622", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1321}}}]}, {"ruleId": "scanner-0b2da5077581d733", "level": "error", "message": {"text": "FastAPI POST `start_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1908"}, "properties": {"repobilityId": "59cd859a52652467", "scanner": "scanner-primary", "fingerprint": "0b2da5077581d733", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1908}}}]}, {"ruleId": "scanner-4d5e75f4d29ec690", "level": "error", "message": {"text": "FastAPI POST `stop_bot` without auth dependency \u2014 src/aurora_ict/api/app.py:1921"}, "properties": {"repobilityId": "6f4feba7b2a7c669", "scanner": "scanner-primary", "fingerprint": "4d5e75f4d29ec690", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1921}}}]}, {"ruleId": "scanner-cea0f051793fcafc", "level": "error", "message": {"text": "FastAPI POST `set_run_mode` without auth dependency \u2014 src/aurora_ict/api/app.py:1931"}, "properties": {"repobilityId": "27d466d6591efe12", "scanner": "scanner-primary", "fingerprint": "cea0f051793fcafc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1931}}}]}, {"ruleId": "scanner-c704b0d3fca29765", "level": "error", "message": {"text": "FastAPI POST `set_enabled` without auth dependency \u2014 src/aurora_ict/api/app.py:1942"}, "properties": {"repobilityId": "17a3129de721d08b", "scanner": "scanner-primary", "fingerprint": "c704b0d3fca29765", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1942}}}]}, {"ruleId": "scanner-ea743d69dcf55cad", "level": "error", "message": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 src/aurora_ict/api/app.py:1950"}, "properties": {"repobilityId": "961244fc7c05b430", "scanner": "scanner-primary", "fingerprint": "ea743d69dcf55cad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1950}}}]}, {"ruleId": "scanner-e28ee7bfece705e2", "level": "error", "message": {"text": "FastAPI POST `set_trade_timeframe` without auth dependency \u2014 src/aurora_ict/api/app.py:1994"}, "properties": {"repobilityId": "b4ae3e439bd1f089", "scanner": "scanner-primary", "fingerprint": "e28ee7bfece705e2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 1994}}}]}, {"ruleId": "scanner-13cd0c5adaae4cf9", "level": "error", "message": {"text": "FastAPI POST `set_daily_profit_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2044"}, "properties": {"repobilityId": "b8b35aeba606feb5", "scanner": "scanner-primary", "fingerprint": "13cd0c5adaae4cf9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 2044}}}]}, {"ruleId": "scanner-f6779da84efccf2a", "level": "error", "message": {"text": "FastAPI POST `set_daily_loss_limit` without auth dependency \u2014 src/aurora_ict/api/app.py:2064"}, "properties": {"repobilityId": "78521fa46c26b8ad", "scanner": "scanner-primary", "fingerprint": "f6779da84efccf2a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 2064}}}]}, {"ruleId": "scanner-9ea71c8cbc6ae7ba", "level": "error", "message": {"text": "FastAPI POST `set_credentials` without auth dependency \u2014 src/aurora_ict/api/app.py:2086"}, "properties": {"repobilityId": "5f21eb9a32ebb976", "scanner": "scanner-primary", "fingerprint": "9ea71c8cbc6ae7ba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 2086}}}]}, {"ruleId": "scanner-68e3df4cfef072d9", "level": "error", "message": {"text": "FastAPI POST `close_position` without auth dependency \u2014 src/aurora_ict/api/app.py:2111"}, "properties": {"repobilityId": "bc0e745ba0fb2e09", "scanner": "scanner-primary", "fingerprint": "68e3df4cfef072d9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 2111}}}]}, {"ruleId": "scanner-2e1903f2b6305601", "level": "error", "message": {"text": "FastAPI POST `cancel_pending` without auth dependency \u2014 src/aurora_ict/api/app.py:2176"}, "properties": {"repobilityId": "669c8d53c184a7aa", "scanner": "scanner-primary", "fingerprint": "2e1903f2b6305601", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/app.py"}, "region": {"startLine": 2176}}}]}, {"ruleId": "scanner-1d684e62055b70f3", "level": "error", "message": {"text": "FastAPI POST `create_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:74"}, "properties": {"repobilityId": "bd1f928b1647dacf", "scanner": "scanner-primary", "fingerprint": "1d684e62055b70f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/notice_router.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-aae5eba7a70ba4d0", "level": "error", "message": {"text": "FastAPI DELETE `delete_notice_admin` without auth dependency \u2014 src/aurora_ict/api/notice_router.py:103"}, "properties": {"repobilityId": "ba4ff604060f158a", "scanner": "scanner-primary", "fingerprint": "aae5eba7a70ba4d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/aurora_ict/api/notice_router.py"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-e9464d451e602d20", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:8765/status (ui/js/app.js:57)"}, "properties": {"repobilityId": "fa7fabef371af8c5", "scanner": "scanner-primary", "fingerprint": "e9464d451e602d20", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f71c8df8b66686f", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/WL131231/Aurora-releases/releases/latest (website/app.js:102)"}, "properties": {"repobilityId": "fe5027273bf59232", "scanner": "scanner-primary", "fingerprint": "2f71c8df8b66686f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bfafaf6bb3748d6d", "level": "error", "message": {"text": "Dangling fetch: GET /auth/status (ui_ict/app.js:8)"}, "properties": {"repobilityId": "f9128e59170e2b26", "scanner": "scanner-primary", "fingerprint": "bfafaf6bb3748d6d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "4225f14462d050c1", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3a8789f7bab0ddfd", "level": "note", "message": {"text": "Unused endpoint: GET /indicators/list"}, "properties": {"repobilityId": "0fe50ffafa2fdbfb", "scanner": "scanner-primary", "fingerprint": "3a8789f7bab0ddfd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8bdc45e42ba4cda0", "level": "note", "message": {"text": "Unused endpoint: GET /positions"}, "properties": {"repobilityId": "aae84d8e34c73cef", "scanner": "scanner-primary", "fingerprint": "8bdc45e42ba4cda0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2e99127dcd090925", "level": "note", "message": {"text": "Unused endpoint: POST /update/apply_ui"}, "properties": {"repobilityId": "3a3bf384cc698298", "scanner": "scanner-primary", "fingerprint": "2e99127dcd090925", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f27f0e6a9fb07b9b", "level": "note", "message": {"text": "Unused endpoint: GET /trades"}, "properties": {"repobilityId": "367b6ee51425e4d5", "scanner": "scanner-primary", "fingerprint": "f27f0e6a9fb07b9b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53190bd2c422009c", "level": "note", "message": {"text": "Unused endpoint: GET /market-trend"}, "properties": {"repobilityId": "83e26ec1c918c055", "scanner": "scanner-primary", "fingerprint": "53190bd2c422009c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-032cc2c16423e1d8", "level": "note", "message": {"text": "Unused endpoint: GET /release/latest"}, "properties": {"repobilityId": "b79e446253525ff9", "scanner": "scanner-primary", "fingerprint": "032cc2c16423e1d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd8dc4599ec52a08", "level": "note", "message": {"text": "Unused endpoint: GET /stats"}, "properties": {"repobilityId": "468da0163f3af826", "scanner": "scanner-primary", "fingerprint": "cd8dc4599ec52a08", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bbe02bcd26f10cbf", "level": "note", "message": {"text": "Unused endpoint: GET /chart"}, "properties": {"repobilityId": "3dce2f226aadd706", "scanner": "scanner-primary", "fingerprint": "bbe02bcd26f10cbf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-41f393ebd7ffc31b", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard-flow"}, "properties": {"repobilityId": "f686513f70befd3b", "scanner": "scanner-primary", "fingerprint": "41f393ebd7ffc31b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c4a48f3d8ff77d7", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard-flow/series"}, "properties": {"repobilityId": "d1f0138aa8b2357d", "scanner": "scanner-primary", "fingerprint": "5c4a48f3d8ff77d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b43dadb20b58bf43", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard-flow/ratios"}, "properties": {"repobilityId": "7e44ac2b059708ed", "scanner": "scanner-primary", "fingerprint": "b43dadb20b58bf43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6f48e60c30777ab", "level": "note", "message": {"text": "Unused endpoint: GET /config"}, "properties": {"repobilityId": "a72d82d8a06d11af", "scanner": "scanner-primary", "fingerprint": "a6f48e60c30777ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0666d1d987815276", "level": "note", "message": {"text": "Unused endpoint: POST /config"}, "properties": {"repobilityId": "990da95c86710bc8", "scanner": "scanner-primary", "fingerprint": "0666d1d987815276", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a13a7e97aeacf55f", "level": "note", "message": {"text": "Unused endpoint: POST /start"}, "properties": {"repobilityId": "adf727885445fab3", "scanner": "scanner-primary", "fingerprint": "a13a7e97aeacf55f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e69c90752a76eba5", "level": "note", "message": {"text": "Unused endpoint: POST /stop"}, "properties": {"repobilityId": "6a161893aed1ffa3", "scanner": "scanner-primary", "fingerprint": "e69c90752a76eba5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cfea1130c34bf33b", "level": "note", "message": {"text": "Unused endpoint: POST /restart"}, "properties": {"repobilityId": "2b2e02d1685fef74", "scanner": "scanner-primary", "fingerprint": "cfea1130c34bf33b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d711c81ec577fc0a", "level": "note", "message": {"text": "Unused endpoint: POST /relaunch"}, "properties": {"repobilityId": "4d1c209e3ec0d93e", "scanner": "scanner-primary", "fingerprint": "d711c81ec577fc0a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-72f99d58636b648b", "level": "note", "message": {"text": "Unused endpoint: GET /logs"}, "properties": {"repobilityId": "48a7c3a43054dc37", "scanner": "scanner-primary", "fingerprint": "72f99d58636b648b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3891402b7328b104", "level": "note", "message": {"text": "Unused endpoint: POST /setup-pin"}, "properties": {"repobilityId": "9bf40b5089606410", "scanner": "scanner-primary", "fingerprint": "3891402b7328b104", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-618721b912bad1c2", "level": "note", "message": {"text": "Unused endpoint: POST /login"}, "properties": {"repobilityId": "f426aa093576c96d", "scanner": "scanner-primary", "fingerprint": "618721b912bad1c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99fc36db98c134ce", "level": "note", "message": {"text": "Unused endpoint: POST /logout"}, "properties": {"repobilityId": "2513d3d590efda79", "scanner": "scanner-primary", "fingerprint": "99fc36db98c134ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-224cbb7548a6b13c", "level": "note", "message": {"text": "Unused endpoint: POST /api-keys"}, "properties": {"repobilityId": "33fdf0959f31de3e", "scanner": "scanner-primary", "fingerprint": "224cbb7548a6b13c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-86584bfea8a23fd2", "level": "note", "message": {"text": "Unused endpoint: DELETE /api-keys"}, "properties": {"repobilityId": "3088023306268927", "scanner": "scanner-primary", "fingerprint": "86584bfea8a23fd2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c508f177634ecc3", "level": "note", "message": {"text": "Unused endpoint: GET /ict/trades"}, "properties": {"repobilityId": "d2d8aeb9f2d55c04", "scanner": "scanner-primary", "fingerprint": "4c508f177634ecc3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b7f463d445d0833d", "level": "note", "message": {"text": "Unused endpoint: GET /ict/trades/export"}, "properties": {"repobilityId": "8d248f5917638425", "scanner": "scanner-primary", "fingerprint": "b7f463d445d0833d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba14173b6cb2c54d", "level": "note", "message": {"text": "Unused endpoint: GET /admin/trades"}, "properties": {"repobilityId": "6dca4f766ec47d43", "scanner": "scanner-primary", "fingerprint": "ba14173b6cb2c54d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a868e2bd7ae47849", "level": "note", "message": {"text": "Unused endpoint: GET /admin/trades/export"}, "properties": {"repobilityId": "28a7c32404d363e8", "scanner": "scanner-primary", "fingerprint": "a868e2bd7ae47849", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-12058af03c00a17a", "level": "note", "message": {"text": "Unused endpoint: GET /admin/trades/export-all"}, "properties": {"repobilityId": "4ea969f684e9b5e5", "scanner": "scanner-primary", "fingerprint": "12058af03c00a17a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9063c99f6ab5b6b", "level": "note", "message": {"text": "Unused endpoint: GET /admin/trades/all_users"}, "properties": {"repobilityId": "59f0433c429cef42", "scanner": "scanner-primary", "fingerprint": "d9063c99f6ab5b6b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-590fa9d81cf6a85c", "level": "note", "message": {"text": "Unused endpoint: POST /admin/login"}, "properties": {"repobilityId": "74219561a78a4d22", "scanner": "scanner-primary", "fingerprint": "590fa9d81cf6a85c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-392aa70ef1d3cf0c", "level": "note", "message": {"text": "Unused endpoint: POST /admin/logout"}, "properties": {"repobilityId": "d2357b2ef708ab30", "scanner": "scanner-primary", "fingerprint": "392aa70ef1d3cf0c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a2db517414b3dfbc", "level": "note", "message": {"text": "Unused endpoint: GET /admin/session"}, "properties": {"repobilityId": "e6eca43f6843218d", "scanner": "scanner-primary", "fingerprint": "a2db517414b3dfbc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0aba7f1883cb96f2", "level": "note", "message": {"text": "Unused endpoint: GET /admin/users"}, "properties": {"repobilityId": "acefccd7e2481b82", "scanner": "scanner-primary", "fingerprint": "0aba7f1883cb96f2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0440d027fe714eac", "level": "note", "message": {"text": "Unused endpoint: POST /admin/trades/rebuild"}, "properties": {"repobilityId": "d987f556b6c6bff9", "scanner": "scanner-primary", "fingerprint": "0440d027fe714eac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a35e943d0dd8d4e8", "level": "note", "message": {"text": "Unused endpoint: GET /admin/trades/backup"}, "properties": {"repobilityId": "2bb8f43a34de8cf0", "scanner": "scanner-primary", "fingerprint": "a35e943d0dd8d4e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-354e54d9967375e1", "level": "note", "message": {"text": "Unused endpoint: POST /admin/user/license"}, "properties": {"repobilityId": "a269d1ef2f801970", "scanner": "scanner-primary", "fingerprint": "354e54d9967375e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f7699bf1a884616", "level": "note", "message": {"text": "Unused endpoint: GET /ict/health"}, "properties": {"repobilityId": "8bc0e9fe37479059", "scanner": "scanner-primary", "fingerprint": "2f7699bf1a884616", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-11c45204f0828fc0", "level": "note", "message": {"text": "Unused endpoint: GET /ict/status"}, "properties": {"repobilityId": "1c2b5e8bae103fe4", "scanner": "scanner-primary", "fingerprint": "11c45204f0828fc0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e57d4205b04ed07", "level": "note", "message": {"text": "Unused endpoint: POST /ict/start"}, "properties": {"repobilityId": "160cfe1d0fa4a6ee", "scanner": "scanner-primary", "fingerprint": "7e57d4205b04ed07", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-027b0f9649048a10", "level": "note", "message": {"text": "Unused endpoint: POST /ict/stop"}, "properties": {"repobilityId": "39d766f5a3a0ecf3", "scanner": "scanner-primary", "fingerprint": "027b0f9649048a10", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67f3ab88d17277d4", "level": "note", "message": {"text": "Unused endpoint: POST /ict/stop-all"}, "properties": {"repobilityId": "7612561298a619aa", "scanner": "scanner-primary", "fingerprint": "67f3ab88d17277d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76209b83d2c7253a", "level": "note", "message": {"text": "Unused endpoint: GET /ict/running-pairs"}, "properties": {"repobilityId": "ba7bb2b602acdf87", "scanner": "scanner-primary", "fingerprint": "76209b83d2c7253a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-25a0aa8f27c69ba8", "level": "note", "message": {"text": "Unused endpoint: GET /ict/markets"}, "properties": {"repobilityId": "74cb3c2f11e22fba", "scanner": "scanner-primary", "fingerprint": "25a0aa8f27c69ba8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03228da5f7b09c6d", "level": "note", "message": {"text": "Unused endpoint: GET /ict/config"}, "properties": {"repobilityId": "c3683a41f873b335", "scanner": "scanner-primary", "fingerprint": "03228da5f7b09c6d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-957572c704c17b93", "level": "note", "message": {"text": "Unused endpoint: POST /ict/run-mode"}, "properties": {"repobilityId": "c15e0f7d1cf618df", "scanner": "scanner-primary", "fingerprint": "957572c704c17b93", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7721050b68caa314", "level": "note", "message": {"text": "Unused endpoint: POST /ict/enabled"}, "properties": {"repobilityId": "9b92250480833f79", "scanner": "scanner-primary", "fingerprint": "7721050b68caa314", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-784ff84d2654f52e", "level": "note", "message": {"text": "Unused endpoint: POST /ict/test-connection"}, "properties": {"repobilityId": "da5779da0cfa73f2", "scanner": "scanner-primary", "fingerprint": "784ff84d2654f52e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d91a276013c9ec1", "level": "note", "message": {"text": "Unused endpoint: POST /ict/timeframe"}, "properties": {"repobilityId": "bea77c9cf2a62721", "scanner": "scanner-primary", "fingerprint": "9d91a276013c9ec1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eed1a6d565815a1d", "level": "note", "message": {"text": "Unused endpoint: GET /ict/daily_loss_limit"}, "properties": {"repobilityId": "6a7b1be1a6c500a9", "scanner": "scanner-primary", "fingerprint": "eed1a6d565815a1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}