{"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-c3de195ba83f79c8", "name": "Possibly dead Python function: glade_root_from_file", "shortDescription": {"text": "Possibly dead Python function: glade_root_from_file"}, "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-8bdf4a50b62a3a45", "name": "Possibly dead Python function: kapgam_tnfw", "shortDescription": {"text": "Possibly dead Python function: kapgam_tnfw"}, "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-205a27a8771210f4", "name": "Possibly dead Python function: dkappa_fn", "shortDescription": {"text": "Possibly dead Python function: dkappa_fn"}, "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-b92f9823858cab98", "name": "Possibly dead Python function: kapgam_tnfwpot", "shortDescription": {"text": "Possibly dead Python function: kapgam_tnfwpot"}, "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-465198fd4fa3ce9b", "name": "Possibly dead Python function: kapgam_anfw", "shortDescription": {"text": "Possibly dead Python function: kapgam_anfw"}, "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-d259fd0fc64a7b8f", "name": "Possibly dead Python function: kapgam_ahern", "shortDescription": {"text": "Possibly dead Python function: kapgam_ahern"}, "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-5db8b977855fc059", "name": "Possibly dead Python function: lmodel_to_int", "shortDescription": {"text": "Possibly dead Python function: lmodel_to_int"}, "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-527d5d56c74f169d", "name": "Possibly dead Python function: int_to_lmodel", "shortDescription": {"text": "Possibly dead Python function: int_to_lmodel"}, "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-f4df4609a7af2b2a", "name": "Possibly dead Python function: findimg_adaptive", "shortDescription": {"text": "Possibly dead Python function: findimg_adaptive"}, "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-2202aa5e1b944b20", "name": "Possibly dead Python function: kapgam_hern", "shortDescription": {"text": "Possibly dead Python function: kapgam_hern"}, "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-3cd8f78c5b28aa7c", "name": "Possibly dead Python function: kapgam_hernpot", "shortDescription": {"text": "Possibly dead Python function: kapgam_hernpot"}, "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-99011712b5da04b0", "name": "Possibly dead Python function: kapgam_pow", "shortDescription": {"text": "Possibly dead Python function: kapgam_pow"}, "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-26be87d9fcbb027a", "name": "Possibly dead Python function: kapgam_powpot", "shortDescription": {"text": "Possibly dead Python function: kapgam_powpot"}, "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-14ddf9ad0dac175d", "name": "Possibly dead Python function: kapgam_serspot", "shortDescription": {"text": "Possibly dead Python function: kapgam_serspot"}, "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-60255b132593318b", "name": "Possibly dead Python function: kapgam_clus3", "shortDescription": {"text": "Possibly dead Python function: kapgam_clus3"}, "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-26746340bb38ede3", "name": "Possibly dead Python function: kapgam_mpole", "shortDescription": {"text": "Possibly dead Python function: kapgam_mpole"}, "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-ef565e761b9d742e", "name": "Possibly dead Python function: dkappa", "shortDescription": {"text": "Possibly dead Python function: dkappa"}, "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-05419aa7405b18a4", "name": "Possibly dead Python function: dphi", "shortDescription": {"text": "Possibly dead Python function: dphi"}, "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-b4dd51212b5f55c1", "name": "Possibly dead Python function: kapgam_gnfw", "shortDescription": {"text": "Possibly dead Python function: kapgam_gnfw"}, "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-eb4ebd25083c7279", "name": "Possibly dead Python function: kapgam_gnfwpot", "shortDescription": {"text": "Possibly dead Python function: kapgam_gnfwpot"}, "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-0890e55fee1b5855", "name": "Possibly dead Python function: kapgam_ein", "shortDescription": {"text": "Possibly dead Python function: kapgam_ein"}, "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-f148f1648a2d060c", "name": "Possibly dead Python function: kapgam_einpot", "shortDescription": {"text": "Possibly dead Python function: kapgam_einpot"}, "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-fb8bdd651644d472", "name": "Possibly dead Python function: integrand", "shortDescription": {"text": "Possibly dead Python function: integrand"}, "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-def2902738ea015c", "name": "Possibly dead Python function: set_dtype", "shortDescription": {"text": "Possibly dead Python function: set_dtype"}, "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-a74322d1a67c3969", "name": "Possibly dead Python function: set_cosmo", "shortDescription": {"text": "Possibly dead Python function: set_cosmo"}, "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-04b8207572c8fb5a", "name": "Possibly dead Python function: getpar_lens", "shortDescription": {"text": "Possibly dead Python function: getpar_lens"}, "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-450a3fe17699ca7e", "name": "Possibly dead Python function: getpar_point", "shortDescription": {"text": "Possibly dead Python function: getpar_point"}, "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-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-93fd74507d8ab0d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in webui/static/app.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in webui/static/app.js:20"}, "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-99a1d1634e9d7d63", "name": "Insecure pattern 'subprocess_shell_true' in glafic2/setup.py:13", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in glafic2/setup.py:13"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25d8e1283c1bb2e0", "name": "Insecure pattern 'exec_used' in tools/glafic_verify.py:381", "shortDescription": {"text": "Insecure pattern 'exec_used' in tools/glafic_verify.py:381"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "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/setup-python@v3 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-a4426d7148b3caa6", "name": "Very large file: legacy/v_pointmass_1_0/version_pointmass_1_0.py (1734 lines)", "shortDescription": {"text": "Very large file: legacy/v_pointmass_1_0/version_pointmass_1_0.py (1734 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-c502867cadaffd81", "name": "Very large file: legacy/v_king_1_0/version_king_1_0.py (1392 lines)", "shortDescription": {"text": "Very large file: legacy/v_king_1_0/version_king_1_0.py (1392 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-61202adb14d19ee8", "name": "Very large file: legacy/v_pointmass_extend/version_pointmass_extend.py (1914 lines)", "shortDescription": {"text": "Very large file: legacy/v_pointmass_extend/version_pointmass_extend.py (1914 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-594742124471e181", "name": "Very large file: legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py (1902 lines)", "shortDescription": {"text": "Very large file: legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py (1902 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-347a6044e1084f33", "name": "Very large file: legacy/v_nfw_2_0/version_nfw_2_0.py (1689 lines)", "shortDescription": {"text": "Very large file: legacy/v_nfw_2_0/version_nfw_2_0.py (1689 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-8056b336f4115b46", "name": "Very large file: tools/mcmc_from_result.py (1138 lines)", "shortDescription": {"text": "Very large file: tools/mcmc_from_result.py (1138 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-0e50b7e8c796286a", "name": "Very large file: tools/glafic_optimize.py (1453 lines)", "shortDescription": {"text": "Very large file: tools/glafic_optimize.py (1453 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "18 tests / 97 src (ratio 0.19)."}, "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 1840 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 12 placeholder/mock markers across 9 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-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-a9a6797919a456a1", "name": "Network/subprocess call without timeout or try/except \u2014 runner.py:102", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 runner.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-edf2914c9c2aae72", "name": "Legacy-named symbol `_point_batch_is_legacy` in webui/runjob.py:184", "shortDescription": {"text": "Legacy-named symbol `_point_batch_is_legacy` in webui/runjob.py:184"}, "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-0d70ec34c55b8657", "name": "Commented-code block (5 lines) in webui/runjob.py:167", "shortDescription": {"text": "Commented-code block (5 lines) in webui/runjob.py:167"}, "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-db2e7219a18f50b7", "name": "Commented-code block (5 lines) in webui/jobs.py:78", "shortDescription": {"text": "Commented-code block (5 lines) in webui/jobs.py:78"}, "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-ff659db5e33e03d6", "name": "Network/subprocess call without timeout or try/except \u2014 webui/jobs.py:90", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 webui/jobs.py:90"}, "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-b1fb08233f7f83c8", "name": "Commented-code block (5 lines) in webui/templates_lib.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in webui/templates_lib.py:80"}, "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-9a1707bf08ba7892", "name": "`fetch()` without try/.catch or AbortSignal \u2014 webui/static/app.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 webui/static/app.js:7"}, "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-7e20e3041211d924", "name": "Network/subprocess call without timeout or try/except \u2014 glafic2/setup.py:11", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 glafic2/setup.py:11"}, "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-c234ea3dde1a3744", "name": "Commented-code block (7 lines) in Rhongomyniad/rhongomyniad/image_finder_adaptive.py:179", "shortDescription": {"text": "Commented-code block (7 lines) in Rhongomyniad/rhongomyniad/image_finder_adaptive.py:179"}, "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-5a674b1a048dd537", "name": "Legacy-named symbol `_tab_v1` in Rhongomyniad/rhongomyniad/models_tab.py:178", "shortDescription": {"text": "Legacy-named symbol `_tab_v1` in Rhongomyniad/rhongomyniad/models_tab.py:178"}, "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-d7039ddb91b48d62", "name": "Commented-code block (6 lines) in Rhongomyniad/rhongomyniad/elliptical.py:84", "shortDescription": {"text": "Commented-code block (6 lines) in Rhongomyniad/rhongomyniad/elliptical.py:84"}, "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-662f63e541843158", "name": "Commented-code block (6 lines) in Rhongomyniad/tests/debug_integral.py:66", "shortDescription": {"text": "Commented-code block (6 lines) in Rhongomyniad/tests/debug_integral.py:66"}, "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-b6d89885d5713131", "name": "Commented-code block (9 lines) in legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py:152", "shortDescription": {"text": "Commented-code block (9 lines) in legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py:152"}, "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-5ee694724b766584", "name": "Commented-code block (6 lines) in tools/verify_gpu_models.py:141", "shortDescription": {"text": "Commented-code block (6 lines) in tools/verify_gpu_models.py:141"}, "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-013dd395444fc35c", "name": "Commented-code block (6 lines) in tools/verify_gpu_precision.py:204", "shortDescription": {"text": "Commented-code block (6 lines) in tools/verify_gpu_precision.py:204"}, "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-525c8dc43ed81580", "name": "Commented-code block (14 lines) in tools/inverse_cal.py:74", "shortDescription": {"text": "Commented-code block (14 lines) in tools/inverse_cal.py:74"}, "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-a542fb24f8f232b0", "name": "Commented-code block (6 lines) in tools/glafic_optimize.py:497", "shortDescription": {"text": "Commented-code block (6 lines) in tools/glafic_optimize.py:497"}, "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-d0ec05a5c20b5d6d", "name": "Commented-code block (5 lines) in core/report.py:130", "shortDescription": {"text": "Commented-code block (5 lines) in core/report.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-853256c0cab9951d", "name": "Legacy-named symbol `obj_legacy` in core/tests/test_batched_general.py:432", "shortDescription": {"text": "Legacy-named symbol `obj_legacy` in core/tests/test_batched_general.py:432"}, "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-75e8626c45084dbb", "name": "Commented-code block (5 lines) in core/tests/test_batched_general.py:282", "shortDescription": {"text": "Commented-code block (5 lines) in core/tests/test_batched_general.py:282"}, "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-875f90429ed185f9", "name": "Legacy-named symbol `var_unused` in core/tests/test_format.py:498", "shortDescription": {"text": "Legacy-named symbol `var_unused` in core/tests/test_format.py:498"}, "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-84d73578097423c1", "name": "Commented-code block (5 lines) in core/optimize/batched.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in core/optimize/batched.py:55"}, "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-f5929113657fa213", "name": "Commented-code block (5 lines) in core/optimize/backends.py:60", "shortDescription": {"text": "Commented-code block (5 lines) in core/optimize/backends.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-e2cdd7b595e49cf9", "name": "Commented-code block (9 lines) in core/optimize/extend.py:454", "shortDescription": {"text": "Commented-code block (9 lines) in core/optimize/extend.py:454"}, "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-b6ed409d09dfe672", "name": "Commented-code block (6 lines) in core/optimize/loss.py:26", "shortDescription": {"text": "Commented-code block (6 lines) in core/optimize/loss.py:26"}, "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-259ba87e8ed10ce9", "name": "Commented-code block (5 lines) in core/optimize/batched_extend.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in core/optimize/batched_extend.py:47"}, "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-045ff7734769b1de", "name": "Legacy-named symbol `var_unused` in core/format/validate.py:81", "shortDescription": {"text": "Legacy-named symbol `var_unused` in core/format/validate.py:81"}, "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-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:\nwebui/runjob.py:on_iter, webui/runjob.py:on_iter\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-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nRhongomyniad/rhongomyniad/models_tnfw_cse.py:kapgam_anfw, Rhongomyniad/rhongomyniad/lens_models.py:kapgam_nfwpot, Rhongomyniad/rhongomyniad/lens_models.py:kapgam_nfw\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:\nlegacy/v_pointmass_1_0/version_pointmass_1_0.py:load_baseline_lens_params, legacy/v_pointmass_extend/version_pointmass_extend.py:load_baseline_lens_params, legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py:load_baseline_lens_params, legacy/v_nfw_2_0/version_nfw_2_0.py:load_baseline_lens_params\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-9960e017cda024fe", "name": "Flask mutation route `files_write` without `@login_required` \u2014 webui/app.py:69", "shortDescription": {"text": "Flask mutation route `files_write` without `@login_required` \u2014 webui/app.py:69"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-996c56c21fa4bffc", "name": "Flask mutation route `files_create` without `@login_required` \u2014 webui/app.py:79", "shortDescription": {"text": "Flask mutation route `files_create` without `@login_required` \u2014 webui/app.py:79"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7688e92277cf6a5a", "name": "Flask mutation route `files_rename` without `@login_required` \u2014 webui/app.py:92", "shortDescription": {"text": "Flask mutation route `files_rename` without `@login_required` \u2014 webui/app.py:92"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-543c54cadb188b81", "name": "Flask mutation route `files_delete` without `@login_required` \u2014 webui/app.py:101", "shortDescription": {"text": "Flask mutation route `files_delete` without `@login_required` \u2014 webui/app.py:101"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a033cf028b0ca43", "name": "Flask mutation route `files_import` without `@login_required` \u2014 webui/app.py:114", "shortDescription": {"text": "Flask mutation route `files_import` without `@login_required` \u2014 webui/app.py:114"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4be4788e1d6c98f", "name": "Flask mutation route `files_export` without `@login_required` \u2014 webui/app.py:135", "shortDescription": {"text": "Flask mutation route `files_export` without `@login_required` \u2014 webui/app.py:135"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de533f7af50fca87", "name": "Flask mutation route `run_check` without `@login_required` \u2014 webui/app.py:204", "shortDescription": {"text": "Flask mutation route `run_check` without `@login_required` \u2014 webui/app.py:204"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13686622fc3930b9", "name": "Flask mutation route `run_start` without `@login_required` \u2014 webui/app.py:231", "shortDescription": {"text": "Flask mutation route `run_start` without `@login_required` \u2014 webui/app.py:231"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0049fb8ac167c6b", "name": "Dangling fetch: HEAD /static/vendor/monaco/vs/loader.js (webui/static/app.js:221)", "shortDescription": {"text": "Dangling fetch: HEAD /static/vendor/monaco/vs/loader.js (webui/static/app.js:221)"}, "fullDescription": {"text": "`webui/static/app.js:221` calls `HEAD /static/vendor/monaco/vs/loader.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/static/vendor/monaco/vs/loader.js`\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-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-100126afa788ff99", "name": "Unused endpoint: ANY /assets/icon/<path:name>", "shortDescription": {"text": "Unused endpoint: ANY /assets/icon/<path:name>"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /assets/icon/<path:name>` 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-cf4a3868a911a63f", "name": "Unused endpoint: ANY /api/files/tree", "shortDescription": {"text": "Unused endpoint: ANY /api/files/tree"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/tree` 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-59c3133fb2db6281", "name": "Unused endpoint: ANY /api/files/read", "shortDescription": {"text": "Unused endpoint: ANY /api/files/read"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/read` 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-e0d98f20608f554d", "name": "Unused endpoint: ANY /api/files/write", "shortDescription": {"text": "Unused endpoint: ANY /api/files/write"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/write` 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-6389dd46ddfea38c", "name": "Unused endpoint: ANY /api/files/create", "shortDescription": {"text": "Unused endpoint: ANY /api/files/create"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/create` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e9748a154c19f1f", "name": "Unused endpoint: ANY /api/files/rename", "shortDescription": {"text": "Unused endpoint: ANY /api/files/rename"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/rename` 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-2392fa1b96e9de76", "name": "Unused endpoint: ANY /api/files/delete", "shortDescription": {"text": "Unused endpoint: ANY /api/files/delete"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dd55b0e092bb450d", "name": "Unused endpoint: ANY /api/files/import", "shortDescription": {"text": "Unused endpoint: ANY /api/files/import"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/import` 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-4dfeae4fa63ddab4", "name": "Unused endpoint: ANY /api/files/export", "shortDescription": {"text": "Unused endpoint: ANY /api/files/export"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/files/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-2eadb0614021504b", "name": "Unused endpoint: ANY /api/templates", "shortDescription": {"text": "Unused endpoint: ANY /api/templates"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/templates` 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-193b73511596ce2b", "name": "Unused endpoint: ANY /api/run/check", "shortDescription": {"text": "Unused endpoint: ANY /api/run/check"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/run/check` 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-9b8d6b0817dd1afa", "name": "Unused endpoint: ANY /api/run", "shortDescription": {"text": "Unused endpoint: ANY /api/run"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/run` 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-641e4d413b3b74f3", "name": "Unused endpoint: ANY /api/run/<job_id>/stream", "shortDescription": {"text": "Unused endpoint: ANY /api/run/<job_id>/stream"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/run/<job_id>/stream` 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-5436958265baf3ab", "name": "Unused endpoint: ANY /api/run/<job_id>/status", "shortDescription": {"text": "Unused endpoint: ANY /api/run/<job_id>/status"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/run/<job_id>/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-505fcc00295e4b80", "name": "Unused endpoint: ANY /api/run/<job_id>/result/<path:fname>", "shortDescription": {"text": "Unused endpoint: ANY /api/run/<job_id>/result/<path:fname>"}, "fullDescription": {"text": "`webui/app.py` declares `ANY /api/run/<job_id>/result/<path:fname>` 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/23108"}, "properties": {"repository": "y31ling/glaDE", "repoUrl": "https://github.com/y31ling/glaDE", "branch": "main"}, "results": [{"ruleId": "scanner-c3de195ba83f79c8", "level": "note", "message": {"text": "Possibly dead Python function: glade_root_from_file"}, "properties": {"repobilityId": "9c35f13f05ff8ae1", "scanner": "scanner-primary", "fingerprint": "c3de195ba83f79c8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime_env.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8bdf4a50b62a3a45", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_tnfw"}, "properties": {"repobilityId": "bf6611148814c1e5", "scanner": "scanner-primary", "fingerprint": "8bdf4a50b62a3a45", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tnfw_cse.py:353"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-205a27a8771210f4", "level": "note", "message": {"text": "Possibly dead Python function: dkappa_fn"}, "properties": {"repobilityId": "1b8e7ae4bc72e1c3", "scanner": "scanner-primary", "fingerprint": "205a27a8771210f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tnfw_cse.py:376"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b92f9823858cab98", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_tnfwpot"}, "properties": {"repobilityId": "62fbe32cded79a94", "scanner": "scanner-primary", "fingerprint": "b92f9823858cab98", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tnfw_cse.py:412"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-465198fd4fa3ce9b", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_anfw"}, "properties": {"repobilityId": "edbc51e345ce9dcd", "scanner": "scanner-primary", "fingerprint": "465198fd4fa3ce9b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tnfw_cse.py:609"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d259fd0fc64a7b8f", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_ahern"}, "properties": {"repobilityId": "c2b22a60a932d930", "scanner": "scanner-primary", "fingerprint": "d259fd0fc64a7b8f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tnfw_cse.py:631"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5db8b977855fc059", "level": "note", "message": {"text": "Possibly dead Python function: lmodel_to_int"}, "properties": {"repobilityId": "a1a109b32d2cbeab", "scanner": "scanner-primary", "fingerprint": "5db8b977855fc059", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/constants.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-527d5d56c74f169d", "level": "note", "message": {"text": "Possibly dead Python function: int_to_lmodel"}, "properties": {"repobilityId": "45fc5ad84f35cf48", "scanner": "scanner-primary", "fingerprint": "527d5d56c74f169d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/constants.py:112"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4df4609a7af2b2a", "level": "note", "message": {"text": "Possibly dead Python function: findimg_adaptive"}, "properties": {"repobilityId": "6d9b996576074fd6", "scanner": "scanner-primary", "fingerprint": "f4df4609a7af2b2a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/image_finder_adaptive.py:383"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2202aa5e1b944b20", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_hern"}, "properties": {"repobilityId": "dd04111a495d0de7", "scanner": "scanner-primary", "fingerprint": "2202aa5e1b944b20", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3cd8f78c5b28aa7c", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_hernpot"}, "properties": {"repobilityId": "044f46e1eab44cb9", "scanner": "scanner-primary", "fingerprint": "3cd8f78c5b28aa7c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:192"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-99011712b5da04b0", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_pow"}, "properties": {"repobilityId": "81f445e34d88d1a9", "scanner": "scanner-primary", "fingerprint": "99011712b5da04b0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:279"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26be87d9fcbb027a", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_powpot"}, "properties": {"repobilityId": "d4c4470d94b70014", "scanner": "scanner-primary", "fingerprint": "26be87d9fcbb027a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:340"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14ddf9ad0dac175d", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_serspot"}, "properties": {"repobilityId": "990b808589d939e2", "scanner": "scanner-primary", "fingerprint": "14ddf9ad0dac175d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:402"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60255b132593318b", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_clus3"}, "properties": {"repobilityId": "2a3e77f56b089ab9", "scanner": "scanner-primary", "fingerprint": "60255b132593318b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:448"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26746340bb38ede3", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_mpole"}, "properties": {"repobilityId": "77a64395a0132b03", "scanner": "scanner-primary", "fingerprint": "26746340bb38ede3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_closed.py:508"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef565e761b9d742e", "level": "note", "message": {"text": "Possibly dead Python function: dkappa"}, "properties": {"repobilityId": "148e7c4463e60ce3", "scanner": "scanner-primary", "fingerprint": "ef565e761b9d742e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:238"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05419aa7405b18a4", "level": "note", "message": {"text": "Possibly dead Python function: dphi"}, "properties": {"repobilityId": "a503a55afa27fd7d", "scanner": "scanner-primary", "fingerprint": "05419aa7405b18a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:243"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4dd51212b5f55c1", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_gnfw"}, "properties": {"repobilityId": "ed0745f0e3f7b1c7", "scanner": "scanner-primary", "fingerprint": "b4dd51212b5f55c1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:430"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb4ebd25083c7279", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_gnfwpot"}, "properties": {"repobilityId": "603ee11eb8c3473d", "scanner": "scanner-primary", "fingerprint": "eb4ebd25083c7279", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:436"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0890e55fee1b5855", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_ein"}, "properties": {"repobilityId": "c2e1e4ce39270343", "scanner": "scanner-primary", "fingerprint": "0890e55fee1b5855", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:442"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f148f1648a2d060c", "level": "note", "message": {"text": "Possibly dead Python function: kapgam_einpot"}, "properties": {"repobilityId": "a458f3ff9bd618b7", "scanner": "scanner-primary", "fingerprint": "f148f1648a2d060c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/models_tab.py:448"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb8bdd651644d472", "level": "note", "message": {"text": "Possibly dead Python function: integrand"}, "properties": {"repobilityId": "f16c8d5ca6578f35", "scanner": "scanner-primary", "fingerprint": "fb8bdd651644d472", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/elliptical.py:226"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-def2902738ea015c", "level": "note", "message": {"text": "Possibly dead Python function: set_dtype"}, "properties": {"repobilityId": "4179098f80c7ab59", "scanner": "scanner-primary", "fingerprint": "def2902738ea015c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/api.py:117"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a74322d1a67c3969", "level": "note", "message": {"text": "Possibly dead Python function: set_cosmo"}, "properties": {"repobilityId": "0da3e2b527709b18", "scanner": "scanner-primary", "fingerprint": "a74322d1a67c3969", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/api.py:155"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04b8207572c8fb5a", "level": "note", "message": {"text": "Possibly dead Python function: getpar_lens"}, "properties": {"repobilityId": "407dee0877fb9644", "scanner": "scanner-primary", "fingerprint": "04b8207572c8fb5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/api.py:340"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-450a3fe17699ca7e", "level": "note", "message": {"text": "Possibly dead Python function: getpar_point"}, "properties": {"repobilityId": "f9b1caafe049ee98", "scanner": "scanner-primary", "fingerprint": "450a3fe17699ca7e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Rhongomyniad/rhongomyniad/api.py:346"}, "region": {"startLine": 1}}}]}, {"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-93fd74507d8ab0d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in webui/static/app.js:20"}, "properties": {"repobilityId": "b694d473187f84ad", "scanner": "scanner-primary", "fingerprint": "93fd74507d8ab0d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/static/app.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-99a1d1634e9d7d63", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in glafic2/setup.py:13"}, "properties": {"repobilityId": "65bd261dbe2304cb", "scanner": "scanner-primary", "fingerprint": "99a1d1634e9d7d63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "glafic2/setup.py"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-25d8e1283c1bb2e0", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in tools/glafic_verify.py:381"}, "properties": {"repobilityId": "b0e374cf53729d03", "scanner": "scanner-primary", "fingerprint": "25d8e1283c1bb2e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/glafic_verify.py"}, "region": {"startLine": 381}}}]}, {"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": "ca020719debf7d76", "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": 20}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5b2c585f16cb03ef", "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": 30}}}]}, {"ruleId": "scanner-a4426d7148b3caa6", "level": "note", "message": {"text": "Very large file: legacy/v_pointmass_1_0/version_pointmass_1_0.py (1734 lines)"}, "properties": {"repobilityId": "d08bd15ca89fb4cc", "scanner": "scanner-primary", "fingerprint": "a4426d7148b3caa6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c502867cadaffd81", "level": "note", "message": {"text": "Very large file: legacy/v_king_1_0/version_king_1_0.py (1392 lines)"}, "properties": {"repobilityId": "f2f9f4fd5fc269a5", "scanner": "scanner-primary", "fingerprint": "c502867cadaffd81", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61202adb14d19ee8", "level": "note", "message": {"text": "Very large file: legacy/v_pointmass_extend/version_pointmass_extend.py (1914 lines)"}, "properties": {"repobilityId": "9e4336af298556d0", "scanner": "scanner-primary", "fingerprint": "61202adb14d19ee8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-594742124471e181", "level": "note", "message": {"text": "Very large file: legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py (1902 lines)"}, "properties": {"repobilityId": "2a9d72e62892ebc0", "scanner": "scanner-primary", "fingerprint": "594742124471e181", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-347a6044e1084f33", "level": "note", "message": {"text": "Very large file: legacy/v_nfw_2_0/version_nfw_2_0.py (1689 lines)"}, "properties": {"repobilityId": "62720f79637e8614", "scanner": "scanner-primary", "fingerprint": "347a6044e1084f33", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8056b336f4115b46", "level": "note", "message": {"text": "Very large file: tools/mcmc_from_result.py (1138 lines)"}, "properties": {"repobilityId": "43e56fd26fc2bf12", "scanner": "scanner-primary", "fingerprint": "8056b336f4115b46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0e50b7e8c796286a", "level": "note", "message": {"text": "Very large file: tools/glafic_optimize.py (1453 lines)"}, "properties": {"repobilityId": "bb1f38ae1326c829", "scanner": "scanner-primary", "fingerprint": "0e50b7e8c796286a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "041751ee384d8c0c", "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": "13fc9185fd41da65", "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": "b5e2b1c97382af50", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "14253c40620fbdf8", "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": "ee9eef726fa13f2e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-a9a6797919a456a1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 runner.py:102"}, "properties": {"repobilityId": "5177bbdaa7cbc1e9", "scanner": "scanner-primary", "fingerprint": "a9a6797919a456a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-edf2914c9c2aae72", "level": "note", "message": {"text": "Legacy-named symbol `_point_batch_is_legacy` in webui/runjob.py:184"}, "properties": {"repobilityId": "2706623b7fbc9bd4", "scanner": "scanner-primary", "fingerprint": "edf2914c9c2aae72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d70ec34c55b8657", "level": "none", "message": {"text": "Commented-code block (5 lines) in webui/runjob.py:167"}, "properties": {"repobilityId": "3d9c31dde86daccb", "scanner": "scanner-primary", "fingerprint": "0d70ec34c55b8657", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db2e7219a18f50b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in webui/jobs.py:78"}, "properties": {"repobilityId": "1df3216a1b80c90b", "scanner": "scanner-primary", "fingerprint": "db2e7219a18f50b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff659db5e33e03d6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 webui/jobs.py:90"}, "properties": {"repobilityId": "9924faa04ea43545", "scanner": "scanner-primary", "fingerprint": "ff659db5e33e03d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1fb08233f7f83c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in webui/templates_lib.py:80"}, "properties": {"repobilityId": "647e7a55ce37ab7b", "scanner": "scanner-primary", "fingerprint": "b1fb08233f7f83c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a1707bf08ba7892", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 webui/static/app.js:7"}, "properties": {"repobilityId": "a0ed4015494645aa", "scanner": "scanner-primary", "fingerprint": "9a1707bf08ba7892", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e20e3041211d924", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 glafic2/setup.py:11"}, "properties": {"repobilityId": "0a3ef78f2556924b", "scanner": "scanner-primary", "fingerprint": "7e20e3041211d924", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c234ea3dde1a3744", "level": "none", "message": {"text": "Commented-code block (7 lines) in Rhongomyniad/rhongomyniad/image_finder_adaptive.py:179"}, "properties": {"repobilityId": "cefaabdd01a67b2a", "scanner": "scanner-primary", "fingerprint": "c234ea3dde1a3744", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a674b1a048dd537", "level": "note", "message": {"text": "Legacy-named symbol `_tab_v1` in Rhongomyniad/rhongomyniad/models_tab.py:178"}, "properties": {"repobilityId": "50411c65354bc9da", "scanner": "scanner-primary", "fingerprint": "5a674b1a048dd537", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7039ddb91b48d62", "level": "none", "message": {"text": "Commented-code block (6 lines) in Rhongomyniad/rhongomyniad/elliptical.py:84"}, "properties": {"repobilityId": "69be1f565bf175c7", "scanner": "scanner-primary", "fingerprint": "d7039ddb91b48d62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-662f63e541843158", "level": "none", "message": {"text": "Commented-code block (6 lines) in Rhongomyniad/tests/debug_integral.py:66"}, "properties": {"repobilityId": "b7121e68aed0dd94", "scanner": "scanner-primary", "fingerprint": "662f63e541843158", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6d89885d5713131", "level": "none", "message": {"text": "Commented-code block (9 lines) in legacy/v_p_jaffe_2_0/version_p_jaffe_2_0.py:152"}, "properties": {"repobilityId": "b556e7214be3102c", "scanner": "scanner-primary", "fingerprint": "b6d89885d5713131", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ee694724b766584", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/verify_gpu_models.py:141"}, "properties": {"repobilityId": "dffc60b49a1b53f0", "scanner": "scanner-primary", "fingerprint": "5ee694724b766584", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-013dd395444fc35c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/verify_gpu_precision.py:204"}, "properties": {"repobilityId": "739065e54d58a582", "scanner": "scanner-primary", "fingerprint": "013dd395444fc35c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-525c8dc43ed81580", "level": "none", "message": {"text": "Commented-code block (14 lines) in tools/inverse_cal.py:74"}, "properties": {"repobilityId": "eb020a0d7f47b1bb", "scanner": "scanner-primary", "fingerprint": "525c8dc43ed81580", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a542fb24f8f232b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/glafic_optimize.py:497"}, "properties": {"repobilityId": "d07f65766aa4577e", "scanner": "scanner-primary", "fingerprint": "a542fb24f8f232b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0ec05a5c20b5d6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/report.py:130"}, "properties": {"repobilityId": "a862ee2d24826ca7", "scanner": "scanner-primary", "fingerprint": "d0ec05a5c20b5d6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-853256c0cab9951d", "level": "note", "message": {"text": "Legacy-named symbol `obj_legacy` in core/tests/test_batched_general.py:432"}, "properties": {"repobilityId": "77dd39e96c38b5e2", "scanner": "scanner-primary", "fingerprint": "853256c0cab9951d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75e8626c45084dbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/tests/test_batched_general.py:282"}, "properties": {"repobilityId": "09a83538c05f8f52", "scanner": "scanner-primary", "fingerprint": "75e8626c45084dbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-875f90429ed185f9", "level": "note", "message": {"text": "Legacy-named symbol `var_unused` in core/tests/test_format.py:498"}, "properties": {"repobilityId": "05c6d9ad3b4550b4", "scanner": "scanner-primary", "fingerprint": "875f90429ed185f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-84d73578097423c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/optimize/batched.py:55"}, "properties": {"repobilityId": "40ae2b244b07d007", "scanner": "scanner-primary", "fingerprint": "84d73578097423c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5929113657fa213", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/optimize/backends.py:60"}, "properties": {"repobilityId": "280a1ddd8c0c7642", "scanner": "scanner-primary", "fingerprint": "f5929113657fa213", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2cdd7b595e49cf9", "level": "none", "message": {"text": "Commented-code block (9 lines) in core/optimize/extend.py:454"}, "properties": {"repobilityId": "2d2e09c3f186b9a4", "scanner": "scanner-primary", "fingerprint": "e2cdd7b595e49cf9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6ed409d09dfe672", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/optimize/loss.py:26"}, "properties": {"repobilityId": "587da0f52b4ce608", "scanner": "scanner-primary", "fingerprint": "b6ed409d09dfe672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-259ba87e8ed10ce9", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/optimize/batched_extend.py:47"}, "properties": {"repobilityId": "e671694572de6671", "scanner": "scanner-primary", "fingerprint": "259ba87e8ed10ce9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-045ff7734769b1de", "level": "note", "message": {"text": "Legacy-named symbol `var_unused` in core/format/validate.py:81"}, "properties": {"repobilityId": "3f482c65e66f2959", "scanner": "scanner-primary", "fingerprint": "045ff7734769b1de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2ccf9df69c24b7f8", "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": "0ed57b69a05f8045", "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": "36c3d431db95ac8b", "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": "5d6664b8d427471c", "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": "8ea2fd5507d0862f", "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": "73ea59243389eb10", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "61415693c40d2d6f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "7d6494806a206a7c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "f041a18d2b7a2ff0", "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": "327d68aec95b81c6", "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": "95bd165a09480203", "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": "a5966bb2955a44d0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "03485256d612a16d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "de2c39cc9adf973f", "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": "15c4c87c7441de41", "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": "75b16958e026211d", "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": "7bdb5afd312f863b", "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": "1f0c627fade59f64", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "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": "d87733994c8f9721", "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": "5b82b137ce3261e2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-9960e017cda024fe", "level": "error", "message": {"text": "Flask mutation route `files_write` without `@login_required` \u2014 webui/app.py:69"}, "properties": {"repobilityId": "016620e3b77a8dd1", "scanner": "scanner-primary", "fingerprint": "9960e017cda024fe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-996c56c21fa4bffc", "level": "error", "message": {"text": "Flask mutation route `files_create` without `@login_required` \u2014 webui/app.py:79"}, "properties": {"repobilityId": "60c148dd14861c03", "scanner": "scanner-primary", "fingerprint": "996c56c21fa4bffc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-7688e92277cf6a5a", "level": "error", "message": {"text": "Flask mutation route `files_rename` without `@login_required` \u2014 webui/app.py:92"}, "properties": {"repobilityId": "41c4e2ea76c9d094", "scanner": "scanner-primary", "fingerprint": "7688e92277cf6a5a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-543c54cadb188b81", "level": "error", "message": {"text": "Flask mutation route `files_delete` without `@login_required` \u2014 webui/app.py:101"}, "properties": {"repobilityId": "df46c268650cdfb9", "scanner": "scanner-primary", "fingerprint": "543c54cadb188b81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-3a033cf028b0ca43", "level": "error", "message": {"text": "Flask mutation route `files_import` without `@login_required` \u2014 webui/app.py:114"}, "properties": {"repobilityId": "2757b0f35bc8e2aa", "scanner": "scanner-primary", "fingerprint": "3a033cf028b0ca43", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-b4be4788e1d6c98f", "level": "error", "message": {"text": "Flask mutation route `files_export` without `@login_required` \u2014 webui/app.py:135"}, "properties": {"repobilityId": "5b4c620dcbf6ca19", "scanner": "scanner-primary", "fingerprint": "b4be4788e1d6c98f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-de533f7af50fca87", "level": "error", "message": {"text": "Flask mutation route `run_check` without `@login_required` \u2014 webui/app.py:204"}, "properties": {"repobilityId": "71ca962ebb008b50", "scanner": "scanner-primary", "fingerprint": "de533f7af50fca87", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-13686622fc3930b9", "level": "error", "message": {"text": "Flask mutation route `run_start` without `@login_required` \u2014 webui/app.py:231"}, "properties": {"repobilityId": "2ceb4d3f05bc08b0", "scanner": "scanner-primary", "fingerprint": "13686622fc3930b9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "webui/app.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-d0049fb8ac167c6b", "level": "error", "message": {"text": "Dangling fetch: HEAD /static/vendor/monaco/vs/loader.js (webui/static/app.js:221)"}, "properties": {"repobilityId": "f431124f53bd0a7d", "scanner": "scanner-primary", "fingerprint": "d0049fb8ac167c6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "8049e40d9bfba50b", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-100126afa788ff99", "level": "note", "message": {"text": "Unused endpoint: ANY /assets/icon/<path:name>"}, "properties": {"repobilityId": "85ee4dd20e98b444", "scanner": "scanner-primary", "fingerprint": "100126afa788ff99", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cf4a3868a911a63f", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/tree"}, "properties": {"repobilityId": "bcaec7b9d94d3fba", "scanner": "scanner-primary", "fingerprint": "cf4a3868a911a63f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59c3133fb2db6281", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/read"}, "properties": {"repobilityId": "7d0308c1b7ba2647", "scanner": "scanner-primary", "fingerprint": "59c3133fb2db6281", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e0d98f20608f554d", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/write"}, "properties": {"repobilityId": "8169757aaf0c8e0d", "scanner": "scanner-primary", "fingerprint": "e0d98f20608f554d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6389dd46ddfea38c", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/create"}, "properties": {"repobilityId": "1293c766e6601996", "scanner": "scanner-primary", "fingerprint": "6389dd46ddfea38c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5e9748a154c19f1f", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/rename"}, "properties": {"repobilityId": "62186a9a8c32f216", "scanner": "scanner-primary", "fingerprint": "5e9748a154c19f1f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2392fa1b96e9de76", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/delete"}, "properties": {"repobilityId": "59d4dc49ef5b55ec", "scanner": "scanner-primary", "fingerprint": "2392fa1b96e9de76", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dd55b0e092bb450d", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/import"}, "properties": {"repobilityId": "babc6f8a686662c1", "scanner": "scanner-primary", "fingerprint": "dd55b0e092bb450d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4dfeae4fa63ddab4", "level": "note", "message": {"text": "Unused endpoint: ANY /api/files/export"}, "properties": {"repobilityId": "919da60b11063e90", "scanner": "scanner-primary", "fingerprint": "4dfeae4fa63ddab4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2eadb0614021504b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/templates"}, "properties": {"repobilityId": "cf89c6992c000e66", "scanner": "scanner-primary", "fingerprint": "2eadb0614021504b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-193b73511596ce2b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run/check"}, "properties": {"repobilityId": "5742bd7bca7cf966", "scanner": "scanner-primary", "fingerprint": "193b73511596ce2b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9b8d6b0817dd1afa", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run"}, "properties": {"repobilityId": "65625db50159aee6", "scanner": "scanner-primary", "fingerprint": "9b8d6b0817dd1afa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-641e4d413b3b74f3", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run/<job_id>/stream"}, "properties": {"repobilityId": "7790730d2a84929c", "scanner": "scanner-primary", "fingerprint": "641e4d413b3b74f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5436958265baf3ab", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run/<job_id>/status"}, "properties": {"repobilityId": "20d018920b277dfa", "scanner": "scanner-primary", "fingerprint": "5436958265baf3ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-505fcc00295e4b80", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run/<job_id>/result/<path:fname>"}, "properties": {"repobilityId": "1487ecd2c2a599b9", "scanner": "scanner-primary", "fingerprint": "505fcc00295e4b80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}