{"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-f3f94890b600aad5", "name": "Possibly dead Python function: show_module_status", "shortDescription": {"text": "Possibly dead Python function: show_module_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8255e3ca8be86fdf", "name": "Possibly dead Python function: run_rain_intensity_analysis", "shortDescription": {"text": "Possibly dead Python function: run_rain_intensity_analysis"}, "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-2386a3184e37f2c5", "name": "Possibly dead Python function: run_accident_key_events_summary", "shortDescription": {"text": "Possibly dead Python function: run_accident_key_events_summary"}, "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-fab38c6b5b284f49", "name": "Possibly dead Python function: run_accident_driver_severity_scores", "shortDescription": {"text": "Possibly dead Python function: run_accident_driver_severity_scores"}, "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-f0e63d0dbc3fa44c", "name": "Possibly dead Python function: run_accident_team_risk_scores", "shortDescription": {"text": "Possibly dead Python function: run_accident_team_risk_scores"}, "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-949158e95ff3a171", "name": "Possibly dead Python function: run_accident_all_incidents_summary", "shortDescription": {"text": "Possibly dead Python function: run_accident_all_incidents_summary"}, "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-d23117485605f231", "name": "Possibly dead Python function: run_telemetry_complete_lap_analysis", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_complete_lap_analysis"}, "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-ee02cb6f1098de10", "name": "Possibly dead Python function: run_telemetry_detailed_tire_strategy", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_detailed_tire_strategy"}, "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-a68b5d67762f16e5", "name": "Possibly dead Python function: run_telemetry_tire_performance_analysis", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_tire_performance_analysis"}, "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-9f7670b55f3b3407", "name": "Possibly dead Python function: run_telemetry_pitstop_records", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_pitstop_records"}, "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-ab7350792dfa37fb", "name": "Possibly dead Python function: run_telemetry_special_events", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_special_events"}, "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-1e9ae4dcbf9c50b5", "name": "Possibly dead Python function: run_telemetry_fastest_lap", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_fastest_lap"}, "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-3dd5fe01f7178b14", "name": "Possibly dead Python function: run_telemetry_specific_lap", "shortDescription": {"text": "Possibly dead Python function: run_telemetry_specific_lap"}, "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-f528b5f79287b2a1", "name": "Possibly dead Python function: is_sc_active", "shortDescription": {"text": "Possibly dead Python function: is_sc_active"}, "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-5271fdaa6386bee8", "name": "Possibly dead Python function: invalidate", "shortDescription": {"text": "Possibly dead Python function: invalidate"}, "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-ec740fc46b6cedeb", "name": "Possibly dead Python function: purge_expired", "shortDescription": {"text": "Possibly dead Python function: purge_expired"}, "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-a62817f99e8b100b", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "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-af0c6c3558cfda63", "name": "Possibly dead Python function: run_annual_dnf_statistics", "shortDescription": {"text": "Possibly dead Python function: run_annual_dnf_statistics"}, "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-94e914610562ab9d", "name": "Possibly dead Python function: display_json_preview", "shortDescription": {"text": "Possibly dead Python function: display_json_preview"}, "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-731ec9304f1685ac", "name": "Possibly dead Python function: run_special_incident_reports_json", "shortDescription": {"text": "Possibly dead Python function: run_special_incident_reports_json"}, "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-09c23f4e399ca35f", "name": "Possibly dead Python function: map_track_to_cluster", "shortDescription": {"text": "Possibly dead Python function: map_track_to_cluster"}, "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-8dcedd8428f232a4", "name": "Possibly dead Python function: evaluate_by_category", "shortDescription": {"text": "Possibly dead Python function: evaluate_by_category"}, "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-5ac30933ea91b196", "name": "Possibly dead Python function: predict_all_drivers_pit_windows", "shortDescription": {"text": "Possibly dead Python function: predict_all_drivers_pit_windows"}, "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-d0ce4b1dd9d97182", "name": "File has no detected symbols: scripts/dev/temp_check_gas_alo.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_check_gas_alo.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10b7b328396f38b0", "name": "File has no detected symbols: scripts/dev/temp_sampling_rate.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_sampling_rate.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03916faf2b431206", "name": "File has no detected symbols: scripts/dev/temp_check_raw_stream.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_check_raw_stream.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84b0e3057bf6acf0", "name": "File has no detected symbols: scripts/dev/temp_check_api_data.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_check_api_data.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf0c92cf40d4f431", "name": "File has no detected symbols: scripts/dev/temp_check_team_radio.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_check_team_radio.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56a7c5575d60c6ee", "name": "File has no detected symbols: scripts/dev/temp_check_timing.py", "shortDescription": {"text": "File has no detected symbols: scripts/dev/temp_check_timing.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d53792928fcc306b", "name": "File has no detected symbols: modules/gui/race_analysis/temp/temp_analysis_universal.py", "shortDescription": {"text": "File has no detected symbols: modules/gui/race_analysis/temp/temp_analysis_universal.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f3c53d36e5f4485", "name": "Stray `console.log` in TS/JS \u2014 scripts/f1tv_console_extractor.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/f1tv_console_extractor.js:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "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-4b67862d58662a08", "name": "Insecure pattern 'debug_true' in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:976", "shortDescription": {"text": "Insecure pattern 'debug_true' in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:976"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2f846e2e2309584", "name": "Insecure pattern 'cors_wildcard' in scripts/f1tv_browser_login.py:187", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in scripts/f1tv_browser_login.py:187"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b9ec7c110d8cfbb", "name": "Insecure pattern 'subprocess_shell_true' in build_tools/build_exe_gui.py:737", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in build_tools/build_exe_gui.py:737"}, "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-dc040a2089e9026b", "name": "Insecure pattern 'exec_used' in modules/gui/diagnostics/objgraph_window.py:844", "shortDescription": {"text": "Insecure pattern 'exec_used' in modules/gui/diagnostics/objgraph_window.py:844"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d2642eab2601670", "name": "Very large file: f1t_gui_main.py (2802 lines)", "shortDescription": {"text": "Very large file: f1t_gui_main.py (2802 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-c69ed8ffe33d50f7", "name": "Very large file: f1_analysis_modular_main.py (2125 lines)", "shortDescription": {"text": "Very large file: f1_analysis_modular_main.py (2125 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-b5bd1d386becbeea", "name": "Very large file: CLI_modules/cli/analyzer/all_incidents_summary.py (1468 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/all_incidents_summary.py (1468 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-a37d7c79bec471f1", "name": "Very large file: CLI_modules/cli/analyzer/single_driver_all_corners_detailed_analysis.py (1256 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/single_driver_all_corners_detailed_analysis.py (1256 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-3157d5dd066699d4", "name": "Very large file: CLI_modules/cli/analyzer/driver_comparison_advanced.py (2312 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/driver_comparison_advanced.py (2312 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-18636342639ae0ef", "name": "Very large file: CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py (1534 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py (1534 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-a1f9ad8ca94da691", "name": "Very large file: CLI_modules/cli/analyzer/corner_detailed_analysis.py (1781 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/corner_detailed_analysis.py (1781 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-a29832a17bd7ee12", "name": "Very large file: CLI_modules/cli/analyzer/historical_flags_analysis.py (2175 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/historical_flags_analysis.py (2175 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-4fbf53cb0048f81d", "name": "Very large file: CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py (1451 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py (1451 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-268da89e840c4456", "name": "Very large file: CLI_modules/cli/analyzer/f1_analysis_modular_main.py (1935 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/f1_analysis_modular_main.py (1935 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-9eb0dede1c43dd6c", "name": "Very large file: CLI_modules/cli/analyzer/two_driver_telemetry_comparison_fixed.py (1333 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/two_driver_telemetry_comparison_fixed.py (1333 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-b4268f96da4e9d6c", "name": "Very large file: CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py (2810 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py (2810 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-a63ae0e10048dcd0", "name": "Very large file: CLI_modules/cli/analyzer/special_incident_reports.py (1521 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/analyzer/special_incident_reports.py (1521 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-255ace37515df900", "name": "Very large file: CLI_modules/cli/core/function_mapper.py (8208 lines)", "shortDescription": {"text": "Very large file: CLI_modules/cli/core/function_mapper.py (8208 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-a091f86782546eff", "name": "Very large file: windows/widgets/popout_subwindow.py (2077 lines)", "shortDescription": {"text": "Very large file: windows/widgets/popout_subwindow.py (2077 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-51ecefee15fa21c7", "name": "Very large file: windows/managers/telemetry_window_creator.py (1417 lines)", "shortDescription": {"text": "Very large file: windows/managers/telemetry_window_creator.py (1417 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-f2c8cec9d0781e52", "name": "Very large file: windows/managers/analysis_module_creator.py (2134 lines)", "shortDescription": {"text": "Very large file: windows/managers/analysis_module_creator.py (2134 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-5c9089f19395c33b", "name": "Very large file: windows/dialogs/window_settings_dialog.py (1630 lines)", "shortDescription": {"text": "Very large file: windows/dialogs/window_settings_dialog.py (1630 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-e51daaa27dbb7c23", "name": "Very large file: api/services/cache_service.py (1669 lines)", "shortDescription": {"text": "Very large file: api/services/cache_service.py (1669 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-0a2989d5cddfa0de", "name": "Very large file: api/services/simple_analysis_service.py (1322 lines)", "shortDescription": {"text": "Very large file: api/services/simple_analysis_service.py (1322 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-7f2f24062da54c2e", "name": "Very large file: strategy_simulator/gui/main_window-XM0152.py (2366 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/gui/main_window-XM0152.py (2366 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-51ec4c9afe7f9972", "name": "Very large file: strategy_simulator/gui/main_window.py (2773 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/gui/main_window.py (2773 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-709182c3618eb6ab", "name": "Very large file: strategy_simulator/gui/widgets/strategy_report_generator.py (1605 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/gui/widgets/strategy_report_generator.py (1605 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-e9b89a198f62319e", "name": "Very large file: strategy_simulator/gui/results_tabs/full_race_tab.py (1319 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/gui/results_tabs/full_race_tab.py (1319 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-8470c3896ae1e291", "name": "Very large file: strategy_simulator/gui/results_tabs/safety_car_tab.py (1328 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/gui/results_tabs/safety_car_tab.py (1328 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-36abc4a972f42269", "name": "Very large file: strategy_simulator/core/race_simulator.py (2253 lines)", "shortDescription": {"text": "Very large file: strategy_simulator/core/race_simulator.py (2253 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-3bf5749800a18157", "name": "Very large file: modules/gui/universal_chart_widget.py (2559 lines)", "shortDescription": {"text": "Very large file: modules/gui/universal_chart_widget.py (2559 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-b2bb7a3c26d43000", "name": "Very large file: modules/gui/telemetry_analysis_mdi.py (2041 lines)", "shortDescription": {"text": "Very large file: modules/gui/telemetry_analysis_mdi.py (2041 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-9f14c87d3689c8a0", "name": "Very large file: modules/gui/base/universal_chart_widget_base.py (1313 lines)", "shortDescription": {"text": "Very large file: modules/gui/base/universal_chart_widget_base.py (1313 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-f77a7f27b2bb48d9", "name": "Very large file: modules/gui/base/universal_analysis_mdi_base.py (1386 lines)", "shortDescription": {"text": "Very large file: modules/gui/base/universal_analysis_mdi_base.py (1386 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-49b1379c279e45fd", "name": "Very large file: modules/gui/race_analysis/accident/accident_analysis_mdi.py (2715 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/accident/accident_analysis_mdi.py (2715 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-ae4a3566efe38861", "name": "Very large file: modules/gui/race_analysis/accident/accident_analysis_complete.py (3940 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/accident/accident_analysis_complete.py (3940 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-4bc403a10515513b", "name": "Very large file: modules/gui/race_analysis/track_map/historical_track_map_mdi.py (1896 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/track_map/historical_track_map_mdi.py (1896 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-931ae52b21fed496", "name": "Very large file: modules/gui/race_analysis/pitstop/pitstop_analysis_mdi.py (2946 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/pitstop/pitstop_analysis_mdi.py (2946 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-6ba35a4303be3969", "name": "Very large file: modules/gui/race_analysis/track/track_analysis_module.py (1565 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/track/track_analysis_module.py (1565 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-77f6ca01339c2e51", "name": "Very large file: modules/gui/race_analysis/track/track_map_widget.py (2412 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/track/track_map_widget.py (2412 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-02bc9330ec5b35c7", "name": "Very large file: modules/gui/race_analysis/track/track_analysis_mdi.py (1414 lines)", "shortDescription": {"text": "Very large file: modules/gui/race_analysis/track/track_analysis_mdi.py (1414 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-713c093ef383734e", "name": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_chart_widget.py (2197 lines)", "shortDescription": {"text": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_chart_widget.py (2197 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-7377175cc9acdd9d", "name": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py (1684 lines)", "shortDescription": {"text": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py (1684 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-671f551024f33abc", "name": "Very large file: modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_analysis_mdi.py (1720 lines)", "shortDescription": {"text": "Very large file: modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_analysis_mdi.py (1720 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-61cc77368b41d604", "name": "Very large file: modules/gui/lap_analysis/telemetry_data_loader_base.py (1837 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/telemetry_data_loader_base.py (1837 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-9c0ea6d38abf24f9", "name": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_mdi.py (1992 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_mdi.py (1992 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-e7e63b05311580d6", "name": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_chart_widget.py (1696 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_chart_widget.py (1696 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-03d13df0052b2247", "name": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_mdi.py (2065 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_mdi.py (2065 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-6e7aa4ad712e2ed0", "name": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.py (1689 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.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-ec4ea6e975560ce9", "name": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_mdi.py (2029 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_mdi.py (2029 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-7c6fdb62e6013523", "name": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_chart_widget.py (1775 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_chart_widget.py (1775 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-e91df359bee78e6d", "name": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_mdi.py (2055 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_mdi.py (2055 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-8e88482df0ea8ea9", "name": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py (1834 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py (1834 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-a48bd3dd597d0d8d", "name": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_chart_widget.py (1791 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_chart_widget.py (1791 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-b630d7f981ca790f", "name": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_mdi.py (2004 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_mdi.py (2004 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-27a458e67fb0abfd", "name": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_chart_widget.py (1762 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_chart_widget.py (1762 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-b49fcf3a4ecd01d2", "name": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_mdi.py (2067 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_mdi.py (2067 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-8b251b6ab0ed5050", "name": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_mdi.py (2061 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_mdi.py (2061 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-882f69010c104cec", "name": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_chart_widget.py (1839 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_chart_widget.py (1839 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-3b52aae5a56cfc30", "name": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py (1741 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py (1741 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-4fc4f8a4ef628839", "name": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_mdi.py (1962 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_mdi.py (1962 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-7f7966683d04a2ba", "name": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_box_plot_analysis/throttle_box_plot_analysis_mdi.py", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_box_plot_analysis/throttle_box_plot_analysis_mdi.py (1735 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-26be24e2549e9618", "name": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_mdi.py (2076 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_mdi.py (2076 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-04bd924a0aca4f77", "name": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_chart_widget.py (1749 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_chart_widget.py (1749 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-5d222229ee485e07", "name": "Very large file: modules/gui/lap_analysis/lap_box_plot/lap_box_plot_analysis_mdi.py (1604 lines)", "shortDescription": {"text": "Very large file: modules/gui/lap_analysis/lap_box_plot/lap_box_plot_analysis_mdi.py (1604 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-47a17eebba8033f2", "name": "Very large file: modules/gui/diagnostics/objgraph_window.py (1582 lines)", "shortDescription": {"text": "Very large file: modules/gui/diagnostics/objgraph_window.py (1582 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-ed818186842d75be", "name": "Very large file: modules/gui/live_timing/live_timing_modules/sector_comparison.py (1315 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/sector_comparison.py (1315 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-856789729358febd", "name": "Very large file: modules/gui/live_timing/live_timing_modules/drs_trace.py (1714 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/drs_trace.py (1714 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-a8acd2da7d0de375", "name": "Very large file: modules/gui/live_timing/live_timing_modules/throttle_trace.py (1706 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/throttle_trace.py (1706 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-c3d7931324ffabcd", "name": "Very large file: modules/gui/live_timing/live_timing_modules/rpm_trace.py (1708 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/rpm_trace.py (1708 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-19a95fa775e1e41a", "name": "Very large file: modules/gui/live_timing/live_timing_modules/gear_trace.py (1703 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/gear_trace.py (1703 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-750df98169da3d50", "name": "Very large file: modules/gui/live_timing/live_timing_modules/brake_trace.py (1710 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/brake_trace.py (1710 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-39ae9875d92f2934", "name": "Very large file: modules/gui/live_timing/live_timing_modules/ranking_tower.py (1726 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/ranking_tower.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-6389f611c1d8ba00", "name": "Very large file: modules/gui/live_timing/live_timing_modules/driver_strategy.py (3789 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/driver_strategy.py (3789 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-853e039f33f180c4", "name": "Very large file: modules/gui/live_timing/live_timing_modules/sf_percentage_chart.py (1384 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/sf_percentage_chart.py (1384 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-ac912d41a1bdc507", "name": "Very large file: modules/gui/live_timing/live_timing_modules/speed_trace.py (1734 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/speed_trace.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-e78d1d4e76087295", "name": "Very large file: modules/gui/live_timing/live_timing_modules/chase_strategy.py (3869 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/chase_strategy.py (3869 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-e8ef751759599f6c", "name": "Very large file: modules/gui/live_timing/core/data_manager.py (2482 lines)", "shortDescription": {"text": "Very large file: modules/gui/live_timing/core/data_manager.py (2482 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-47de8ce2cb9b93fe", "name": "Very large file: modules/gui/long_run_analysis/long_run_mdi.py (2691 lines)", "shortDescription": {"text": "Very large file: modules/gui/long_run_analysis/long_run_mdi.py (2691 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-aa8850dbd1f7a3b7", "name": "Very large file: core/openf1_exact_generators.py (1744 lines)", "shortDescription": {"text": "Very large file: core/openf1_exact_generators.py (1744 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-a733f162810c24d2", "name": "Very large file: core/gui_i18n.py (3337 lines)", "shortDescription": {"text": "Very large file: core/gui_i18n.py (3337 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-6ec31bd6e05c9022", "name": "Very large file: core/workspace_serializer.py (2205 lines)", "shortDescription": {"text": "Very large file: core/workspace_serializer.py (2205 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 11171 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 165 placeholder/mock markers across 45 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc681eae3495da7e", "name": "Network/subprocess call without timeout or try/except \u2014 launch_batch_generator_gui.py:19", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 launch_batch_generator_gui.py:19"}, "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-766d376022bc1493", "name": "Commented-code block (6 lines) in f1t_gui_main.py:114", "shortDescription": {"text": "Commented-code block (6 lines) in f1t_gui_main.py:114"}, "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-6d883b3ce9049c9a", "name": "Stub function `write` (body is just `pass`/`return`) \u2014 f1t_gui_main.py:16", "shortDescription": {"text": "Stub function `write` (body is just `pass`/`return`) \u2014 f1t_gui_main.py:16"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ede5b7816d52609", "name": "Commented-code block (11 lines) in f1_analysis_modular_main.py:1635", "shortDescription": {"text": "Commented-code block (11 lines) in f1_analysis_modular_main.py:1635"}, "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-40efe510de9e8024", "name": "Commented-code block (9 lines) in CLI_modules/cli/analyzer/all_incidents_summary.py:289", "shortDescription": {"text": "Commented-code block (9 lines) in CLI_modules/cli/analyzer/all_incidents_summary.py:289"}, "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-9768aad29de3afab", "name": "Legacy-named symbol `_build_url_old` in CLI_modules/cli/analyzer/fia_season_stats_analyzer.py:356", "shortDescription": {"text": "Legacy-named symbol `_build_url_old` in CLI_modules/cli/analyzer/fia_season_stats_analyzer.py:356"}, "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-038679a583f757e2", "name": "Commented-code block (8 lines) in CLI_modules/cli/analyzer/driver_comparison_advanced.py:714", "shortDescription": {"text": "Commented-code block (8 lines) in CLI_modules/cli/analyzer/driver_comparison_advanced.py:714"}, "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-7632c6f37bbeda4e", "name": "Commented-code block (7 lines) in CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py:77", "shortDescription": {"text": "Commented-code block (7 lines) in CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py:77"}, "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-920fd8fd5e2c5795", "name": "Legacy-named symbol `_perform_analysis_legacy` in CLI_modules/cli/analyzer/corner_detailed_analysis.py:188", "shortDescription": {"text": "Legacy-named symbol `_perform_analysis_legacy` in CLI_modules/cli/analyzer/corner_detailed_analysis.py:188"}, "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-da97a44a32b3f962", "name": "Commented-code block (5 lines) in CLI_modules/cli/analyzer/live_timing_traffic_distance_analysis.py:168", "shortDescription": {"text": "Commented-code block (5 lines) in CLI_modules/cli/analyzer/live_timing_traffic_distance_analysis.py:168"}, "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-43f2b34d5027f075", "name": "Legacy-named symbol `_get_speed_at_distance_v2` in CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py:1153", "shortDescription": {"text": "Legacy-named symbol `_get_speed_at_distance_v2` in CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py:1153"}, "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-c127f88880884c25", "name": "Commented-code block (10 lines) in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:2356", "shortDescription": {"text": "Commented-code block (10 lines) in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:2356"}, "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-e04dbe0a7d0799bb", "name": "Commented-code block (7 lines) in CLI_modules/cli/prediction/xgboost_trainer.py:561", "shortDescription": {"text": "Commented-code block (7 lines) in CLI_modules/cli/prediction/xgboost_trainer.py:561"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8db40bca440171e6", "name": "Legacy-named symbol `weight_old` in CLI_modules/cli/prediction/tire_degradation_analyzer.py:892", "shortDescription": {"text": "Legacy-named symbol `weight_old` in CLI_modules/cli/prediction/tire_degradation_analyzer.py:892"}, "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-fea49ac3de06217c", "name": "Legacy-named symbol `close_combat_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/close_combat_trainer.py:13", "shortDescription": {"text": "Legacy-named symbol `close_combat_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/close_combat_trainer.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-c5aad2a8676e41ce", "name": "Legacy-named symbol `overtake_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/model_trainer.py:13", "shortDescription": {"text": "Legacy-named symbol `overtake_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/model_trainer.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-07bd6f54e42c4cc5", "name": "Legacy-named symbol `F1T_JSON_v1` in CLI_modules/cli/core/json_generator.py:108", "shortDescription": {"text": "Legacy-named symbol `F1T_JSON_v1` in CLI_modules/cli/core/json_generator.py:108"}, "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-f623e15ba0e76245", "name": "Legacy-named symbol `minimal_backup` in CLI_modules/cli/core/function_mapper.py:1712", "shortDescription": {"text": "Legacy-named symbol `minimal_backup` in CLI_modules/cli/core/function_mapper.py:1712"}, "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-bde6278653837b05", "name": "Commented-code block (24 lines) in CLI_modules/cli/core/function_mapper.py:343", "shortDescription": {"text": "Commented-code block (24 lines) in CLI_modules/cli/core/function_mapper.py:343"}, "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-d6fa09de0d16ad9b", "name": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_gui_vs_md.py:37", "shortDescription": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_gui_vs_md.py:37"}, "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-fc90d2270b574b56", "name": "Legacy-named symbol `base_pace_old` in tests/test_f83_cli.py:11", "shortDescription": {"text": "Legacy-named symbol `base_pace_old` in tests/test_f83_cli.py:11"}, "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-86fcfdd3741f7532", "name": "Legacy-named symbol `fp2_race_ml_predictor_v2` in tests/test_japan_f91.py:5", "shortDescription": {"text": "Legacy-named symbol `fp2_race_ml_predictor_v2` in tests/test_japan_f91.py:5"}, "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-69f99c78217ba5a1", "name": "Legacy-named symbol `debug_realtime_data_format_v2` in tests/debug_realtime_data_format_v2.py:37", "shortDescription": {"text": "Legacy-named symbol `debug_realtime_data_format_v2` in tests/debug_realtime_data_format_v2.py:37"}, "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-d11d6953cf9dd52b", "name": "Legacy-named symbol `win_probability_xgb_v2` in tests/check_model.py:3", "shortDescription": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/check_model.py:3"}, "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-416f4f9da4d2d104", "name": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_usa_lap30.py:16", "shortDescription": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_usa_lap30.py:16"}, "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-49aec9b128ab067f", "name": "Legacy-named symbol `result_old` in tests/test_mexico_sc_skip.py:36", "shortDescription": {"text": "Legacy-named symbol `result_old` in tests/test_mexico_sc_skip.py:36"}, "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-c711083c7768650c", "name": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_models.py:4", "shortDescription": {"text": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_models.py:4"}, "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-db1a6210dbb1570e", "name": "Legacy-named symbol `data_file_v2` in tests/test_function_29_v2.py:74", "shortDescription": {"text": "Legacy-named symbol `data_file_v2` in tests/test_function_29_v2.py:74"}, "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-75866b75e9397edb", "name": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_model_info.py:5", "shortDescription": {"text": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_model_info.py:5"}, "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-007d3c2fbbaa0126", "name": "Legacy-named symbol `filepath_v1` in tests/test_red_flag_final_verification.py:157", "shortDescription": {"text": "Legacy-named symbol `filepath_v1` in tests/test_red_flag_final_verification.py:157"}, "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-6e199ca16331e80e", "name": "Legacy-named symbol `fp2_race_ml_training_report_v2` in tests/check_training_report.py:4", "shortDescription": {"text": "Legacy-named symbol `fp2_race_ml_training_report_v2` in tests/check_training_report.py:4"}, "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-c5411a4ec474ed35", "name": "Legacy-named symbol `raw_data_old` in tests/test_throttle_fix.py:37", "shortDescription": {"text": "Legacy-named symbol `raw_data_old` in tests/test_throttle_fix.py:37"}, "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-8527f864aa30a62e", "name": "Legacy-named symbol `_get_speed_at_distance_v2` in tests/test_f120_v2_fix.py:2", "shortDescription": {"text": "Legacy-named symbol `_get_speed_at_distance_v2` in tests/test_f120_v2_fix.py:2"}, "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-e8079ff0bbb865f2", "name": "Commented-code block (5 lines) in windows/widgets/popout_subwindow.py:850", "shortDescription": {"text": "Commented-code block (5 lines) in windows/widgets/popout_subwindow.py:850"}, "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-a6831e92963ee9bf", "name": "Commented-code block (5 lines) in windows/widgets/standalone_windows.py:103", "shortDescription": {"text": "Commented-code block (5 lines) in windows/widgets/standalone_windows.py:103"}, "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-5ea90840d4dd7485", "name": "Commented-code block (12 lines) in windows/managers/menubar_builder.py:29", "shortDescription": {"text": "Commented-code block (12 lines) in windows/managers/menubar_builder.py:29"}, "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-787a3048a3f0ae31", "name": "Commented-code block (8 lines) in windows/managers/lap_analysis_controls_creator.py:80", "shortDescription": {"text": "Commented-code block (8 lines) in windows/managers/lap_analysis_controls_creator.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-d995963b393b0910", "name": "Commented-code block (8 lines) in windows/managers/api_health_handler.py:81", "shortDescription": {"text": "Commented-code block (8 lines) in windows/managers/api_health_handler.py:81"}, "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-50c92031ae2c9f13", "name": "Commented-code block (7 lines) in windows/managers/lap_window_opened_handler.py:25", "shortDescription": {"text": "Commented-code block (7 lines) in windows/managers/lap_window_opened_handler.py:25"}, "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-1e68209dd6ad1173", "name": "Legacy-named symbol `include_deprecated` in api/models/requests.py:226", "shortDescription": {"text": "Legacy-named symbol `include_deprecated` in api/models/requests.py:226"}, "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-3290e5f76140040a", "name": "Legacy-named symbol `cache_service_v2` in api/services/cache_service.py:7", "shortDescription": {"text": "Legacy-named symbol `cache_service_v2` in api/services/cache_service.py:7"}, "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-597844acf348a20a", "name": "Commented-code block (5 lines) in api/services/cache_service.py:188", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/cache_service.py:188"}, "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-deca46eea922c987", "name": "Legacy-named symbol `cache_service_v2` in api/services/simple_analysis_service.py:34", "shortDescription": {"text": "Legacy-named symbol `cache_service_v2` in api/services/simple_analysis_service.py:34"}, "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-4652c6ebba00dea5", "name": "Legacy-named symbol `analyze_v2` in api/routers/main.py:47", "shortDescription": {"text": "Legacy-named symbol `analyze_v2` in api/routers/main.py:47"}, "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-1b757da48b58109f", "name": "Commented-code block (5 lines) in api/routers/main.py:210", "shortDescription": {"text": "Commented-code block (5 lines) in api/routers/main.py:210"}, "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-2381d2874a49c23b", "name": "Commented-code block (7 lines) in scripts/f1tv_console_extractor.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/f1tv_console_extractor.js:1"}, "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-34c1ed811c9dddea", "name": "Legacy-named symbol `convert_prints_v2` in scripts/convert_prints_v2.py:6", "shortDescription": {"text": "Legacy-named symbol `convert_prints_v2` in scripts/convert_prints_v2.py:6"}, "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-93507554d21300f9", "name": "Legacy-named symbol `missing_and_unused` in scripts/fix_tr_imports.py:75", "shortDescription": {"text": "Legacy-named symbol `missing_and_unused` in scripts/fix_tr_imports.py:75"}, "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-2edbe07056c88061", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/batch_f47_2025_to_mexico.py:135", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/batch_f47_2025_to_mexico.py:135"}, "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-b84ceaba712dade0", "name": "Commented-code block (5 lines) in scripts/periodic_update_service.py:192", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/periodic_update_service.py:192"}, "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-3120061fe09845d6", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/f1tv_extract_cookie.py:258", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/f1tv_extract_cookie.py:258"}, "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-bc6074b58c89bb60", "name": "Legacy-named symbol `ideal_lap_sector_heatmap_widget_old` in scripts/cleanup_gui_modules.py:41", "shortDescription": {"text": "Legacy-named symbol `ideal_lap_sector_heatmap_widget_old` in scripts/cleanup_gui_modules.py:41"}, "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-1452ba349f193acd", "name": "Legacy-named symbol `analyze_race_gaps_v2` in scripts/dev/analyze_real_race_gaps_v2.py:9", "shortDescription": {"text": "Legacy-named symbol `analyze_race_gaps_v2` in scripts/dev/analyze_real_race_gaps_v2.py:9"}, "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-2210c130cfa6a2c5", "name": "Network/subprocess call without timeout or try/except \u2014 build_tools/build_exe_gui.py:231", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 build_tools/build_exe_gui.py:231"}, "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-ecfe09c5e142303c", "name": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window-XM0152.py:1660", "shortDescription": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window-XM0152.py:1660"}, "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-fd68968f20979fb4", "name": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window.py:1974", "shortDescription": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window.py:1974"}, "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-8594563f010088b9", "name": "Commented-code block (5 lines) in strategy_simulator/gui/main_window.py:2553", "shortDescription": {"text": "Commented-code block (5 lines) in strategy_simulator/gui/main_window.py:2553"}, "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-07b7219e4eb8452e", "name": "Legacy-named symbol `_setup_summary_labels_old` in strategy_simulator/gui/results_tabs/full_race_tab.py:301", "shortDescription": {"text": "Legacy-named symbol `_setup_summary_labels_old` in strategy_simulator/gui/results_tabs/full_race_tab.py:301"}, "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-3a09ccdbe5da5d9f", "name": "Commented-code block (5 lines) in strategy_simulator/core/race_simulator.py:827", "shortDescription": {"text": "Commented-code block (5 lines) in strategy_simulator/core/race_simulator.py:827"}, "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-44ebaac858a2b0a9", "name": "Legacy-named symbol `stints_copy` in strategy_simulator/core/monte_carlo.py:507", "shortDescription": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/core/monte_carlo.py:507"}, "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-001d602a67403ab9", "name": "Commented-code block (9 lines) in modules/gui/universal_chart_widget.py:181", "shortDescription": {"text": "Commented-code block (9 lines) in modules/gui/universal_chart_widget.py:181"}, "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-aae230b25aed8e4b", "name": "Commented-code block (8 lines) in modules/gui/telemetry_analysis_mdi.py:1797", "shortDescription": {"text": "Commented-code block (8 lines) in modules/gui/telemetry_analysis_mdi.py:1797"}, "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-bc54276b03397a31", "name": "Commented-code block (5 lines) in modules/gui/race_analysis/accident/accident_analysis_mdi.py:92", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/race_analysis/accident/accident_analysis_mdi.py:92"}, "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-162ce07e656ef37d", "name": "Commented-code block (6 lines) in modules/gui/race_analysis/track/track_map_widget.py:163", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/race_analysis/track/track_map_widget.py:163"}, "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-f8526a9f5236a595", "name": "Legacy-named symbol `payload_copy` in modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py:945", "shortDescription": {"text": "Legacy-named symbol `payload_copy` in modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py:945"}, "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-0966b0b2677b7e77", "name": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/driver_race/detailed_lap_analysis/detailed", "shortDescription": {"text": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/driver_race/detailed_lap_analysis/detailed_lap_options_dialog.py:34"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0738a428711bfcc", "name": "Commented-code block (11 lines) in modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_chart_widget.py:327", "shortDescription": {"text": "Commented-code block (11 lines) in modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_chart_widget.py:327"}, "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-2117253093c4464b", "name": "Commented-code block (5 lines) in modules/gui/partupdated_analysis/parts_analysis_mdi.py:256", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/partupdated_analysis/parts_analysis_mdi.py:256"}, "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-5c6ea05b6b67c84d", "name": "Stub function `get_current_year` (body is just `pass`/`return`) \u2014 modules/gui/interfaces/base_analysis_module_copy.py:56", "shortDescription": {"text": "Stub function `get_current_year` (body is just `pass`/`return`) \u2014 modules/gui/interfaces/base_analysis_module_copy.py:56"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30b1815b6165c7dd", "name": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/lap_analysis/ideal_lap/ideal_lap_options_d", "shortDescription": {"text": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/lap_analysis/ideal_lap/ideal_lap_options_dialog.py:35"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-98bd4b3706edcdbb", "name": "Commented-code block (5 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_comparison/ideal_lap_sector_compar", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_comparison/ideal_lap_sector_comparison_mdi.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-4b87bcfe145fcbbb", "name": "Commented-code block (6 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_heatmap/ideal_lap_sector_heatmap_m", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_heatmap/ideal_lap_sector_heatmap_mdi.py:623"}, "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-fd0329d1ccf9cce7", "name": "Commented-code block (5 lines) in modules/gui/lap_analysis/traffic_timeline_analysis/traffic_timeline_analysis_mdi.py:26", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/traffic_timeline_analysis/traffic_timeline_analysis_mdi.py:263"}, "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-77ed99267f3fff1a", "name": "Commented-code block (13 lines) in modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.py:870", "shortDescription": {"text": "Commented-code block (13 lines) in modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.py:870"}, "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-6b65b35f423ff566", "name": "Commented-code block (14 lines) in modules/gui/lap_analysis/speed_analysis/straight_line_speed_loader.py:496", "shortDescription": {"text": "Commented-code block (14 lines) in modules/gui/lap_analysis/speed_analysis/straight_line_speed_loader.py:496"}, "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-eed9605993a67d99", "name": "Commented-code block (8 lines) in modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py:97", "shortDescription": {"text": "Commented-code block (8 lines) in modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py:97"}, "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-2675cbcc359f8117", "name": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py:1477", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py:1477"}, "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-460255ee0ce9863c", "name": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_line_chart_analysis/throttle_line_", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_line_chart_analysis/throttle_line_chart_mdi.py:508"}, "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-3695306580ba111c", "name": "Commented-code block (11 lines) in modules/gui/lap_analysis/lap_box_plot/lap_box_plot_chart_widget.py:314", "shortDescription": {"text": "Commented-code block (11 lines) in modules/gui/lap_analysis/lap_box_plot/lap_box_plot_chart_widget.py:314"}, "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-0ae62fe1ac51ba70", "name": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/brake/brake_all_laps_loader.py:402", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/brake/brake_all_laps_loader.py:402"}, "fullDescription": {"text": "`requests.post(...)` 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-45db4ee15bda4094", "name": "Commented-code block (14 lines) in modules/gui/all_drivers/brake/brake_performance_loader.py:473", "shortDescription": {"text": "Commented-code block (14 lines) in modules/gui/all_drivers/brake/brake_performance_loader.py:473"}, "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-2d62ad0245260fac", "name": "Commented-code block (6 lines) in modules/gui/all_drivers/brake/all_drivers_brake_performance_table_widget.py:495", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/brake/all_drivers_brake_performance_table_widget.py:495"}, "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-7f7c53315d3aeff6", "name": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/max_speed/max_speed_data_loader.py:277", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/max_speed/max_speed_data_loader.py:277"}, "fullDescription": {"text": "`requests.post(...)` 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-35dae1e27bd0d24d", "name": "Commented-code block (6 lines) in modules/gui/all_drivers/corner_performance/corner_performance_loader.py:506", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/corner_performance/corner_performance_loader.py:506"}, "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-e9b9fdd2d72cbc8a", "name": "Commented-code block (5 lines) in modules/gui/all_drivers/corner_performance/corner_performance_scatter_widget.py:576", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/all_drivers/corner_performance/corner_performance_scatter_widget.py:576"}, "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-50886b6bb3d2a23f", "name": "Commented-code block (6 lines) in modules/gui/all_drivers/straight_line_speed/all_drivers_straight_line_speed_table_widg", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/straight_line_speed/all_drivers_straight_line_speed_table_widget.py:465"}, "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-96fb8b14e84cda6e", "name": "Network/subprocess call without timeout or try/except \u2014 modules/gui/diagnostics/objgraph_window.py:1458", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/diagnostics/objgraph_window.py:1458"}, "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-d5e6167e3fa7c7e3", "name": "Legacy-named symbol `dynamic_team_rating_v1` in modules/gui/race_prediction/race_prediction_data_loader.py:347", "shortDescription": {"text": "Legacy-named symbol `dynamic_team_rating_v1` in modules/gui/race_prediction/race_prediction_data_loader.py:347"}, "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-42f2b704eb6b266a", "name": "Network/subprocess call without timeout or try/except \u2014 modules/gui/tire_analysis/tire_analysis_mdi.py:426", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/tire_analysis/tire_analysis_mdi.py:426"}, "fullDescription": {"text": "`requests.post(...)` 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-76f332b1215391d8", "name": "Commented-code block (5 lines) in modules/gui/simulation_adapter/physics_cloner.py:237", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/simulation_adapter/physics_cloner.py:237"}, "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-68b1b1fec2834a32", "name": "Commented-code block (10 lines) in modules/gui/live_timing/live_timing_modules/ranking_tower.py:1446", "shortDescription": {"text": "Commented-code block (10 lines) in modules/gui/live_timing/live_timing_modules/ranking_tower.py:1446"}, "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-82609977f31b93e1", "name": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/driver_strategy.py:2037", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/driver_strategy.py:2037"}, "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-8c59f639052b5952", "name": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/chase_strategy.py:2586", "shortDescription": {"text": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/chase_strategy.py:2586"}, "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-4372c58f2e54e8ff", "name": "Commented-code block (6 lines) in modules/gui/live_timing/core/data_manager.py:2221", "shortDescription": {"text": "Commented-code block (6 lines) in modules/gui/live_timing/core/data_manager.py:2221"}, "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-4bd6a35066e08f69", "name": "Legacy-named symbol `item_copy` in modules/gui/live_timing/core/signalr_client.py:458", "shortDescription": {"text": "Legacy-named symbol `item_copy` in modules/gui/live_timing/core/signalr_client.py:458"}, "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-27d412362994f0de", "name": "Legacy-named symbol `json_backup` in tools/migrate_json_files.py:53", "shortDescription": {"text": "Legacy-named symbol `json_backup` in tools/migrate_json_files.py:53"}, "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-be1b08896ec782fe", "name": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing.py:358", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing.py:358"}, "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-cde5d2c680a74dc9", "name": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui_pyspy.py:136", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui_pyspy.py:136"}, "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-2694a6a842ef26f7", "name": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing_playback.py:317", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing_playback.py:317"}, "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-3b6bd0d0a2030a59", "name": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui.py:286", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui.py:286"}, "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-14c45d684c698422", "name": "Legacy-named symbol `win_probability_xgb_v2` in tools/win_probability_diagnosis.py:172", "shortDescription": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tools/win_probability_diagnosis.py:172"}, "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-d8e42ad2dc3cd6cf", "name": "Legacy-named symbol `snapshot_copy` in tools/diagnose_playback_lag.py:117", "shortDescription": {"text": "Legacy-named symbol `snapshot_copy` in tools/diagnose_playback_lag.py:117"}, "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-b8952473984caa75", "name": "Stub function `get_current_mdi_area` (body is just `pass`/`return`) \u2014 tools/run_gui_coverage_matrix.py:102", "shortDescription": {"text": "Stub function `get_current_mdi_area` (body is just `pass`/`return`) \u2014 tools/run_gui_coverage_matrix.py:102"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ba4cbeab09ed52f", "name": "Commented-code block (11 lines) in tools/generate_physics_from_data.py:89", "shortDescription": {"text": "Commented-code block (11 lines) in tools/generate_physics_from_data.py:89"}, "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-2c927738f4a65912", "name": "Stub function `close` (body is just `pass`/`return`) \u2014 core/local_requests.py:41", "shortDescription": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 core/local_requests.py:41"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e04d7ee2d41e709b", "name": "Commented-code block (7 lines) in core/logger.py:354", "shortDescription": {"text": "Commented-code block (7 lines) in core/logger.py:354"}, "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-1fd7fc8bec375cd7", "name": "Legacy-named symbol `openf1_exact_v1` in core/openf1_exact_generators.py:215", "shortDescription": {"text": "Legacy-named symbol `openf1_exact_v1` in core/openf1_exact_generators.py:215"}, "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-4e8072bd188d55d3", "name": "Commented-code block (6 lines) in core/workspace_serializer.py:916", "shortDescription": {"text": "Commented-code block (6 lines) in core/workspace_serializer.py:916"}, "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-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:\nsignalr_recorder_gui.py:main, tools/signalr_recorder/recorder_main.py:main\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:\nlearn_team_fuel_habits.py:load_training_data, scripts/dev/learn_track_evolution_factor.py:load_training_data, scripts/dev/learn_team_residual_adjustment.py:load_training_data, scripts/dev/learn_track_adjustment_factor.py:load_training_data\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:\nCLI_modules/cli/validation/tire_saving_validator.py:to_dict, CLI_modules/cli/validation/tire_saving_validator.py:to_dict, CLI_modules/cli/validation/tire_saving_validator.py:to_dict\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-c99ff5b39f6cde6c", "name": "FastAPI DELETE `clear_cache` without auth dependency \u2014 api/routers/cache.py:210", "shortDescription": {"text": "FastAPI DELETE `clear_cache` without auth dependency \u2014 api/routers/cache.py:210"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66a6dec6b56c9e68", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 api/routers/main.py:164", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 api/routers/main.py:164"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f6f7fc46efed0f0", "name": "FastAPI POST `execute_analysis` without auth dependency \u2014 api/routers/analysis.py:434", "shortDescription": {"text": "FastAPI POST `execute_analysis` without auth dependency \u2014 api/routers/analysis.py:434"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73d3cf63589db50e", "name": "FastAPI POST `cross_event_comparison` without auth dependency \u2014 api/routers/analysis.py:573", "shortDescription": {"text": "FastAPI POST `cross_event_comparison` without auth dependency \u2014 api/routers/analysis.py:573"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-388d7ce5f171c2c2", "name": "Unused endpoint: GET /tire-degradation", "shortDescription": {"text": "Unused endpoint: GET /tire-degradation"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /tire-degradation` 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-cc0fa28a51196969", "name": "Unused endpoint: GET /fuel-coefficients", "shortDescription": {"text": "Unused endpoint: GET /fuel-coefficients"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /fuel-coefficients` 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-fb4dde1f0c2e0a64", "name": "Unused endpoint: GET /track-features", "shortDescription": {"text": "Unused endpoint: GET /track-features"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /track-features` 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-bf93badd093c72d8", "name": "Unused endpoint: GET /pit-loss", "shortDescription": {"text": "Unused endpoint: GET /pit-loss"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /pit-loss` 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-09271af1faa5c0a0", "name": "Unused endpoint: GET /throttle-baseline", "shortDescription": {"text": "Unused endpoint: GET /throttle-baseline"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /throttle-baseline` 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-315cd63fd82c77da", "name": "Unused endpoint: GET /throttle-baseline/{circuit}", "shortDescription": {"text": "Unused endpoint: GET /throttle-baseline/{circuit}"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /throttle-baseline/{circuit}` 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-e076826fb3ce3cf9", "name": "Unused endpoint: GET /strategy-coefficients", "shortDescription": {"text": "Unused endpoint: GET /strategy-coefficients"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /strategy-coefficients` 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-eddbba258a58d01f", "name": "Unused endpoint: GET /strategy-coefficients/{circuit}", "shortDescription": {"text": "Unused endpoint: GET /strategy-coefficients/{circuit}"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /strategy-coefficients/{circuit}` 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-2c3d1d103b19a7f6", "name": "Unused endpoint: GET /all", "shortDescription": {"text": "Unused endpoint: GET /all"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d682e1d215955e6a", "name": "Unused endpoint: GET /list", "shortDescription": {"text": "Unused endpoint: GET /list"}, "fullDescription": {"text": "`api/routers/config.py` declares `GET /list` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d16e4fa529c520e9", "name": "Unused endpoint: GET /search", "shortDescription": {"text": "Unused endpoint: GET /search"}, "fullDescription": {"text": "`api/routers/cache.py` declares `GET /search` 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-6710d3710c9d882c", "name": "Unused endpoint: GET /files", "shortDescription": {"text": "Unused endpoint: GET /files"}, "fullDescription": {"text": "`api/routers/cache.py` declares `GET /files` 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-02300358e6ee6fb2", "name": "Unused endpoint: DELETE /clear", "shortDescription": {"text": "Unused endpoint: DELETE /clear"}, "fullDescription": {"text": "`api/routers/cache.py` declares `DELETE /clear` 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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`api/routers/main.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b338336871125de3", "name": "Unused endpoint: GET /cache/status", "shortDescription": {"text": "Unused endpoint: GET /cache/status"}, "fullDescription": {"text": "`api/routers/main.py` declares `GET /cache/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-860dea186848feb7", "name": "Unused endpoint: GET /cache/search", "shortDescription": {"text": "Unused endpoint: GET /cache/search"}, "fullDescription": {"text": "`api/routers/main.py` declares `GET /cache/search` 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-fca11d494725d7c3", "name": "Unused endpoint: POST /analyze", "shortDescription": {"text": "Unused endpoint: POST /analyze"}, "fullDescription": {"text": "`api/routers/main.py` declares `POST /analyze` 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-e8ac683324fe08af", "name": "Unused endpoint: GET /functions", "shortDescription": {"text": "Unused endpoint: GET /functions"}, "fullDescription": {"text": "`api/routers/main.py` declares `GET /functions` 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-25d2ca63197cd1e9", "name": "Unused endpoint: POST /execute", "shortDescription": {"text": "Unused endpoint: POST /execute"}, "fullDescription": {"text": "`api/routers/analysis.py` declares `POST /execute` 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-edbfdf5ee92c427c", "name": "Unused endpoint: POST /cross-event-comparison", "shortDescription": {"text": "Unused endpoint: POST /cross-event-comparison"}, "fullDescription": {"text": "`api/routers/analysis.py` declares `POST /cross-event-comparison` 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-200dd038e8143a2f", "name": "Unused endpoint: GET /monitor/status", "shortDescription": {"text": "Unused endpoint: GET /monitor/status"}, "fullDescription": {"text": "`api/routers/system.py` declares `GET /monitor/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}}]}}, "automationDetails": {"id": "repobility/22556"}, "properties": {"repository": "WarmBed/F1-data-analyze", "repoUrl": "https://github.com/WarmBed/F1-data-analyze", "branch": "main"}, "results": [{"ruleId": "scanner-f3f94890b600aad5", "level": "note", "message": {"text": "Possibly dead Python function: show_module_status"}, "properties": {"repobilityId": "528dcc789203cb28", "scanner": "scanner-primary", "fingerprint": "f3f94890b600aad5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:312"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8255e3ca8be86fdf", "level": "note", "message": {"text": "Possibly dead Python function: run_rain_intensity_analysis"}, "properties": {"repobilityId": "d1ba6c0364649907", "scanner": "scanner-primary", "fingerprint": "8255e3ca8be86fdf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:355"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2386a3184e37f2c5", "level": "note", "message": {"text": "Possibly dead Python function: run_accident_key_events_summary"}, "properties": {"repobilityId": "f3ec29ba92ff219e", "scanner": "scanner-primary", "fingerprint": "2386a3184e37f2c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:372"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fab38c6b5b284f49", "level": "note", "message": {"text": "Possibly dead Python function: run_accident_driver_severity_scores"}, "properties": {"repobilityId": "95fe83dec8925225", "scanner": "scanner-primary", "fingerprint": "fab38c6b5b284f49", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:424"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0e63d0dbc3fa44c", "level": "note", "message": {"text": "Possibly dead Python function: run_accident_team_risk_scores"}, "properties": {"repobilityId": "1fb0a2e0118d4a2d", "scanner": "scanner-primary", "fingerprint": "f0e63d0dbc3fa44c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:450"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-949158e95ff3a171", "level": "note", "message": {"text": "Possibly dead Python function: run_accident_all_incidents_summary"}, "properties": {"repobilityId": "478240964bf87b0b", "scanner": "scanner-primary", "fingerprint": "949158e95ff3a171", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:476"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d23117485605f231", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_complete_lap_analysis"}, "properties": {"repobilityId": "6f034450c5c94ca7", "scanner": "scanner-primary", "fingerprint": "d23117485605f231", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:504"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee02cb6f1098de10", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_detailed_tire_strategy"}, "properties": {"repobilityId": "487ea831b59d4921", "scanner": "scanner-primary", "fingerprint": "ee02cb6f1098de10", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:514"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a68b5d67762f16e5", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_tire_performance_analysis"}, "properties": {"repobilityId": "5e426409285a33be", "scanner": "scanner-primary", "fingerprint": "a68b5d67762f16e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:524"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f7670b55f3b3407", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_pitstop_records"}, "properties": {"repobilityId": "f7186871938a91e2", "scanner": "scanner-primary", "fingerprint": "9f7670b55f3b3407", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:534"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab7350792dfa37fb", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_special_events"}, "properties": {"repobilityId": "f64545b92d9652e3", "scanner": "scanner-primary", "fingerprint": "ab7350792dfa37fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:544"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e9ae4dcbf9c50b5", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_fastest_lap"}, "properties": {"repobilityId": "1cdc96160820711d", "scanner": "scanner-primary", "fingerprint": "1e9ae4dcbf9c50b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:554"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3dd5fe01f7178b14", "level": "note", "message": {"text": "Possibly dead Python function: run_telemetry_specific_lap"}, "properties": {"repobilityId": "cc9fdbe9daa0119e", "scanner": "scanner-primary", "fingerprint": "3dd5fe01f7178b14", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "f1_analysis_modular_main.py:564"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f528b5f79287b2a1", "level": "note", "message": {"text": "Possibly dead Python function: is_sc_active"}, "properties": {"repobilityId": "75a2b00aec9f4eca", "scanner": "scanner-primary", "fingerprint": "f528b5f79287b2a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/utils/base_overtake_detector.py:306"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5271fdaa6386bee8", "level": "note", "message": {"text": "Possibly dead Python function: invalidate"}, "properties": {"repobilityId": "528be77e1d75b539", "scanner": "scanner-primary", "fingerprint": "5271fdaa6386bee8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/cache/cache_manager.py:94"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec740fc46b6cedeb", "level": "note", "message": {"text": "Possibly dead Python function: purge_expired"}, "properties": {"repobilityId": "cd467d723fcd0f3a", "scanner": "scanner-primary", "fingerprint": "ec740fc46b6cedeb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/cache/cache_manager.py:106"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a62817f99e8b100b", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "a62817f99e8b100b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/cache/cache_manager.py:226"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af0c6c3558cfda63", "level": "note", "message": {"text": "Possibly dead Python function: run_annual_dnf_statistics"}, "properties": {"repobilityId": "c15d8a57a88483ae", "scanner": "scanner-primary", "fingerprint": "af0c6c3558cfda63", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/analyzer/annual_dnf_statistics.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-94e914610562ab9d", "level": "note", "message": {"text": "Possibly dead Python function: display_json_preview"}, "properties": {"repobilityId": "6611888474bfa6c0", "scanner": "scanner-primary", "fingerprint": "94e914610562ab9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/analyzer/driver_detailed_pitstop_records.py:393"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-731ec9304f1685ac", "level": "note", "message": {"text": "Possibly dead Python function: run_special_incident_reports_json"}, "properties": {"repobilityId": "4ed4e339b07b4b71", "scanner": "scanner-primary", "fingerprint": "731ec9304f1685ac", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/analyzer/special_incident_reports.py:1222"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09c23f4e399ca35f", "level": "note", "message": {"text": "Possibly dead Python function: map_track_to_cluster"}, "properties": {"repobilityId": "52ee6a3b99a3f94b", "scanner": "scanner-primary", "fingerprint": "09c23f4e399ca35f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/prediction/xgboost_trainer.py:444"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8dcedd8428f232a4", "level": "note", "message": {"text": "Possibly dead Python function: evaluate_by_category"}, "properties": {"repobilityId": "76e289221906a3c0", "scanner": "scanner-primary", "fingerprint": "8dcedd8428f232a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/prediction/track_classifier.py:332"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ac30933ea91b196", "level": "note", "message": {"text": "Possibly dead Python function: predict_all_drivers_pit_windows"}, "properties": {"repobilityId": "d466b84d56c0f518", "scanner": "scanner-primary", "fingerprint": "5ac30933ea91b196", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/prediction/pit_stop_strategy_predictor.py:249"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d0ce4b1dd9d97182", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_check_gas_alo.py"}, "properties": {"repobilityId": "7601dcd492c03c63", "scanner": "scanner-primary", "fingerprint": "d0ce4b1dd9d97182", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-10b7b328396f38b0", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_sampling_rate.py"}, "properties": {"repobilityId": "ec936fed0d6506f1", "scanner": "scanner-primary", "fingerprint": "10b7b328396f38b0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-03916faf2b431206", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_check_raw_stream.py"}, "properties": {"repobilityId": "596cc0cc674f84d7", "scanner": "scanner-primary", "fingerprint": "03916faf2b431206", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-84b0e3057bf6acf0", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_check_api_data.py"}, "properties": {"repobilityId": "84a02dbb3b89a490", "scanner": "scanner-primary", "fingerprint": "84b0e3057bf6acf0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-bf0c92cf40d4f431", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_check_team_radio.py"}, "properties": {"repobilityId": "12bf4f19b937dc69", "scanner": "scanner-primary", "fingerprint": "bf0c92cf40d4f431", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-56a7c5575d60c6ee", "level": "note", "message": {"text": "File has no detected symbols: scripts/dev/temp_check_timing.py"}, "properties": {"repobilityId": "8324331585574d55", "scanner": "scanner-primary", "fingerprint": "56a7c5575d60c6ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-d53792928fcc306b", "level": "note", "message": {"text": "File has no detected symbols: modules/gui/race_analysis/temp/temp_analysis_universal.py"}, "properties": {"repobilityId": "2fe6cc1714792c19", "scanner": "scanner-primary", "fingerprint": "d53792928fcc306b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-4f3c53d36e5f4485", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/f1tv_console_extractor.js:41"}, "properties": {"repobilityId": "54f00989f576523f", "scanner": "scanner-primary", "fingerprint": "4f3c53d36e5f4485", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-4b67862d58662a08", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:976"}, "properties": {"repobilityId": "26a61b098777205d", "scanner": "scanner-primary", "fingerprint": "4b67862d58662a08", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py"}, "region": {"startLine": 976}}}]}, {"ruleId": "scanner-a2f846e2e2309584", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in scripts/f1tv_browser_login.py:187"}, "properties": {"repobilityId": "0c869a018212f7df", "scanner": "scanner-primary", "fingerprint": "a2f846e2e2309584", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/f1tv_browser_login.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-3b9ec7c110d8cfbb", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in build_tools/build_exe_gui.py:737"}, "properties": {"repobilityId": "ba2cca7ad4936dc2", "scanner": "scanner-primary", "fingerprint": "3b9ec7c110d8cfbb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "build_tools/build_exe_gui.py"}, "region": {"startLine": 737}}}]}, {"ruleId": "scanner-dc040a2089e9026b", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in modules/gui/diagnostics/objgraph_window.py:844"}, "properties": {"repobilityId": "daeb8c7bab3f4a93", "scanner": "scanner-primary", "fingerprint": "dc040a2089e9026b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modules/gui/diagnostics/objgraph_window.py"}, "region": {"startLine": 844}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-7d2642eab2601670", "level": "note", "message": {"text": "Very large file: f1t_gui_main.py (2802 lines)"}, "properties": {"repobilityId": "66041ef16346b83d", "scanner": "scanner-primary", "fingerprint": "7d2642eab2601670", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c69ed8ffe33d50f7", "level": "note", "message": {"text": "Very large file: f1_analysis_modular_main.py (2125 lines)"}, "properties": {"repobilityId": "a22624fa391d3de4", "scanner": "scanner-primary", "fingerprint": "c69ed8ffe33d50f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b5bd1d386becbeea", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/all_incidents_summary.py (1468 lines)"}, "properties": {"repobilityId": "489e45c08028d60d", "scanner": "scanner-primary", "fingerprint": "b5bd1d386becbeea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a37d7c79bec471f1", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/single_driver_all_corners_detailed_analysis.py (1256 lines)"}, "properties": {"repobilityId": "30cf4df6bbe6d802", "scanner": "scanner-primary", "fingerprint": "a37d7c79bec471f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3157d5dd066699d4", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/driver_comparison_advanced.py (2312 lines)"}, "properties": {"repobilityId": "65a2f90a2984f110", "scanner": "scanner-primary", "fingerprint": "3157d5dd066699d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18636342639ae0ef", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py (1534 lines)"}, "properties": {"repobilityId": "44f0002137f86c23", "scanner": "scanner-primary", "fingerprint": "18636342639ae0ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a1f9ad8ca94da691", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/corner_detailed_analysis.py (1781 lines)"}, "properties": {"repobilityId": "5ee3a5b40670a5c5", "scanner": "scanner-primary", "fingerprint": "a1f9ad8ca94da691", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a29832a17bd7ee12", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/historical_flags_analysis.py (2175 lines)"}, "properties": {"repobilityId": "c47d87f5995487ec", "scanner": "scanner-primary", "fingerprint": "a29832a17bd7ee12", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fbf53cb0048f81d", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py (1451 lines)"}, "properties": {"repobilityId": "06f91ccbb66eb081", "scanner": "scanner-primary", "fingerprint": "4fbf53cb0048f81d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-268da89e840c4456", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/f1_analysis_modular_main.py (1935 lines)"}, "properties": {"repobilityId": "af716a7efac8b7a7", "scanner": "scanner-primary", "fingerprint": "268da89e840c4456", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9eb0dede1c43dd6c", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/two_driver_telemetry_comparison_fixed.py (1333 lines)"}, "properties": {"repobilityId": "cc05721ae6a7f970", "scanner": "scanner-primary", "fingerprint": "9eb0dede1c43dd6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b4268f96da4e9d6c", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py (2810 lines)"}, "properties": {"repobilityId": "54f35da8bc134e3c", "scanner": "scanner-primary", "fingerprint": "b4268f96da4e9d6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a63ae0e10048dcd0", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/analyzer/special_incident_reports.py (1521 lines)"}, "properties": {"repobilityId": "480dab86fc8c3a93", "scanner": "scanner-primary", "fingerprint": "a63ae0e10048dcd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-255ace37515df900", "level": "note", "message": {"text": "Very large file: CLI_modules/cli/core/function_mapper.py (8208 lines)"}, "properties": {"repobilityId": "3f0cc25ad82e9c2c", "scanner": "scanner-primary", "fingerprint": "255ace37515df900", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a091f86782546eff", "level": "note", "message": {"text": "Very large file: windows/widgets/popout_subwindow.py (2077 lines)"}, "properties": {"repobilityId": "d45a521f16b1195b", "scanner": "scanner-primary", "fingerprint": "a091f86782546eff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-51ecefee15fa21c7", "level": "note", "message": {"text": "Very large file: windows/managers/telemetry_window_creator.py (1417 lines)"}, "properties": {"repobilityId": "125a551d8c1de564", "scanner": "scanner-primary", "fingerprint": "51ecefee15fa21c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2c8cec9d0781e52", "level": "note", "message": {"text": "Very large file: windows/managers/analysis_module_creator.py (2134 lines)"}, "properties": {"repobilityId": "5aab46068b435520", "scanner": "scanner-primary", "fingerprint": "f2c8cec9d0781e52", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c9089f19395c33b", "level": "note", "message": {"text": "Very large file: windows/dialogs/window_settings_dialog.py (1630 lines)"}, "properties": {"repobilityId": "d251fcc612063ebe", "scanner": "scanner-primary", "fingerprint": "5c9089f19395c33b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e51daaa27dbb7c23", "level": "note", "message": {"text": "Very large file: api/services/cache_service.py (1669 lines)"}, "properties": {"repobilityId": "e2a679e31c6768b7", "scanner": "scanner-primary", "fingerprint": "e51daaa27dbb7c23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0a2989d5cddfa0de", "level": "note", "message": {"text": "Very large file: api/services/simple_analysis_service.py (1322 lines)"}, "properties": {"repobilityId": "2ce36352a4ca20e7", "scanner": "scanner-primary", "fingerprint": "0a2989d5cddfa0de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f2f24062da54c2e", "level": "note", "message": {"text": "Very large file: strategy_simulator/gui/main_window-XM0152.py (2366 lines)"}, "properties": {"repobilityId": "5c8d69f6d5786f43", "scanner": "scanner-primary", "fingerprint": "7f2f24062da54c2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-51ec4c9afe7f9972", "level": "note", "message": {"text": "Very large file: strategy_simulator/gui/main_window.py (2773 lines)"}, "properties": {"repobilityId": "a6b2fbf75786b5b3", "scanner": "scanner-primary", "fingerprint": "51ec4c9afe7f9972", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-709182c3618eb6ab", "level": "note", "message": {"text": "Very large file: strategy_simulator/gui/widgets/strategy_report_generator.py (1605 lines)"}, "properties": {"repobilityId": "02aeb079a41845b8", "scanner": "scanner-primary", "fingerprint": "709182c3618eb6ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9b89a198f62319e", "level": "note", "message": {"text": "Very large file: strategy_simulator/gui/results_tabs/full_race_tab.py (1319 lines)"}, "properties": {"repobilityId": "e4cacfef2c858ecd", "scanner": "scanner-primary", "fingerprint": "e9b89a198f62319e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8470c3896ae1e291", "level": "note", "message": {"text": "Very large file: strategy_simulator/gui/results_tabs/safety_car_tab.py (1328 lines)"}, "properties": {"repobilityId": "bd5f399c6d1f9bac", "scanner": "scanner-primary", "fingerprint": "8470c3896ae1e291", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-36abc4a972f42269", "level": "note", "message": {"text": "Very large file: strategy_simulator/core/race_simulator.py (2253 lines)"}, "properties": {"repobilityId": "87a471208aef1653", "scanner": "scanner-primary", "fingerprint": "36abc4a972f42269", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3bf5749800a18157", "level": "note", "message": {"text": "Very large file: modules/gui/universal_chart_widget.py (2559 lines)"}, "properties": {"repobilityId": "a1df1213244a0e4f", "scanner": "scanner-primary", "fingerprint": "3bf5749800a18157", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b2bb7a3c26d43000", "level": "note", "message": {"text": "Very large file: modules/gui/telemetry_analysis_mdi.py (2041 lines)"}, "properties": {"repobilityId": "d1e0cef369072a7e", "scanner": "scanner-primary", "fingerprint": "b2bb7a3c26d43000", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9f14c87d3689c8a0", "level": "note", "message": {"text": "Very large file: modules/gui/base/universal_chart_widget_base.py (1313 lines)"}, "properties": {"repobilityId": "397ff1a6d64e1fae", "scanner": "scanner-primary", "fingerprint": "9f14c87d3689c8a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f77a7f27b2bb48d9", "level": "note", "message": {"text": "Very large file: modules/gui/base/universal_analysis_mdi_base.py (1386 lines)"}, "properties": {"repobilityId": "5ef4c4ce7bd6f128", "scanner": "scanner-primary", "fingerprint": "f77a7f27b2bb48d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49b1379c279e45fd", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/accident/accident_analysis_mdi.py (2715 lines)"}, "properties": {"repobilityId": "96511e869ff08c50", "scanner": "scanner-primary", "fingerprint": "49b1379c279e45fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae4a3566efe38861", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/accident/accident_analysis_complete.py (3940 lines)"}, "properties": {"repobilityId": "d5883d8a4de64054", "scanner": "scanner-primary", "fingerprint": "ae4a3566efe38861", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4bc403a10515513b", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/track_map/historical_track_map_mdi.py (1896 lines)"}, "properties": {"repobilityId": "b29635f101c8bb7d", "scanner": "scanner-primary", "fingerprint": "4bc403a10515513b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-931ae52b21fed496", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/pitstop/pitstop_analysis_mdi.py (2946 lines)"}, "properties": {"repobilityId": "07dee9e748de33d7", "scanner": "scanner-primary", "fingerprint": "931ae52b21fed496", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ba35a4303be3969", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/track/track_analysis_module.py (1565 lines)"}, "properties": {"repobilityId": "735e9ec520f71634", "scanner": "scanner-primary", "fingerprint": "6ba35a4303be3969", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77f6ca01339c2e51", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/track/track_map_widget.py (2412 lines)"}, "properties": {"repobilityId": "f48cb79824891e0d", "scanner": "scanner-primary", "fingerprint": "77f6ca01339c2e51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-02bc9330ec5b35c7", "level": "note", "message": {"text": "Very large file: modules/gui/race_analysis/track/track_analysis_mdi.py (1414 lines)"}, "properties": {"repobilityId": "dac5f07c3cc5e06e", "scanner": "scanner-primary", "fingerprint": "02bc9330ec5b35c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-713c093ef383734e", "level": "note", "message": {"text": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_chart_widget.py (2197 lines)"}, "properties": {"repobilityId": "88bc63b22fc5ed67", "scanner": "scanner-primary", "fingerprint": "713c093ef383734e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7377175cc9acdd9d", "level": "note", "message": {"text": "Very large file: modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py (1684 lines)"}, "properties": {"repobilityId": "37fa59219f6dcfe7", "scanner": "scanner-primary", "fingerprint": "7377175cc9acdd9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-671f551024f33abc", "level": "note", "message": {"text": "Very large file: modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_analysis_mdi.py (1720 lines)"}, "properties": {"repobilityId": "8e65c692ddd1cb04", "scanner": "scanner-primary", "fingerprint": "671f551024f33abc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61cc77368b41d604", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/telemetry_data_loader_base.py (1837 lines)"}, "properties": {"repobilityId": "c9b687f0f34da46a", "scanner": "scanner-primary", "fingerprint": "61cc77368b41d604", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9c0ea6d38abf24f9", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_mdi.py (1992 lines)"}, "properties": {"repobilityId": "2fd414780db6a78d", "scanner": "scanner-primary", "fingerprint": "9c0ea6d38abf24f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7e63b05311580d6", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/gear_analysis/gear_analysis_chart_widget.py (1696 lines)"}, "properties": {"repobilityId": "5caae4de6b5ed0c6", "scanner": "scanner-primary", "fingerprint": "e7e63b05311580d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-03d13df0052b2247", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_mdi.py (2065 lines)"}, "properties": {"repobilityId": "49db687c8ccb45ff", "scanner": "scanner-primary", "fingerprint": "03d13df0052b2247", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e7aa4ad712e2ed0", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.py (1689 lines)"}, "properties": {"repobilityId": "08a93c9824358f00", "scanner": "scanner-primary", "fingerprint": "6e7aa4ad712e2ed0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ec4ea6e975560ce9", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_mdi.py (2029 lines)"}, "properties": {"repobilityId": "a228ed8fc770325f", "scanner": "scanner-primary", "fingerprint": "ec4ea6e975560ce9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c6fdb62e6013523", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/distancediff_analysis/distancediff_analysis_chart_widget.py (1775 lines)"}, "properties": {"repobilityId": "7f7033f34dc328e2", "scanner": "scanner-primary", "fingerprint": "7c6fdb62e6013523", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e91df359bee78e6d", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_mdi.py (2055 lines)"}, "properties": {"repobilityId": "c93268285f515b32", "scanner": "scanner-primary", "fingerprint": "e91df359bee78e6d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8e88482df0ea8ea9", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py (1834 lines)"}, "properties": {"repobilityId": "09da408d3937f161", "scanner": "scanner-primary", "fingerprint": "8e88482df0ea8ea9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a48bd3dd597d0d8d", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_chart_widget.py (1791 lines)"}, "properties": {"repobilityId": "a659ec90b3113770", "scanner": "scanner-primary", "fingerprint": "a48bd3dd597d0d8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b630d7f981ca790f", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/timediff_analysis/timediff_analysis_mdi.py (2004 lines)"}, "properties": {"repobilityId": "fc3ff6584eb2b380", "scanner": "scanner-primary", "fingerprint": "b630d7f981ca790f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27a458e67fb0abfd", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_chart_widget.py (1762 lines)"}, "properties": {"repobilityId": "fe2bfa0b235f7699", "scanner": "scanner-primary", "fingerprint": "27a458e67fb0abfd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b49fcf3a4ecd01d2", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/brake_analysis/brake_analysis_mdi.py (2067 lines)"}, "properties": {"repobilityId": "03ca0860a87942bd", "scanner": "scanner-primary", "fingerprint": "b49fcf3a4ecd01d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8b251b6ab0ed5050", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_mdi.py (2061 lines)"}, "properties": {"repobilityId": "8bc18ec6967ee9c6", "scanner": "scanner-primary", "fingerprint": "8b251b6ab0ed5050", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-882f69010c104cec", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/speeddiff_analysis/speeddiff_analysis_chart_widget.py (1839 lines)"}, "properties": {"repobilityId": "15a9d092a7cafbfe", "scanner": "scanner-primary", "fingerprint": "882f69010c104cec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3b52aae5a56cfc30", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py (1741 lines)"}, "properties": {"repobilityId": "0c5295514009e4be", "scanner": "scanner-primary", "fingerprint": "3b52aae5a56cfc30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fc4f8a4ef628839", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_mdi.py (1962 lines)"}, "properties": {"repobilityId": "fa1e3f6cbfcf8ea9", "scanner": "scanner-primary", "fingerprint": "4fc4f8a4ef628839", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f7966683d04a2ba", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/Throttle_analysis/throttle_box_plot_analysis/throttle_box_plot_analysis_mdi.py (1735 lines)"}, "properties": {"repobilityId": "5edafd55ea605b93", "scanner": "scanner-primary", "fingerprint": "7f7966683d04a2ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26be24e2549e9618", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_mdi.py (2076 lines)"}, "properties": {"repobilityId": "309abbeb09d3b290", "scanner": "scanner-primary", "fingerprint": "26be24e2549e9618", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-04bd924a0aca4f77", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/acceleration_analysis/acceleration_analysis_chart_widget.py (1749 lines)"}, "properties": {"repobilityId": "1a16c779a31d2e09", "scanner": "scanner-primary", "fingerprint": "04bd924a0aca4f77", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d222229ee485e07", "level": "note", "message": {"text": "Very large file: modules/gui/lap_analysis/lap_box_plot/lap_box_plot_analysis_mdi.py (1604 lines)"}, "properties": {"repobilityId": "1c5b645abe7df50c", "scanner": "scanner-primary", "fingerprint": "5d222229ee485e07", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47a17eebba8033f2", "level": "note", "message": {"text": "Very large file: modules/gui/diagnostics/objgraph_window.py (1582 lines)"}, "properties": {"repobilityId": "7d32f49af8069f70", "scanner": "scanner-primary", "fingerprint": "47a17eebba8033f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed818186842d75be", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/sector_comparison.py (1315 lines)"}, "properties": {"repobilityId": "63e8ac43950a06c0", "scanner": "scanner-primary", "fingerprint": "ed818186842d75be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-856789729358febd", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/drs_trace.py (1714 lines)"}, "properties": {"repobilityId": "6641eea03d748ead", "scanner": "scanner-primary", "fingerprint": "856789729358febd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a8acd2da7d0de375", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/throttle_trace.py (1706 lines)"}, "properties": {"repobilityId": "56974014388f8bad", "scanner": "scanner-primary", "fingerprint": "a8acd2da7d0de375", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c3d7931324ffabcd", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/rpm_trace.py (1708 lines)"}, "properties": {"repobilityId": "8a167301c8c22190", "scanner": "scanner-primary", "fingerprint": "c3d7931324ffabcd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-19a95fa775e1e41a", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/gear_trace.py (1703 lines)"}, "properties": {"repobilityId": "7bfc14f4cecbb33a", "scanner": "scanner-primary", "fingerprint": "19a95fa775e1e41a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-750df98169da3d50", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/brake_trace.py (1710 lines)"}, "properties": {"repobilityId": "26acf0379b22138f", "scanner": "scanner-primary", "fingerprint": "750df98169da3d50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39ae9875d92f2934", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/ranking_tower.py (1726 lines)"}, "properties": {"repobilityId": "ccb90a558cab873c", "scanner": "scanner-primary", "fingerprint": "39ae9875d92f2934", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6389f611c1d8ba00", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/driver_strategy.py (3789 lines)"}, "properties": {"repobilityId": "5a1e97d9ab7333ea", "scanner": "scanner-primary", "fingerprint": "6389f611c1d8ba00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-853e039f33f180c4", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/sf_percentage_chart.py (1384 lines)"}, "properties": {"repobilityId": "0f097e3e60e96594", "scanner": "scanner-primary", "fingerprint": "853e039f33f180c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ac912d41a1bdc507", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/speed_trace.py (1734 lines)"}, "properties": {"repobilityId": "7097715a3732f78b", "scanner": "scanner-primary", "fingerprint": "ac912d41a1bdc507", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e78d1d4e76087295", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/live_timing_modules/chase_strategy.py (3869 lines)"}, "properties": {"repobilityId": "fc8c155a8f76fca8", "scanner": "scanner-primary", "fingerprint": "e78d1d4e76087295", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8ef751759599f6c", "level": "note", "message": {"text": "Very large file: modules/gui/live_timing/core/data_manager.py (2482 lines)"}, "properties": {"repobilityId": "adb48ba84c06932b", "scanner": "scanner-primary", "fingerprint": "e8ef751759599f6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47de8ce2cb9b93fe", "level": "note", "message": {"text": "Very large file: modules/gui/long_run_analysis/long_run_mdi.py (2691 lines)"}, "properties": {"repobilityId": "33b800074593f10e", "scanner": "scanner-primary", "fingerprint": "47de8ce2cb9b93fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aa8850dbd1f7a3b7", "level": "note", "message": {"text": "Very large file: core/openf1_exact_generators.py (1744 lines)"}, "properties": {"repobilityId": "b1e4d1b7f15af890", "scanner": "scanner-primary", "fingerprint": "aa8850dbd1f7a3b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a733f162810c24d2", "level": "note", "message": {"text": "Very large file: core/gui_i18n.py (3337 lines)"}, "properties": {"repobilityId": "c97090b0c90c4ed3", "scanner": "scanner-primary", "fingerprint": "a733f162810c24d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ec31bd6e05c9022", "level": "note", "message": {"text": "Very large file: core/workspace_serializer.py (2205 lines)"}, "properties": {"repobilityId": "9da4cd7135ee3a7c", "scanner": "scanner-primary", "fingerprint": "6ec31bd6e05c9022", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "12c75274f827795c", "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": "8d74e788bd196365", "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": "20e489caddf9e01f", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "f15238e7718996e0", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "9a4ce56d62c43b3c", "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": "d31dfcc73987f27e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-fc681eae3495da7e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 launch_batch_generator_gui.py:19"}, "properties": {"repobilityId": "e95089ece5fbc0d2", "scanner": "scanner-primary", "fingerprint": "fc681eae3495da7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-766d376022bc1493", "level": "none", "message": {"text": "Commented-code block (6 lines) in f1t_gui_main.py:114"}, "properties": {"repobilityId": "806f41bec2551a08", "scanner": "scanner-primary", "fingerprint": "766d376022bc1493", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d883b3ce9049c9a", "level": "note", "message": {"text": "Stub function `write` (body is just `pass`/`return`) \u2014 f1t_gui_main.py:16"}, "properties": {"repobilityId": "82065f485c4b3449", "scanner": "scanner-primary", "fingerprint": "6d883b3ce9049c9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-2ede5b7816d52609", "level": "none", "message": {"text": "Commented-code block (11 lines) in f1_analysis_modular_main.py:1635"}, "properties": {"repobilityId": "4669b7a176a0f2c6", "scanner": "scanner-primary", "fingerprint": "2ede5b7816d52609", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40efe510de9e8024", "level": "none", "message": {"text": "Commented-code block (9 lines) in CLI_modules/cli/analyzer/all_incidents_summary.py:289"}, "properties": {"repobilityId": "a3177dd98d32d453", "scanner": "scanner-primary", "fingerprint": "40efe510de9e8024", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9768aad29de3afab", "level": "note", "message": {"text": "Legacy-named symbol `_build_url_old` in CLI_modules/cli/analyzer/fia_season_stats_analyzer.py:356"}, "properties": {"repobilityId": "486a7371cec97da9", "scanner": "scanner-primary", "fingerprint": "9768aad29de3afab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-038679a583f757e2", "level": "none", "message": {"text": "Commented-code block (8 lines) in CLI_modules/cli/analyzer/driver_comparison_advanced.py:714"}, "properties": {"repobilityId": "b205ffb2af66ac28", "scanner": "scanner-primary", "fingerprint": "038679a583f757e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7632c6f37bbeda4e", "level": "none", "message": {"text": "Commented-code block (7 lines) in CLI_modules/cli/analyzer/single_driver_detailed_laptime_analysis.py:77"}, "properties": {"repobilityId": "fc90d6ba6279ecff", "scanner": "scanner-primary", "fingerprint": "7632c6f37bbeda4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-920fd8fd5e2c5795", "level": "note", "message": {"text": "Legacy-named symbol `_perform_analysis_legacy` in CLI_modules/cli/analyzer/corner_detailed_analysis.py:188"}, "properties": {"repobilityId": "bff7670dc3e691f2", "scanner": "scanner-primary", "fingerprint": "920fd8fd5e2c5795", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da97a44a32b3f962", "level": "none", "message": {"text": "Commented-code block (5 lines) in CLI_modules/cli/analyzer/live_timing_traffic_distance_analysis.py:168"}, "properties": {"repobilityId": "324e20c758ba7427", "scanner": "scanner-primary", "fingerprint": "da97a44a32b3f962", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43f2b34d5027f075", "level": "note", "message": {"text": "Legacy-named symbol `_get_speed_at_distance_v2` in CLI_modules/cli/analyzer/fp2_corner_all_laps_analysis.py:1153"}, "properties": {"repobilityId": "a2da45048c4cce17", "scanner": "scanner-primary", "fingerprint": "43f2b34d5027f075", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c127f88880884c25", "level": "none", "message": {"text": "Commented-code block (10 lines) in CLI_modules/cli/analyzer/all_drivers_straight_line_speed.py:2356"}, "properties": {"repobilityId": "7016f7e197e4dcda", "scanner": "scanner-primary", "fingerprint": "c127f88880884c25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e04dbe0a7d0799bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in CLI_modules/cli/prediction/xgboost_trainer.py:561"}, "properties": {"repobilityId": "5671bb903b34b108", "scanner": "scanner-primary", "fingerprint": "e04dbe0a7d0799bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8db40bca440171e6", "level": "note", "message": {"text": "Legacy-named symbol `weight_old` in CLI_modules/cli/prediction/tire_degradation_analyzer.py:892"}, "properties": {"repobilityId": "ff7e7aee5db2dd41", "scanner": "scanner-primary", "fingerprint": "8db40bca440171e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fea49ac3de06217c", "level": "note", "message": {"text": "Legacy-named symbol `close_combat_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/close_combat_trainer.py:13"}, "properties": {"repobilityId": "ef5ed4f114b0da4b", "scanner": "scanner-primary", "fingerprint": "fea49ac3de06217c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c5aad2a8676e41ce", "level": "note", "message": {"text": "Legacy-named symbol `overtake_xgb_v1` in CLI_modules/cli/prediction/overtake_prediction/model_trainer.py:13"}, "properties": {"repobilityId": "cd3a45fae2c6ff8d", "scanner": "scanner-primary", "fingerprint": "c5aad2a8676e41ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-07bd6f54e42c4cc5", "level": "note", "message": {"text": "Legacy-named symbol `F1T_JSON_v1` in CLI_modules/cli/core/json_generator.py:108"}, "properties": {"repobilityId": "1a2302c3fc4aa40c", "scanner": "scanner-primary", "fingerprint": "07bd6f54e42c4cc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f623e15ba0e76245", "level": "note", "message": {"text": "Legacy-named symbol `minimal_backup` in CLI_modules/cli/core/function_mapper.py:1712"}, "properties": {"repobilityId": "20e0eff5f159b8d9", "scanner": "scanner-primary", "fingerprint": "f623e15ba0e76245", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bde6278653837b05", "level": "none", "message": {"text": "Commented-code block (24 lines) in CLI_modules/cli/core/function_mapper.py:343"}, "properties": {"repobilityId": "5fab8dea223a5ea3", "scanner": "scanner-primary", "fingerprint": "bde6278653837b05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6fa09de0d16ad9b", "level": "note", "message": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_gui_vs_md.py:37"}, "properties": {"repobilityId": "505bb717aaa14dfe", "scanner": "scanner-primary", "fingerprint": "d6fa09de0d16ad9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fc90d2270b574b56", "level": "note", "message": {"text": "Legacy-named symbol `base_pace_old` in tests/test_f83_cli.py:11"}, "properties": {"repobilityId": "82b8572aa77b8f30", "scanner": "scanner-primary", "fingerprint": "fc90d2270b574b56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-86fcfdd3741f7532", "level": "note", "message": {"text": "Legacy-named symbol `fp2_race_ml_predictor_v2` in tests/test_japan_f91.py:5"}, "properties": {"repobilityId": "0c23f570f59028c8", "scanner": "scanner-primary", "fingerprint": "86fcfdd3741f7532", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-69f99c78217ba5a1", "level": "note", "message": {"text": "Legacy-named symbol `debug_realtime_data_format_v2` in tests/debug_realtime_data_format_v2.py:37"}, "properties": {"repobilityId": "1a6cd3176dfc242e", "scanner": "scanner-primary", "fingerprint": "69f99c78217ba5a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d11d6953cf9dd52b", "level": "note", "message": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/check_model.py:3"}, "properties": {"repobilityId": "549e7e73ff6f75b5", "scanner": "scanner-primary", "fingerprint": "d11d6953cf9dd52b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-416f4f9da4d2d104", "level": "note", "message": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tests/debug_usa_lap30.py:16"}, "properties": {"repobilityId": "f98ad46272afe15c", "scanner": "scanner-primary", "fingerprint": "416f4f9da4d2d104", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-49aec9b128ab067f", "level": "note", "message": {"text": "Legacy-named symbol `result_old` in tests/test_mexico_sc_skip.py:36"}, "properties": {"repobilityId": "7aeb10e7cc1cf95d", "scanner": "scanner-primary", "fingerprint": "49aec9b128ab067f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c711083c7768650c", "level": "note", "message": {"text": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_models.py:4"}, "properties": {"repobilityId": "5d191e5aae9dcf74", "scanner": "scanner-primary", "fingerprint": "c711083c7768650c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-db1a6210dbb1570e", "level": "note", "message": {"text": "Legacy-named symbol `data_file_v2` in tests/test_function_29_v2.py:74"}, "properties": {"repobilityId": "48b1270ea6b65e1a", "scanner": "scanner-primary", "fingerprint": "db1a6210dbb1570e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75866b75e9397edb", "level": "note", "message": {"text": "Legacy-named symbol `fp2_race_ml_v2` in tests/check_model_info.py:5"}, "properties": {"repobilityId": "2a6e2d17cb9bd71e", "scanner": "scanner-primary", "fingerprint": "75866b75e9397edb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-007d3c2fbbaa0126", "level": "note", "message": {"text": "Legacy-named symbol `filepath_v1` in tests/test_red_flag_final_verification.py:157"}, "properties": {"repobilityId": "9059d2737bd8c8e6", "scanner": "scanner-primary", "fingerprint": "007d3c2fbbaa0126", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e199ca16331e80e", "level": "note", "message": {"text": "Legacy-named symbol `fp2_race_ml_training_report_v2` in tests/check_training_report.py:4"}, "properties": {"repobilityId": "7638875431d0808e", "scanner": "scanner-primary", "fingerprint": "6e199ca16331e80e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c5411a4ec474ed35", "level": "note", "message": {"text": "Legacy-named symbol `raw_data_old` in tests/test_throttle_fix.py:37"}, "properties": {"repobilityId": "695d14537a6dff9b", "scanner": "scanner-primary", "fingerprint": "c5411a4ec474ed35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8527f864aa30a62e", "level": "note", "message": {"text": "Legacy-named symbol `_get_speed_at_distance_v2` in tests/test_f120_v2_fix.py:2"}, "properties": {"repobilityId": "7135ea727f37a56b", "scanner": "scanner-primary", "fingerprint": "8527f864aa30a62e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e8079ff0bbb865f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in windows/widgets/popout_subwindow.py:850"}, "properties": {"repobilityId": "f057e679c08918da", "scanner": "scanner-primary", "fingerprint": "e8079ff0bbb865f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6831e92963ee9bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in windows/widgets/standalone_windows.py:103"}, "properties": {"repobilityId": "6833baee0d9780b7", "scanner": "scanner-primary", "fingerprint": "a6831e92963ee9bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ea90840d4dd7485", "level": "none", "message": {"text": "Commented-code block (12 lines) in windows/managers/menubar_builder.py:29"}, "properties": {"repobilityId": "7375e2c026dc12a1", "scanner": "scanner-primary", "fingerprint": "5ea90840d4dd7485", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-787a3048a3f0ae31", "level": "none", "message": {"text": "Commented-code block (8 lines) in windows/managers/lap_analysis_controls_creator.py:80"}, "properties": {"repobilityId": "e0b0b8623aaa953c", "scanner": "scanner-primary", "fingerprint": "787a3048a3f0ae31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d995963b393b0910", "level": "none", "message": {"text": "Commented-code block (8 lines) in windows/managers/api_health_handler.py:81"}, "properties": {"repobilityId": "74f14d1678570e07", "scanner": "scanner-primary", "fingerprint": "d995963b393b0910", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50c92031ae2c9f13", "level": "none", "message": {"text": "Commented-code block (7 lines) in windows/managers/lap_window_opened_handler.py:25"}, "properties": {"repobilityId": "ebc7bd0e16bb6dd1", "scanner": "scanner-primary", "fingerprint": "50c92031ae2c9f13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e68209dd6ad1173", "level": "note", "message": {"text": "Legacy-named symbol `include_deprecated` in api/models/requests.py:226"}, "properties": {"repobilityId": "59ef63261d17e422", "scanner": "scanner-primary", "fingerprint": "1e68209dd6ad1173", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3290e5f76140040a", "level": "note", "message": {"text": "Legacy-named symbol `cache_service_v2` in api/services/cache_service.py:7"}, "properties": {"repobilityId": "c93828291770cb1f", "scanner": "scanner-primary", "fingerprint": "3290e5f76140040a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-597844acf348a20a", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/cache_service.py:188"}, "properties": {"repobilityId": "a74d394fd8d8ef23", "scanner": "scanner-primary", "fingerprint": "597844acf348a20a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deca46eea922c987", "level": "note", "message": {"text": "Legacy-named symbol `cache_service_v2` in api/services/simple_analysis_service.py:34"}, "properties": {"repobilityId": "04d49c1b304b3b2e", "scanner": "scanner-primary", "fingerprint": "deca46eea922c987", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4652c6ebba00dea5", "level": "note", "message": {"text": "Legacy-named symbol `analyze_v2` in api/routers/main.py:47"}, "properties": {"repobilityId": "86967657ace7d256", "scanner": "scanner-primary", "fingerprint": "4652c6ebba00dea5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1b757da48b58109f", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/routers/main.py:210"}, "properties": {"repobilityId": "b5011708d30deb03", "scanner": "scanner-primary", "fingerprint": "1b757da48b58109f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2381d2874a49c23b", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/f1tv_console_extractor.js:1"}, "properties": {"repobilityId": "5e53bca839082894", "scanner": "scanner-primary", "fingerprint": "2381d2874a49c23b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34c1ed811c9dddea", "level": "note", "message": {"text": "Legacy-named symbol `convert_prints_v2` in scripts/convert_prints_v2.py:6"}, "properties": {"repobilityId": "02f97fd9146a10ee", "scanner": "scanner-primary", "fingerprint": "34c1ed811c9dddea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93507554d21300f9", "level": "note", "message": {"text": "Legacy-named symbol `missing_and_unused` in scripts/fix_tr_imports.py:75"}, "properties": {"repobilityId": "208bbc083943c2a0", "scanner": "scanner-primary", "fingerprint": "93507554d21300f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2edbe07056c88061", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/batch_f47_2025_to_mexico.py:135"}, "properties": {"repobilityId": "e7abd4c1c94ef561", "scanner": "scanner-primary", "fingerprint": "2edbe07056c88061", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b84ceaba712dade0", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/periodic_update_service.py:192"}, "properties": {"repobilityId": "74454ef1f8f097a4", "scanner": "scanner-primary", "fingerprint": "b84ceaba712dade0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3120061fe09845d6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/f1tv_extract_cookie.py:258"}, "properties": {"repobilityId": "2628f1cd3e31ae1d", "scanner": "scanner-primary", "fingerprint": "3120061fe09845d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc6074b58c89bb60", "level": "note", "message": {"text": "Legacy-named symbol `ideal_lap_sector_heatmap_widget_old` in scripts/cleanup_gui_modules.py:41"}, "properties": {"repobilityId": "626536b28b407f83", "scanner": "scanner-primary", "fingerprint": "bc6074b58c89bb60", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1452ba349f193acd", "level": "note", "message": {"text": "Legacy-named symbol `analyze_race_gaps_v2` in scripts/dev/analyze_real_race_gaps_v2.py:9"}, "properties": {"repobilityId": "cad3f96c00c0ea34", "scanner": "scanner-primary", "fingerprint": "1452ba349f193acd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2210c130cfa6a2c5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 build_tools/build_exe_gui.py:231"}, "properties": {"repobilityId": "38270a6a36e3412f", "scanner": "scanner-primary", "fingerprint": "2210c130cfa6a2c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ecfe09c5e142303c", "level": "note", "message": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window-XM0152.py:1660"}, "properties": {"repobilityId": "f9e8570d849ef9a5", "scanner": "scanner-primary", "fingerprint": "ecfe09c5e142303c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fd68968f20979fb4", "level": "note", "message": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/gui/main_window.py:1974"}, "properties": {"repobilityId": "776bb8657d4c07e9", "scanner": "scanner-primary", "fingerprint": "fd68968f20979fb4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8594563f010088b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in strategy_simulator/gui/main_window.py:2553"}, "properties": {"repobilityId": "a837f47c47ad00ef", "scanner": "scanner-primary", "fingerprint": "8594563f010088b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07b7219e4eb8452e", "level": "note", "message": {"text": "Legacy-named symbol `_setup_summary_labels_old` in strategy_simulator/gui/results_tabs/full_race_tab.py:301"}, "properties": {"repobilityId": "30de7b52f9a17b9a", "scanner": "scanner-primary", "fingerprint": "07b7219e4eb8452e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a09ccdbe5da5d9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in strategy_simulator/core/race_simulator.py:827"}, "properties": {"repobilityId": "70a85a3f3440bcb2", "scanner": "scanner-primary", "fingerprint": "3a09ccdbe5da5d9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44ebaac858a2b0a9", "level": "note", "message": {"text": "Legacy-named symbol `stints_copy` in strategy_simulator/core/monte_carlo.py:507"}, "properties": {"repobilityId": "ec13b97d5558a062", "scanner": "scanner-primary", "fingerprint": "44ebaac858a2b0a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-001d602a67403ab9", "level": "none", "message": {"text": "Commented-code block (9 lines) in modules/gui/universal_chart_widget.py:181"}, "properties": {"repobilityId": "6e8a78fdec8d24c0", "scanner": "scanner-primary", "fingerprint": "001d602a67403ab9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aae230b25aed8e4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in modules/gui/telemetry_analysis_mdi.py:1797"}, "properties": {"repobilityId": "4ff4fa0336c6470b", "scanner": "scanner-primary", "fingerprint": "aae230b25aed8e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc54276b03397a31", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/race_analysis/accident/accident_analysis_mdi.py:92"}, "properties": {"repobilityId": "abd517ef2407bd29", "scanner": "scanner-primary", "fingerprint": "bc54276b03397a31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-162ce07e656ef37d", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/race_analysis/track/track_map_widget.py:163"}, "properties": {"repobilityId": "daf4d4855f152564", "scanner": "scanner-primary", "fingerprint": "162ce07e656ef37d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8526a9f5236a595", "level": "note", "message": {"text": "Legacy-named symbol `payload_copy` in modules/gui/driver_race/detailed_lap_analysis/driverlap_analysis_mdi.py:945"}, "properties": {"repobilityId": "a94ac674e3d801c3", "scanner": "scanner-primary", "fingerprint": "f8526a9f5236a595", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0966b0b2677b7e77", "level": "note", "message": {"text": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/driver_race/detailed_lap_analysis/detailed_lap_options_dialog.py:34"}, "properties": {"repobilityId": "12f2dbe4a7bd060b", "scanner": "scanner-primary", "fingerprint": "0966b0b2677b7e77", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e0738a428711bfcc", "level": "none", "message": {"text": "Commented-code block (11 lines) in modules/gui/driver_race/lap_box_plot_analysis/lap_box_plot_chart_widget.py:327"}, "properties": {"repobilityId": "1e4196339890ac9c", "scanner": "scanner-primary", "fingerprint": "e0738a428711bfcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2117253093c4464b", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/partupdated_analysis/parts_analysis_mdi.py:256"}, "properties": {"repobilityId": "4c37a8a1617e896e", "scanner": "scanner-primary", "fingerprint": "2117253093c4464b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c6ea05b6b67c84d", "level": "note", "message": {"text": "Stub function `get_current_year` (body is just `pass`/`return`) \u2014 modules/gui/interfaces/base_analysis_module_copy.py:56"}, "properties": {"repobilityId": "cab5fccd9cacd615", "scanner": "scanner-primary", "fingerprint": "5c6ea05b6b67c84d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-30b1815b6165c7dd", "level": "note", "message": {"text": "Stub function `set_gui_language` (body is just `pass`/`return`) \u2014 modules/gui/lap_analysis/ideal_lap/ideal_lap_options_dialog.py:35"}, "properties": {"repobilityId": "72acd8b2c79a7f48", "scanner": "scanner-primary", "fingerprint": "30b1815b6165c7dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-98bd4b3706edcdbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_comparison/ideal_lap_sector_comparison_mdi.py:497"}, "properties": {"repobilityId": "55bceca961c3fe76", "scanner": "scanner-primary", "fingerprint": "98bd4b3706edcdbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b87bcfe145fcbbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/lap_analysis/ideal_lap/ideal_lap_sector_heatmap/ideal_lap_sector_heatmap_mdi.py:623"}, "properties": {"repobilityId": "e94ff4c50f090423", "scanner": "scanner-primary", "fingerprint": "4b87bcfe145fcbbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd0329d1ccf9cce7", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/traffic_timeline_analysis/traffic_timeline_analysis_mdi.py:263"}, "properties": {"repobilityId": "5f650fc66826a6ee", "scanner": "scanner-primary", "fingerprint": "fd0329d1ccf9cce7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77ed99267f3fff1a", "level": "none", "message": {"text": "Commented-code block (13 lines) in modules/gui/lap_analysis/rpm_analysis/rpm_analysis_chart_widget.py:870"}, "properties": {"repobilityId": "583604c07ceb9145", "scanner": "scanner-primary", "fingerprint": "77ed99267f3fff1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b65b35f423ff566", "level": "none", "message": {"text": "Commented-code block (14 lines) in modules/gui/lap_analysis/speed_analysis/straight_line_speed_loader.py:496"}, "properties": {"repobilityId": "c8b6c3de41929de8", "scanner": "scanner-primary", "fingerprint": "6b65b35f423ff566", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eed9605993a67d99", "level": "none", "message": {"text": "Commented-code block (8 lines) in modules/gui/lap_analysis/speed_analysis/speed_analysis_chart_widget.py:97"}, "properties": {"repobilityId": "9f72c0ba66b9d2c3", "scanner": "scanner-primary", "fingerprint": "eed9605993a67d99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2675cbcc359f8117", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_analysis_chart_widget.py:1477"}, "properties": {"repobilityId": "ee24efabc6a32549", "scanner": "scanner-primary", "fingerprint": "2675cbcc359f8117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-460255ee0ce9863c", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/lap_analysis/Throttle_analysis/throttle_line_chart_analysis/throttle_line_chart_mdi.py:508"}, "properties": {"repobilityId": "1df3f54cc4ccfc67", "scanner": "scanner-primary", "fingerprint": "460255ee0ce9863c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3695306580ba111c", "level": "none", "message": {"text": "Commented-code block (11 lines) in modules/gui/lap_analysis/lap_box_plot/lap_box_plot_chart_widget.py:314"}, "properties": {"repobilityId": "0b69e36d7c188570", "scanner": "scanner-primary", "fingerprint": "3695306580ba111c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ae62fe1ac51ba70", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/brake/brake_all_laps_loader.py:402"}, "properties": {"repobilityId": "595bfcaedf8ee183", "scanner": "scanner-primary", "fingerprint": "0ae62fe1ac51ba70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45db4ee15bda4094", "level": "none", "message": {"text": "Commented-code block (14 lines) in modules/gui/all_drivers/brake/brake_performance_loader.py:473"}, "properties": {"repobilityId": "670f5ba206dce34a", "scanner": "scanner-primary", "fingerprint": "45db4ee15bda4094", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d62ad0245260fac", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/brake/all_drivers_brake_performance_table_widget.py:495"}, "properties": {"repobilityId": "ef536df0cf4b179b", "scanner": "scanner-primary", "fingerprint": "2d62ad0245260fac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f7c53315d3aeff6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/all_drivers/max_speed/max_speed_data_loader.py:277"}, "properties": {"repobilityId": "f3857ebdafe6723a", "scanner": "scanner-primary", "fingerprint": "7f7c53315d3aeff6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35dae1e27bd0d24d", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/corner_performance/corner_performance_loader.py:506"}, "properties": {"repobilityId": "d0225a7a3e45a2ea", "scanner": "scanner-primary", "fingerprint": "35dae1e27bd0d24d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9b9fdd2d72cbc8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/all_drivers/corner_performance/corner_performance_scatter_widget.py:576"}, "properties": {"repobilityId": "a212c615816afa67", "scanner": "scanner-primary", "fingerprint": "e9b9fdd2d72cbc8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50886b6bb3d2a23f", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/all_drivers/straight_line_speed/all_drivers_straight_line_speed_table_widget.py:465"}, "properties": {"repobilityId": "058bf98fd3973a7f", "scanner": "scanner-primary", "fingerprint": "50886b6bb3d2a23f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96fb8b14e84cda6e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/diagnostics/objgraph_window.py:1458"}, "properties": {"repobilityId": "4931e01e7fb04d2d", "scanner": "scanner-primary", "fingerprint": "96fb8b14e84cda6e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d5e6167e3fa7c7e3", "level": "note", "message": {"text": "Legacy-named symbol `dynamic_team_rating_v1` in modules/gui/race_prediction/race_prediction_data_loader.py:347"}, "properties": {"repobilityId": "9860d9d82154bf59", "scanner": "scanner-primary", "fingerprint": "d5e6167e3fa7c7e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-42f2b704eb6b266a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modules/gui/tire_analysis/tire_analysis_mdi.py:426"}, "properties": {"repobilityId": "460d1deb5214174e", "scanner": "scanner-primary", "fingerprint": "42f2b704eb6b266a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76f332b1215391d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/simulation_adapter/physics_cloner.py:237"}, "properties": {"repobilityId": "3ec94a03a25f328f", "scanner": "scanner-primary", "fingerprint": "76f332b1215391d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68b1b1fec2834a32", "level": "none", "message": {"text": "Commented-code block (10 lines) in modules/gui/live_timing/live_timing_modules/ranking_tower.py:1446"}, "properties": {"repobilityId": "6d5a61dc47bfa5ba", "scanner": "scanner-primary", "fingerprint": "68b1b1fec2834a32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82609977f31b93e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/driver_strategy.py:2037"}, "properties": {"repobilityId": "a502ad1de0c27f56", "scanner": "scanner-primary", "fingerprint": "82609977f31b93e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c59f639052b5952", "level": "none", "message": {"text": "Commented-code block (5 lines) in modules/gui/live_timing/live_timing_modules/chase_strategy.py:2586"}, "properties": {"repobilityId": "10b08f93ae0d92eb", "scanner": "scanner-primary", "fingerprint": "8c59f639052b5952", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4372c58f2e54e8ff", "level": "none", "message": {"text": "Commented-code block (6 lines) in modules/gui/live_timing/core/data_manager.py:2221"}, "properties": {"repobilityId": "5f7e916d9d6f91be", "scanner": "scanner-primary", "fingerprint": "4372c58f2e54e8ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bd6a35066e08f69", "level": "note", "message": {"text": "Legacy-named symbol `item_copy` in modules/gui/live_timing/core/signalr_client.py:458"}, "properties": {"repobilityId": "91c382b2d828a0e3", "scanner": "scanner-primary", "fingerprint": "4bd6a35066e08f69", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-27d412362994f0de", "level": "note", "message": {"text": "Legacy-named symbol `json_backup` in tools/migrate_json_files.py:53"}, "properties": {"repobilityId": "b096a977dd8ee0a8", "scanner": "scanner-primary", "fingerprint": "27d412362994f0de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be1b08896ec782fe", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing.py:358"}, "properties": {"repobilityId": "dc2296e5c4c34633", "scanner": "scanner-primary", "fingerprint": "be1b08896ec782fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cde5d2c680a74dc9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui_pyspy.py:136"}, "properties": {"repobilityId": "d87276e65038d376", "scanner": "scanner-primary", "fingerprint": "cde5d2c680a74dc9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2694a6a842ef26f7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_live_timing_playback.py:317"}, "properties": {"repobilityId": "9cdab06c316c7550", "scanner": "scanner-primary", "fingerprint": "2694a6a842ef26f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b6bd0d0a2030a59", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/profile_gui.py:286"}, "properties": {"repobilityId": "5f8984b243580e4a", "scanner": "scanner-primary", "fingerprint": "3b6bd0d0a2030a59", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-14c45d684c698422", "level": "note", "message": {"text": "Legacy-named symbol `win_probability_xgb_v2` in tools/win_probability_diagnosis.py:172"}, "properties": {"repobilityId": "5f931c212102ab5b", "scanner": "scanner-primary", "fingerprint": "14c45d684c698422", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d8e42ad2dc3cd6cf", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_copy` in tools/diagnose_playback_lag.py:117"}, "properties": {"repobilityId": "e760c70da6c983e0", "scanner": "scanner-primary", "fingerprint": "d8e42ad2dc3cd6cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b8952473984caa75", "level": "note", "message": {"text": "Stub function `get_current_mdi_area` (body is just `pass`/`return`) \u2014 tools/run_gui_coverage_matrix.py:102"}, "properties": {"repobilityId": "2f0dd7362f17e9c8", "scanner": "scanner-primary", "fingerprint": "b8952473984caa75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8ba4cbeab09ed52f", "level": "none", "message": {"text": "Commented-code block (11 lines) in tools/generate_physics_from_data.py:89"}, "properties": {"repobilityId": "f681808d615e6bec", "scanner": "scanner-primary", "fingerprint": "8ba4cbeab09ed52f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c927738f4a65912", "level": "note", "message": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 core/local_requests.py:41"}, "properties": {"repobilityId": "2e02aa961e210043", "scanner": "scanner-primary", "fingerprint": "2c927738f4a65912", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e04d7ee2d41e709b", "level": "none", "message": {"text": "Commented-code block (7 lines) in core/logger.py:354"}, "properties": {"repobilityId": "c6e00df8ca4196e9", "scanner": "scanner-primary", "fingerprint": "e04d7ee2d41e709b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fd7fc8bec375cd7", "level": "note", "message": {"text": "Legacy-named symbol `openf1_exact_v1` in core/openf1_exact_generators.py:215"}, "properties": {"repobilityId": "5fbc64dfabcb077e", "scanner": "scanner-primary", "fingerprint": "1fd7fc8bec375cd7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4e8072bd188d55d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/workspace_serializer.py:916"}, "properties": {"repobilityId": "8352d0fe69a6ab25", "scanner": "scanner-primary", "fingerprint": "4e8072bd188d55d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3cc9a094ff51ae7f", "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": "bba4944ac2066fbd", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "bca05e4793387b88", "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": "da1ac02c1b595a55", "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": "53e011dcb686a54c", "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": "001c0c305422f9be", "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": "e46cd05c20ebcd3c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "e65b7fc50708ae9a", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "4e80da81bf29ebe3", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "433f596644d48729", "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": "3cb6483fb2fcecc6", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "6330e1d7b1d072cb", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "ba4676e26160a24e", "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": "201cd337e33733c3", "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": "e6bd48a6242da5f2", "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": "7d879452ed4b8a13", "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": "d446030cd631778d", "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": "33dd45e9d185061a", "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": "b04fab3eac58e644", "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": "12678d9fd7c4013a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c99ff5b39f6cde6c", "level": "error", "message": {"text": "FastAPI DELETE `clear_cache` without auth dependency \u2014 api/routers/cache.py:210"}, "properties": {"repobilityId": "9987cde6c30cc90f", "scanner": "scanner-primary", "fingerprint": "c99ff5b39f6cde6c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/cache.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-66a6dec6b56c9e68", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 api/routers/main.py:164"}, "properties": {"repobilityId": "d4c402a98c7dbb5b", "scanner": "scanner-primary", "fingerprint": "66a6dec6b56c9e68", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/main.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-9f6f7fc46efed0f0", "level": "error", "message": {"text": "FastAPI POST `execute_analysis` without auth dependency \u2014 api/routers/analysis.py:434"}, "properties": {"repobilityId": "39668cd2d91c3f1d", "scanner": "scanner-primary", "fingerprint": "9f6f7fc46efed0f0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/analysis.py"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-73d3cf63589db50e", "level": "error", "message": {"text": "FastAPI POST `cross_event_comparison` without auth dependency \u2014 api/routers/analysis.py:573"}, "properties": {"repobilityId": "c1009f10f7b06522", "scanner": "scanner-primary", "fingerprint": "73d3cf63589db50e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/analysis.py"}, "region": {"startLine": 573}}}]}, {"ruleId": "scanner-388d7ce5f171c2c2", "level": "note", "message": {"text": "Unused endpoint: GET /tire-degradation"}, "properties": {"repobilityId": "2e7a2a846233e504", "scanner": "scanner-primary", "fingerprint": "388d7ce5f171c2c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cc0fa28a51196969", "level": "note", "message": {"text": "Unused endpoint: GET /fuel-coefficients"}, "properties": {"repobilityId": "60d4156bcc053bbe", "scanner": "scanner-primary", "fingerprint": "cc0fa28a51196969", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb4dde1f0c2e0a64", "level": "note", "message": {"text": "Unused endpoint: GET /track-features"}, "properties": {"repobilityId": "ac864927b054a144", "scanner": "scanner-primary", "fingerprint": "fb4dde1f0c2e0a64", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf93badd093c72d8", "level": "note", "message": {"text": "Unused endpoint: GET /pit-loss"}, "properties": {"repobilityId": "306f080c48b99a65", "scanner": "scanner-primary", "fingerprint": "bf93badd093c72d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09271af1faa5c0a0", "level": "note", "message": {"text": "Unused endpoint: GET /throttle-baseline"}, "properties": {"repobilityId": "1ebd3d720a5370c0", "scanner": "scanner-primary", "fingerprint": "09271af1faa5c0a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-315cd63fd82c77da", "level": "note", "message": {"text": "Unused endpoint: GET /throttle-baseline/{circuit}"}, "properties": {"repobilityId": "bc32f16a42b7aa10", "scanner": "scanner-primary", "fingerprint": "315cd63fd82c77da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e076826fb3ce3cf9", "level": "note", "message": {"text": "Unused endpoint: GET /strategy-coefficients"}, "properties": {"repobilityId": "78cb382891e714d2", "scanner": "scanner-primary", "fingerprint": "e076826fb3ce3cf9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eddbba258a58d01f", "level": "note", "message": {"text": "Unused endpoint: GET /strategy-coefficients/{circuit}"}, "properties": {"repobilityId": "73289d6d86efe8bd", "scanner": "scanner-primary", "fingerprint": "eddbba258a58d01f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2c3d1d103b19a7f6", "level": "note", "message": {"text": "Unused endpoint: GET /all"}, "properties": {"repobilityId": "ca93d3871af8216e", "scanner": "scanner-primary", "fingerprint": "2c3d1d103b19a7f6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d682e1d215955e6a", "level": "note", "message": {"text": "Unused endpoint: GET /list"}, "properties": {"repobilityId": "e88b08133df511c7", "scanner": "scanner-primary", "fingerprint": "d682e1d215955e6a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d16e4fa529c520e9", "level": "note", "message": {"text": "Unused endpoint: GET /search"}, "properties": {"repobilityId": "9ef6be2e307c5a45", "scanner": "scanner-primary", "fingerprint": "d16e4fa529c520e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6710d3710c9d882c", "level": "note", "message": {"text": "Unused endpoint: GET /files"}, "properties": {"repobilityId": "374d8fe905b6c783", "scanner": "scanner-primary", "fingerprint": "6710d3710c9d882c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-02300358e6ee6fb2", "level": "note", "message": {"text": "Unused endpoint: DELETE /clear"}, "properties": {"repobilityId": "ff7269ab3b9523e6", "scanner": "scanner-primary", "fingerprint": "02300358e6ee6fb2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "4c97c5113a3b2f45", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b338336871125de3", "level": "note", "message": {"text": "Unused endpoint: GET /cache/status"}, "properties": {"repobilityId": "a4f345462c3671f3", "scanner": "scanner-primary", "fingerprint": "b338336871125de3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-860dea186848feb7", "level": "note", "message": {"text": "Unused endpoint: GET /cache/search"}, "properties": {"repobilityId": "2672234e6102cc4c", "scanner": "scanner-primary", "fingerprint": "860dea186848feb7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fca11d494725d7c3", "level": "note", "message": {"text": "Unused endpoint: POST /analyze"}, "properties": {"repobilityId": "043068625482734f", "scanner": "scanner-primary", "fingerprint": "fca11d494725d7c3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8ac683324fe08af", "level": "note", "message": {"text": "Unused endpoint: GET /functions"}, "properties": {"repobilityId": "5dcb63fbbb80a86c", "scanner": "scanner-primary", "fingerprint": "e8ac683324fe08af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-25d2ca63197cd1e9", "level": "note", "message": {"text": "Unused endpoint: POST /execute"}, "properties": {"repobilityId": "15fb3ad0bfabcd8b", "scanner": "scanner-primary", "fingerprint": "25d2ca63197cd1e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-edbfdf5ee92c427c", "level": "note", "message": {"text": "Unused endpoint: POST /cross-event-comparison"}, "properties": {"repobilityId": "ad69431531a3aa82", "scanner": "scanner-primary", "fingerprint": "edbfdf5ee92c427c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-200dd038e8143a2f", "level": "note", "message": {"text": "Unused endpoint: GET /monitor/status"}, "properties": {"repobilityId": "f3c12a53db961d17", "scanner": "scanner-primary", "fingerprint": "200dd038e8143a2f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}