{"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-db8aaa2955aeacd7", "name": "Possibly dead Python function: section_field_hash", "shortDescription": {"text": "Possibly dead Python function: section_field_hash"}, "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-f9d84ef57adfd51c", "name": "Possibly dead Python function: calculate_bounding_sphere", "shortDescription": {"text": "Possibly dead Python function: calculate_bounding_sphere"}, "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-61034a134542dbb4", "name": "Possibly dead Python function: calculate_bounding_box", "shortDescription": {"text": "Possibly dead Python function: calculate_bounding_box"}, "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-8e00af906a7f0bd1", "name": "Possibly dead Python function: matrix_to_list", "shortDescription": {"text": "Possibly dead Python function: matrix_to_list"}, "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-7d91832b91f4670e", "name": "Possibly dead Python function: list_to_matrix", "shortDescription": {"text": "Possibly dead Python function: list_to_matrix"}, "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-1ea8458e0915644e", "name": "Possibly dead Python function: select_objects", "shortDescription": {"text": "Possibly dead Python function: select_objects"}, "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-b79647dfb3aea70a", "name": "Possibly dead Python function: validate_mesh_for_export", "shortDescription": {"text": "Possibly dead Python function: validate_mesh_for_export"}, "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-aa199c2f02030435", "name": "Possibly dead Python function: create_debug_empty", "shortDescription": {"text": "Possibly dead Python function: create_debug_empty"}, "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-9fbf527e6b7f0175", "name": "Possibly dead Python function: print_mapgeo_info", "shortDescription": {"text": "Possibly dead Python function: print_mapgeo_info"}, "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-c15ae0330fd94111", "name": "Possibly dead Python function: format_file_size", "shortDescription": {"text": "Possibly dead Python function: format_file_size"}, "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-a925f9e304a9dc2d", "name": "Possibly dead Python function: clamp", "shortDescription": {"text": "Possibly dead Python function: clamp"}, "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-2cc8f8e56a32d698", "name": "Possibly dead Python function: lerp", "shortDescription": {"text": "Possibly dead Python function: lerp"}, "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-c6f3495deeb6fb77", "name": "Possibly dead Python function: vector_to_tuple", "shortDescription": {"text": "Possibly dead Python function: vector_to_tuple"}, "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-91ddcbc93106ee32", "name": "Possibly dead Python function: ensure_material", "shortDescription": {"text": "Possibly dead Python function: ensure_material"}, "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-24c798f1e2288d3e", "name": "Possibly dead Python function: finish", "shortDescription": {"text": "Possibly dead Python function: finish"}, "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-8ac341a73ac8e7ae", "name": "Possibly dead Python function: create_material_collection", "shortDescription": {"text": "Possibly dead Python function: create_material_collection"}, "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-27f5174c1bd80530", "name": "Possibly dead Python function: list_material_properties", "shortDescription": {"text": "Possibly dead Python function: list_material_properties"}, "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-45cacceaa76258f6", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-c081a661acb62569", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-861d943167c88b99", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-2283b1aa458c8abf", "name": "Possibly dead Python function: draw_item", "shortDescription": {"text": "Possibly dead Python function: draw_item"}, "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-d6b4ff588dfa947f", "name": "Possibly dead Python function: filter_items", "shortDescription": {"text": "Possibly dead Python function: filter_items"}, "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-4fd5bc38fe603441", "name": "Possibly dead Python function: draw_header", "shortDescription": {"text": "Possibly dead Python function: draw_header"}, "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-1b170010d0534669", "name": "Possibly dead Python function: clear_catalog", "shortDescription": {"text": "Possibly dead Python function: clear_catalog"}, "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-195b0feed372dc3d", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-6cf736efc5f8d579", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-f662678a0e49bdd0", "name": "Possibly dead Python function: menu_func_import", "shortDescription": {"text": "Possibly dead Python function: menu_func_import"}, "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-5e69b59480f29e02", "name": "Possibly dead Python function: invoke", "shortDescription": {"text": "Possibly dead Python function: invoke"}, "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-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-c6a4c6973d51fe1e", "name": "Very large file: vfx_visualizer.py (1373 lines)", "shortDescription": {"text": "Very large file: vfx_visualizer.py (1373 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-bb2adf6d0b33b03d", "name": "Very large file: project_checker.py (2710 lines)", "shortDescription": {"text": "Very large file: project_checker.py (2710 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-7c429b6200671d5e", "name": "Very large file: skn_skl_import.py (1766 lines)", "shortDescription": {"text": "Very large file: skn_skl_import.py (1766 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-27188a3d8ceb0af0", "name": "Very large file: wad_tool.py (1726 lines)", "shortDescription": {"text": "Very large file: wad_tool.py (1726 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-b1010da408f85fb5", "name": "Very large file: project_manager.py (5986 lines)", "shortDescription": {"text": "Very large file: project_manager.py (5986 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-e5bbd4dcae803d08", "name": "Very large file: export_mapgeo.py (1824 lines)", "shortDescription": {"text": "Very large file: export_mapgeo.py (1824 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-73e9fc2022b07c8e", "name": "Very large file: material_editor_ui.py (5722 lines)", "shortDescription": {"text": "Very large file: material_editor_ui.py (5722 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-6c0707d3a7cf00e0", "name": "Very large file: material_loader.py (3417 lines)", "shortDescription": {"text": "Very large file: material_loader.py (3417 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-98228a91edb32a3b", "name": "Very large file: character_bin_updater.py (1359 lines)", "shortDescription": {"text": "Very large file: character_bin_updater.py (1359 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-77167f1ead22ca7e", "name": "Very large file: map_auto_updater.py (1532 lines)", "shortDescription": {"text": "Very large file: map_auto_updater.py (1532 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-84f270cfa996b914", "name": "Very large file: league_material_enums.py (1397 lines)", "shortDescription": {"text": "Very large file: league_material_enums.py (1397 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-4928a727789381b3", "name": "Very large file: import_mapgeo.py (2796 lines)", "shortDescription": {"text": "Very large file: import_mapgeo.py (2796 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-d41c2b1d87a09037", "name": "Very large file: map_porter.py (2187 lines)", "shortDescription": {"text": "Very large file: map_porter.py (2187 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-2685bbfa47f24cef", "name": "Very large file: prey_format.py (3456 lines)", "shortDescription": {"text": "Very large file: prey_format.py (3456 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-abed7289ffbc4670", "name": "Very large file: ui_panel.py (5229 lines)", "shortDescription": {"text": "Very large file: ui_panel.py (5229 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 51 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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 618 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-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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5715688b05b0d98", "name": "Commented-code block (6 lines) in vfx_visualizer.py:569", "shortDescription": {"text": "Commented-code block (6 lines) in vfx_visualizer.py:569"}, "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-4138196bd0858499", "name": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1012", "shortDescription": {"text": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1012"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `c.objects.unlink` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0b1621c9456c2b5", "name": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1035", "shortDescription": {"text": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1035"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `c.objects.link` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58ae741de88157db", "name": "Commented-code block (5 lines) in project_checker.py:1186", "shortDescription": {"text": "Commented-code block (5 lines) in project_checker.py:1186"}, "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-f7ac7df891320475", "name": "Legacy-named symbol `is_legacy` in skn_skl_import.py:453", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in skn_skl_import.py:453"}, "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-bf7d3b1dfd9ae13a", "name": "Network/subprocess call without timeout or try/except \u2014 release_addon.py:37", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 release_addon.py:37"}, "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-0fed9252d47bd107", "name": "Legacy-named symbol `_parse_lighting_v2` in project_manager.py:1531", "shortDescription": {"text": "Legacy-named symbol `_parse_lighting_v2` in project_manager.py:1531"}, "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-9539ef33ada6578e", "name": "Commented-code block (5 lines) in project_manager.py:720", "shortDescription": {"text": "Commented-code block (5 lines) in project_manager.py:720"}, "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-ba2cfbad9fd5ae02", "name": "Network/subprocess call without timeout or try/except \u2014 project_manager.py:4496", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 project_manager.py:4496"}, "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-0038acd2002f881f", "name": "Commented-code block (5 lines) in export_mapgeo.py:1471", "shortDescription": {"text": "Commented-code block (5 lines) in export_mapgeo.py:1471"}, "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-aaa7dbd423c7ccc0", "name": "Legacy-named symbol `ok_copy` in material_editor_ui.py:3293", "shortDescription": {"text": "Legacy-named symbol `ok_copy` in material_editor_ui.py:3293"}, "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-3ac19cdfa55374c3", "name": "Commented-code block (5 lines) in material_editor_ui.py:849", "shortDescription": {"text": "Commented-code block (5 lines) in material_editor_ui.py:849"}, "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-06920151a503cfd2", "name": "Legacy-named symbol `map_patcher_diff_v1` in map_patcher.py:24", "shortDescription": {"text": "Legacy-named symbol `map_patcher_diff_v1` in map_patcher.py:24"}, "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-c06d03cfe4383a84", "name": "Commented-code block (7 lines) in material_loader.py:1455", "shortDescription": {"text": "Commented-code block (7 lines) in material_loader.py:1455"}, "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-14879e29a826e28b", "name": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:795", "shortDescription": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:795"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `f.name.lower` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16b901c013847b6a", "name": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:810", "shortDescription": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:810"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `f.name.lower` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2db57406c8bf918f", "name": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:1020", "shortDescription": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:1020"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `f.name.lower` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56ac0fcdf0c6ceac", "name": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 light_management.py:185", "shortDescription": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 light_management.py:185"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `obj.data.copy` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bad79c804785891a", "name": "Legacy-named symbol `MAPUPD_OT_recover_backup` in map_auto_updater.py:1032", "shortDescription": {"text": "Legacy-named symbol `MAPUPD_OT_recover_backup` in map_auto_updater.py:1032"}, "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-bd6839df23e1d4a8", "name": "Network/subprocess call without timeout or try/except \u2014 map_auto_updater.py:1229", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 map_auto_updater.py:1229"}, "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-efe5dbb0f4da9123", "name": "Commented-code block (7 lines) in import_mapgeo.py:459", "shortDescription": {"text": "Commented-code block (7 lines) in import_mapgeo.py:459"}, "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-95926b5f2d41e8b8", "name": "Commented-code block (5 lines) in map_porter.py:700", "shortDescription": {"text": "Commented-code block (5 lines) in map_porter.py:700"}, "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-e22dd56bb8d8c7af", "name": "Legacy-named symbol `materials_old` in prey_format.py:1375", "shortDescription": {"text": "Legacy-named symbol `materials_old` in prey_format.py:1375"}, "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-0018eb425706339f", "name": "Legacy-named symbol `_lut_backup` in lut_recolor.py:13", "shortDescription": {"text": "Legacy-named symbol `_lut_backup` in lut_recolor.py:13"}, "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-1c09c525b6d7d9a8", "name": "Commented-code block (5 lines) in lut_recolor.py:434", "shortDescription": {"text": "Commented-code block (5 lines) in lut_recolor.py:434"}, "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-21208647c1a6184a", "name": "Legacy-named symbol `_read_material_old` in legacy_nvr_import.py:114", "shortDescription": {"text": "Legacy-named symbol `_read_material_old` in legacy_nvr_import.py:114"}, "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-60ba15022ceaa037", "name": "Commented-code block (5 lines) in dx11_shader_parser.py:706", "shortDescription": {"text": "Commented-code block (5 lines) in dx11_shader_parser.py:706"}, "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-f77467be2a2a0cab", "name": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:499", "shortDescription": {"text": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:499"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `coll.name.endswith` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d145fcd6274adeda", "name": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:588", "shortDescription": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:588"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `obj.data.materials` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-453b330906ac2ba8", "name": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:1777", "shortDescription": {"text": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:1777"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `coll.name.endswith` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee1e4a1ab3d6546b", "name": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:2475", "shortDescription": {"text": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:2475"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `col.name.endswith` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8992fd21ca5c29c0", "name": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:2511", "shortDescription": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:2511"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `obj.name.lower` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7f6f6bbeb4ef046", "name": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3155", "shortDescription": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3155"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `obj.location.copy` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1e88b4f2474b9cb", "name": "Likely N+1 query: `for collection in \u2026` triggers a query per row \u2014 ui_panel.py:3160", "shortDescription": {"text": "Likely N+1 query: `for collection in \u2026` triggers a query per row \u2014 ui_panel.py:3160"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `collection.objects.link` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-906386c25d0f68fb", "name": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3799", "shortDescription": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3799"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `obj.data.materials` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa17391f769c0dde", "name": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:3804", "shortDescription": {"text": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:3804"}, "fullDescription": {"text": "The loop iterates a Django queryset and accesses `col.objects.unlink` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries instead of N."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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:\ntroybin_parser.py:read_f32, cfgbin_reader.py:read_f32\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:\nvfx_visualizer.py:execute, vfx_visualizer.py:execute, vfx_visualizer.py:execute\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-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nproject_checker.py:execute, project_checker.py:execute, project_checker.py:execute, project_checker.py:execute\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npropertybin_editor_ui.py:draw_item, propertybin_editor_ui.py:draw_item, propertybin_editor_ui.py:draw, propertybin_editor_ui.py:draw\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-fe1d9311d6aee734", "name": "Near-duplicate function bodies in 12 places", "shortDescription": {"text": "Near-duplicate function bodies in 12 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npropertybin_editor_ui.py:execute, propertybin_editor_ui.py:execute, propertybin_editor_ui.py:execute, propertybin_editor_ui.py:execute\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-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmaterials_bin_manager.py:draw_item, materials_bin_manager.py:draw_item, materials_bin_manager.py:draw, materials_bin_manager.py:draw\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-f341860ab6a90be6", "name": "Near-duplicate function bodies in 17 places", "shortDescription": {"text": "Near-duplicate function bodies in 17 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmaterials_bin_manager.py:execute, materials_bin_manager.py:execute, materials_bin_manager.py:execute, materials_bin_manager.py:execute\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}}]}}, "automationDetails": {"id": "repobility/29969"}, "properties": {"repository": "TheKillerey/MapgeoAddon", "repoUrl": "https://github.com/TheKillerey/MapgeoAddon", "branch": "main"}, "results": [{"ruleId": "scanner-db8aaa2955aeacd7", "level": "note", "message": {"text": "Possibly dead Python function: section_field_hash"}, "properties": {"repobilityId": "eef2101c14fd12b4", "scanner": "scanner-primary", "fingerprint": "db8aaa2955aeacd7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "troybin_parser.py:353"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9d84ef57adfd51c", "level": "note", "message": {"text": "Possibly dead Python function: calculate_bounding_sphere"}, "properties": {"repobilityId": "5e458c439c4183c4", "scanner": "scanner-primary", "fingerprint": "f9d84ef57adfd51c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:10"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61034a134542dbb4", "level": "note", "message": {"text": "Possibly dead Python function: calculate_bounding_box"}, "properties": {"repobilityId": "0d6b682988ee38b4", "scanner": "scanner-primary", "fingerprint": "61034a134542dbb4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e00af906a7f0bd1", "level": "note", "message": {"text": "Possibly dead Python function: matrix_to_list"}, "properties": {"repobilityId": "a7a9d564cd18928d", "scanner": "scanner-primary", "fingerprint": "8e00af906a7f0bd1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d91832b91f4670e", "level": "note", "message": {"text": "Possibly dead Python function: list_to_matrix"}, "properties": {"repobilityId": "868d590b167454b1", "scanner": "scanner-primary", "fingerprint": "7d91832b91f4670e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:68"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ea8458e0915644e", "level": "note", "message": {"text": "Possibly dead Python function: select_objects"}, "properties": {"repobilityId": "ec99ae182db6492f", "scanner": "scanner-primary", "fingerprint": "1ea8458e0915644e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:96"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b79647dfb3aea70a", "level": "note", "message": {"text": "Possibly dead Python function: validate_mesh_for_export"}, "properties": {"repobilityId": "4ec7f4adcd1be96c", "scanner": "scanner-primary", "fingerprint": "b79647dfb3aea70a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:122"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa199c2f02030435", "level": "note", "message": {"text": "Possibly dead Python function: create_debug_empty"}, "properties": {"repobilityId": "3fb622870e0155cc", "scanner": "scanner-primary", "fingerprint": "aa199c2f02030435", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9fbf527e6b7f0175", "level": "note", "message": {"text": "Possibly dead Python function: print_mapgeo_info"}, "properties": {"repobilityId": "7e4495c4f5c67839", "scanner": "scanner-primary", "fingerprint": "9fbf527e6b7f0175", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c15ae0330fd94111", "level": "note", "message": {"text": "Possibly dead Python function: format_file_size"}, "properties": {"repobilityId": "0f2bd1cc6030b210", "scanner": "scanner-primary", "fingerprint": "c15ae0330fd94111", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:183"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a925f9e304a9dc2d", "level": "note", "message": {"text": "Possibly dead Python function: clamp"}, "properties": {"repobilityId": "ba9bb4adb4cce99a", "scanner": "scanner-primary", "fingerprint": "a925f9e304a9dc2d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:192"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2cc8f8e56a32d698", "level": "note", "message": {"text": "Possibly dead Python function: lerp"}, "properties": {"repobilityId": "871ab5a91debc9a2", "scanner": "scanner-primary", "fingerprint": "2cc8f8e56a32d698", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:197"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c6f3495deeb6fb77", "level": "note", "message": {"text": "Possibly dead Python function: vector_to_tuple"}, "properties": {"repobilityId": "60e7bc4529a5e039", "scanner": "scanner-primary", "fingerprint": "c6f3495deeb6fb77", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:202"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91ddcbc93106ee32", "level": "note", "message": {"text": "Possibly dead Python function: ensure_material"}, "properties": {"repobilityId": "5baaa97eda4b6ff0", "scanner": "scanner-primary", "fingerprint": "91ddcbc93106ee32", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24c798f1e2288d3e", "level": "note", "message": {"text": "Possibly dead Python function: finish"}, "properties": {"repobilityId": "039d9571e747932e", "scanner": "scanner-primary", "fingerprint": "24c798f1e2288d3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:232"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ac341a73ac8e7ae", "level": "note", "message": {"text": "Possibly dead Python function: create_material_collection"}, "properties": {"repobilityId": "62a7c7a65e3ed6c2", "scanner": "scanner-primary", "fingerprint": "8ac341a73ac8e7ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "import_materials_blender.py:325"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27f5174c1bd80530", "level": "note", "message": {"text": "Possibly dead Python function: list_material_properties"}, "properties": {"repobilityId": "c532746eb3474204", "scanner": "scanner-primary", "fingerprint": "27f5174c1bd80530", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "import_materials_blender.py:339"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-45cacceaa76258f6", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "45cacceaa76258f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "import_materials_blender.py:440"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c081a661acb62569", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "c081a661acb62569", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vfx_visualizer.py:1216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-861d943167c88b99", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "861d943167c88b99", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "project_checker.py:2398"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2283b1aa458c8abf", "level": "note", "message": {"text": "Possibly dead Python function: draw_item"}, "properties": {"repobilityId": "853ca7e5379133dd", "scanner": "scanner-primary", "fingerprint": "2283b1aa458c8abf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "project_checker.py:2495"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6b4ff588dfa947f", "level": "note", "message": {"text": "Possibly dead Python function: filter_items"}, "properties": {"repobilityId": "837209c428c73530", "scanner": "scanner-primary", "fingerprint": "d6b4ff588dfa947f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "project_checker.py:2517"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4fd5bc38fe603441", "level": "note", "message": {"text": "Possibly dead Python function: draw_header"}, "properties": {"repobilityId": "12d994c40f89e225", "scanner": "scanner-primary", "fingerprint": "4fd5bc38fe603441", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "project_checker.py:2550"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b170010d0534669", "level": "note", "message": {"text": "Possibly dead Python function: clear_catalog"}, "properties": {"repobilityId": "c85c658f1c5e1cbf", "scanner": "scanner-primary", "fingerprint": "1b170010d0534669", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "shaders_bin_reader.py:311"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-195b0feed372dc3d", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "195b0feed372dc3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "export_materials_blender.py:490"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6cf736efc5f8d579", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "6cf736efc5f8d579", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skn_skl_import.py:1545"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f662678a0e49bdd0", "level": "note", "message": {"text": "Possibly dead Python function: menu_func_import"}, "properties": {"repobilityId": "a5dc5c3c5c70f145", "scanner": "scanner-primary", "fingerprint": "f662678a0e49bdd0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skn_skl_import.py:1728"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e69b59480f29e02", "level": "note", "message": {"text": "Possibly dead Python function: invoke"}, "properties": {"repobilityId": "a0f6754c12b3a2c8", "scanner": "scanner-primary", "fingerprint": "5e69b59480f29e02", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mapgeo_debug.py:197"}, "region": {"startLine": 1}}}]}, {"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-c6a4c6973d51fe1e", "level": "note", "message": {"text": "Very large file: vfx_visualizer.py (1373 lines)"}, "properties": {"repobilityId": "7d98fc68898fd38b", "scanner": "scanner-primary", "fingerprint": "c6a4c6973d51fe1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb2adf6d0b33b03d", "level": "note", "message": {"text": "Very large file: project_checker.py (2710 lines)"}, "properties": {"repobilityId": "b01eda2ab10747de", "scanner": "scanner-primary", "fingerprint": "bb2adf6d0b33b03d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c429b6200671d5e", "level": "note", "message": {"text": "Very large file: skn_skl_import.py (1766 lines)"}, "properties": {"repobilityId": "9857aa103c493867", "scanner": "scanner-primary", "fingerprint": "7c429b6200671d5e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27188a3d8ceb0af0", "level": "note", "message": {"text": "Very large file: wad_tool.py (1726 lines)"}, "properties": {"repobilityId": "77b71f0e13bf0c81", "scanner": "scanner-primary", "fingerprint": "27188a3d8ceb0af0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1010da408f85fb5", "level": "note", "message": {"text": "Very large file: project_manager.py (5986 lines)"}, "properties": {"repobilityId": "a83b88c18395a2ec", "scanner": "scanner-primary", "fingerprint": "b1010da408f85fb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e5bbd4dcae803d08", "level": "note", "message": {"text": "Very large file: export_mapgeo.py (1824 lines)"}, "properties": {"repobilityId": "6adf31e6f3967305", "scanner": "scanner-primary", "fingerprint": "e5bbd4dcae803d08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-73e9fc2022b07c8e", "level": "note", "message": {"text": "Very large file: material_editor_ui.py (5722 lines)"}, "properties": {"repobilityId": "13eafc9e2d539e34", "scanner": "scanner-primary", "fingerprint": "73e9fc2022b07c8e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c0707d3a7cf00e0", "level": "note", "message": {"text": "Very large file: material_loader.py (3417 lines)"}, "properties": {"repobilityId": "68e8e572c70baa77", "scanner": "scanner-primary", "fingerprint": "6c0707d3a7cf00e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-98228a91edb32a3b", "level": "note", "message": {"text": "Very large file: character_bin_updater.py (1359 lines)"}, "properties": {"repobilityId": "dc92ceada489fb36", "scanner": "scanner-primary", "fingerprint": "98228a91edb32a3b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77167f1ead22ca7e", "level": "note", "message": {"text": "Very large file: map_auto_updater.py (1532 lines)"}, "properties": {"repobilityId": "1859ac69a116586a", "scanner": "scanner-primary", "fingerprint": "77167f1ead22ca7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-84f270cfa996b914", "level": "note", "message": {"text": "Very large file: league_material_enums.py (1397 lines)"}, "properties": {"repobilityId": "ca8e25cb70a1b9a4", "scanner": "scanner-primary", "fingerprint": "84f270cfa996b914", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4928a727789381b3", "level": "note", "message": {"text": "Very large file: import_mapgeo.py (2796 lines)"}, "properties": {"repobilityId": "0c1cd98f9e4cffaa", "scanner": "scanner-primary", "fingerprint": "4928a727789381b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d41c2b1d87a09037", "level": "note", "message": {"text": "Very large file: map_porter.py (2187 lines)"}, "properties": {"repobilityId": "1a625abf104bdfc9", "scanner": "scanner-primary", "fingerprint": "d41c2b1d87a09037", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2685bbfa47f24cef", "level": "note", "message": {"text": "Very large file: prey_format.py (3456 lines)"}, "properties": {"repobilityId": "61d24f5180684779", "scanner": "scanner-primary", "fingerprint": "2685bbfa47f24cef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-abed7289ffbc4670", "level": "note", "message": {"text": "Very large file: ui_panel.py (5229 lines)"}, "properties": {"repobilityId": "8e523160c937bc25", "scanner": "scanner-primary", "fingerprint": "abed7289ffbc4670", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0db8f48d89135914", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "98e52f5df9fbe776", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "f6ba3a08a92ca01d", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-f5715688b05b0d98", "level": "none", "message": {"text": "Commented-code block (6 lines) in vfx_visualizer.py:569"}, "properties": {"repobilityId": "3ed4c90c38e053c1", "scanner": "scanner-primary", "fingerprint": "f5715688b05b0d98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4138196bd0858499", "level": "warning", "message": {"text": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1012"}, "properties": {"repobilityId": "46621b32181de3fd", "scanner": "scanner-primary", "fingerprint": "4138196bd0858499", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vfx_visualizer.py"}, "region": {"startLine": 1012}}}]}, {"ruleId": "scanner-e0b1621c9456c2b5", "level": "warning", "message": {"text": "Likely N+1 query: `for c in \u2026` triggers a query per row \u2014 vfx_visualizer.py:1035"}, "properties": {"repobilityId": "c9b96a6d3d6e9e5d", "scanner": "scanner-primary", "fingerprint": "e0b1621c9456c2b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vfx_visualizer.py"}, "region": {"startLine": 1035}}}]}, {"ruleId": "scanner-58ae741de88157db", "level": "none", "message": {"text": "Commented-code block (5 lines) in project_checker.py:1186"}, "properties": {"repobilityId": "8d40c90da6d99084", "scanner": "scanner-primary", "fingerprint": "58ae741de88157db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7ac7df891320475", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in skn_skl_import.py:453"}, "properties": {"repobilityId": "ca557caa867b29f8", "scanner": "scanner-primary", "fingerprint": "f7ac7df891320475", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf7d3b1dfd9ae13a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 release_addon.py:37"}, "properties": {"repobilityId": "2716d17c83c262f2", "scanner": "scanner-primary", "fingerprint": "bf7d3b1dfd9ae13a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0fed9252d47bd107", "level": "note", "message": {"text": "Legacy-named symbol `_parse_lighting_v2` in project_manager.py:1531"}, "properties": {"repobilityId": "34b01c65a1821464", "scanner": "scanner-primary", "fingerprint": "0fed9252d47bd107", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9539ef33ada6578e", "level": "none", "message": {"text": "Commented-code block (5 lines) in project_manager.py:720"}, "properties": {"repobilityId": "efa2f8c107a0413d", "scanner": "scanner-primary", "fingerprint": "9539ef33ada6578e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba2cfbad9fd5ae02", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 project_manager.py:4496"}, "properties": {"repobilityId": "99561907f2817897", "scanner": "scanner-primary", "fingerprint": "ba2cfbad9fd5ae02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0038acd2002f881f", "level": "none", "message": {"text": "Commented-code block (5 lines) in export_mapgeo.py:1471"}, "properties": {"repobilityId": "a1db7d4cf329553d", "scanner": "scanner-primary", "fingerprint": "0038acd2002f881f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaa7dbd423c7ccc0", "level": "note", "message": {"text": "Legacy-named symbol `ok_copy` in material_editor_ui.py:3293"}, "properties": {"repobilityId": "b927e13498c6f4eb", "scanner": "scanner-primary", "fingerprint": "aaa7dbd423c7ccc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3ac19cdfa55374c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in material_editor_ui.py:849"}, "properties": {"repobilityId": "87b3074ed1fc7357", "scanner": "scanner-primary", "fingerprint": "3ac19cdfa55374c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06920151a503cfd2", "level": "note", "message": {"text": "Legacy-named symbol `map_patcher_diff_v1` in map_patcher.py:24"}, "properties": {"repobilityId": "3a795ffafe6ba9ed", "scanner": "scanner-primary", "fingerprint": "06920151a503cfd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c06d03cfe4383a84", "level": "none", "message": {"text": "Commented-code block (7 lines) in material_loader.py:1455"}, "properties": {"repobilityId": "08f157a9dea9a043", "scanner": "scanner-primary", "fingerprint": "c06d03cfe4383a84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14879e29a826e28b", "level": "warning", "message": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:795"}, "properties": {"repobilityId": "7bf3897a082cc4dd", "scanner": "scanner-primary", "fingerprint": "14879e29a826e28b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy_map_ui.py"}, "region": {"startLine": 795}}}]}, {"ruleId": "scanner-16b901c013847b6a", "level": "warning", "message": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:810"}, "properties": {"repobilityId": "621af6bd44ae756c", "scanner": "scanner-primary", "fingerprint": "16b901c013847b6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy_map_ui.py"}, "region": {"startLine": 810}}}]}, {"ruleId": "scanner-2db57406c8bf918f", "level": "warning", "message": {"text": "Likely N+1 query: `for f in \u2026` triggers a query per row \u2014 legacy_map_ui.py:1020"}, "properties": {"repobilityId": "f366a51ee97b9dda", "scanner": "scanner-primary", "fingerprint": "2db57406c8bf918f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy_map_ui.py"}, "region": {"startLine": 1020}}}]}, {"ruleId": "scanner-56ac0fcdf0c6ceac", "level": "warning", "message": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 light_management.py:185"}, "properties": {"repobilityId": "4d3c1ccf7999d9a1", "scanner": "scanner-primary", "fingerprint": "56ac0fcdf0c6ceac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "light_management.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-bad79c804785891a", "level": "note", "message": {"text": "Legacy-named symbol `MAPUPD_OT_recover_backup` in map_auto_updater.py:1032"}, "properties": {"repobilityId": "8ee23f70646e9f95", "scanner": "scanner-primary", "fingerprint": "bad79c804785891a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bd6839df23e1d4a8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 map_auto_updater.py:1229"}, "properties": {"repobilityId": "a05dfd42233b11a5", "scanner": "scanner-primary", "fingerprint": "bd6839df23e1d4a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-efe5dbb0f4da9123", "level": "none", "message": {"text": "Commented-code block (7 lines) in import_mapgeo.py:459"}, "properties": {"repobilityId": "3a5c6aae52930b35", "scanner": "scanner-primary", "fingerprint": "efe5dbb0f4da9123", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95926b5f2d41e8b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in map_porter.py:700"}, "properties": {"repobilityId": "bcbf4bfdcceb3713", "scanner": "scanner-primary", "fingerprint": "95926b5f2d41e8b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e22dd56bb8d8c7af", "level": "note", "message": {"text": "Legacy-named symbol `materials_old` in prey_format.py:1375"}, "properties": {"repobilityId": "5445ff102437321b", "scanner": "scanner-primary", "fingerprint": "e22dd56bb8d8c7af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0018eb425706339f", "level": "note", "message": {"text": "Legacy-named symbol `_lut_backup` in lut_recolor.py:13"}, "properties": {"repobilityId": "a414fd1622b4e0cc", "scanner": "scanner-primary", "fingerprint": "0018eb425706339f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c09c525b6d7d9a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in lut_recolor.py:434"}, "properties": {"repobilityId": "e62c715a9d6ee534", "scanner": "scanner-primary", "fingerprint": "1c09c525b6d7d9a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21208647c1a6184a", "level": "note", "message": {"text": "Legacy-named symbol `_read_material_old` in legacy_nvr_import.py:114"}, "properties": {"repobilityId": "44b2a617e26900ba", "scanner": "scanner-primary", "fingerprint": "21208647c1a6184a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-60ba15022ceaa037", "level": "none", "message": {"text": "Commented-code block (5 lines) in dx11_shader_parser.py:706"}, "properties": {"repobilityId": "841b15a7eff3e492", "scanner": "scanner-primary", "fingerprint": "60ba15022ceaa037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f77467be2a2a0cab", "level": "warning", "message": {"text": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:499"}, "properties": {"repobilityId": "5fdaf74a336bd3fd", "scanner": "scanner-primary", "fingerprint": "f77467be2a2a0cab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 499}}}]}, {"ruleId": "scanner-d145fcd6274adeda", "level": "warning", "message": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:588"}, "properties": {"repobilityId": "d34d775a98a404da", "scanner": "scanner-primary", "fingerprint": "d145fcd6274adeda", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 588}}}]}, {"ruleId": "scanner-453b330906ac2ba8", "level": "warning", "message": {"text": "Likely N+1 query: `for coll in \u2026` triggers a query per row \u2014 ui_panel.py:1777"}, "properties": {"repobilityId": "8086c28bfc65257e", "scanner": "scanner-primary", "fingerprint": "453b330906ac2ba8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 1777}}}]}, {"ruleId": "scanner-ee1e4a1ab3d6546b", "level": "warning", "message": {"text": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:2475"}, "properties": {"repobilityId": "15dc9f767de9288c", "scanner": "scanner-primary", "fingerprint": "ee1e4a1ab3d6546b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 2475}}}]}, {"ruleId": "scanner-8992fd21ca5c29c0", "level": "warning", "message": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:2511"}, "properties": {"repobilityId": "1f2924f05f47a25a", "scanner": "scanner-primary", "fingerprint": "8992fd21ca5c29c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 2511}}}]}, {"ruleId": "scanner-e7f6f6bbeb4ef046", "level": "warning", "message": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3155"}, "properties": {"repobilityId": "024b84c42952b6f8", "scanner": "scanner-primary", "fingerprint": "e7f6f6bbeb4ef046", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 3155}}}]}, {"ruleId": "scanner-f1e88b4f2474b9cb", "level": "warning", "message": {"text": "Likely N+1 query: `for collection in \u2026` triggers a query per row \u2014 ui_panel.py:3160"}, "properties": {"repobilityId": "c855e5901667ab7e", "scanner": "scanner-primary", "fingerprint": "f1e88b4f2474b9cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 3160}}}]}, {"ruleId": "scanner-906386c25d0f68fb", "level": "warning", "message": {"text": "Likely N+1 query: `for obj in \u2026` triggers a query per row \u2014 ui_panel.py:3799"}, "properties": {"repobilityId": "a78bd102395b12ed", "scanner": "scanner-primary", "fingerprint": "906386c25d0f68fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 3799}}}]}, {"ruleId": "scanner-fa17391f769c0dde", "level": "warning", "message": {"text": "Likely N+1 query: `for col in \u2026` triggers a query per row \u2014 ui_panel.py:3804"}, "properties": {"repobilityId": "a822a0b2875c3ab6", "scanner": "scanner-primary", "fingerprint": "fa17391f769c0dde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "n-plus-one", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui_panel.py"}, "region": {"startLine": 3804}}}]}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "caf86b5cd235cf7c", "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": "5ea33ae034f714f6", "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": "ce4824dee5ff332b", "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": "94cd95db6c5e913c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "22906e0ddba729fc", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "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": "6508814ffe2db1ae", "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": "30a72e9cd52cd8e6", "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": "d4a8d44d623ffe81", "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": "382c3aca7cb66242", "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": "39fb5c50a3b8b861", "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": "ca751c64c4a61b3b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "faa17db6ec0e542f", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-fe1d9311d6aee734", "level": "note", "message": {"text": "Near-duplicate function bodies in 12 places"}, "properties": {"repobilityId": "2006a96bc70d89ee", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "298b3b9d181f34f9", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "d4c83e505c3e20e9", "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": "15454336d844093c", "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": "580114b148ca5ad1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "867879f4199d2710", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "025963966c9e3d70", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-f341860ab6a90be6", "level": "note", "message": {"text": "Near-duplicate function bodies in 17 places"}, "properties": {"repobilityId": "2d7e80bab1a4efc0", "scanner": "scanner-primary", "fingerprint": "f341860ab6a90be6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}