From 9a9238892d90a075660fef265cd24daaf77bffd9 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Thu, 18 Jun 2026 09:41:33 -0400 Subject: [PATCH] docs(reports): Phase 12.4+12.5 - re-run audit; triage findings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 12.4: re-run audit_exception_handling.py with Heuristic #19 removed and Heuristic D added. Total sites: 403. - INTERNAL_BROAD_CATCH: 134 - INTERNAL_SILENT_SWALLOW: 46 (was logged as INTERNAL_COMPLIANT under #19) - INTERNAL_RETHROW: 30 - INTERNAL_PROGRAMMER_RAISE: 29 - INTERNAL_COMPLIANT: 93 - UNCLEAR: 20 - BOUNDARY_SDK: 19 - BOUNDARY_FASTAPI: 15 - BOUNDARY_CONVERSION: 12 - INTERNAL_OPTIONAL_RETURN: 5 Phase 12.5: triage per file. Generated docs/reports/PHASE12_TRIAGE_20260617.md. Top files by violations: - src/mcp_client.py: 46 (sub-track 3 scope, NOT sub-track 2) - src/app_controller.py: 45 (sub-track 3 scope) - src/gui_2.py: 42 (sub-track 4 scope) - src/ai_client.py: 33 (baseline; not migration target) - src/api_hooks.py: 16 (sub-track 2; 12.6.1) - src/rag_engine.py: 9 (baseline; not migration target) - src/multi_agent_conductor.py: 4 (sub-track 2; 12.6.9) - src/aggregate.py: 4 (sub-track 2; small file) - src/shell_runner.py: 3 (sub-track 2; 12.6.11) - src/warmup.py: 2 (verify Phase 11; 12.6.2) - src/project_manager.py: 2 (verify Phase 11; 12.6.6) - src/session_logger.py: 2 (sub-track 2; 12.6.12) - src/models.py: 2 (sub-track 2; 12.6.8) - src/orchestrator_pm.py: 1 (verify Phase 11; 12.6.5) The 16 api_hooks.py sites are HTTP handler sub-functions where the except body swallows exceptions and returns an empty fallback payload. The actual HTTP response (self.send_response(200)) happens AFTER the try/except, not inside the except body. Heuristic D.1 doesn't match because the send_response is outside the except block. These sites need full Result[T] migration: controller methods return Result[dict], except body converts exception to ErrorInfo, HTTP handler checks result.ok and returns 4xx/5xx on failure. L451/L824/L914 are different — they call self.send_response(500) INSIDE the except body (drain point pattern). 13 other sites are silent fallbacks. --- .../PHASE12_AUDIT_POST_FIX_20260617.json | 2969 +++++++++++++++++ docs/reports/PHASE12_TRIAGE_20260617.md | 421 +++ .../phase12_triage.py | 94 + .../show_api_hooks.py | 13 + 4 files changed, 3497 insertions(+) create mode 100644 docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json create mode 100644 docs/reports/PHASE12_TRIAGE_20260617.md create mode 100644 scripts/tier2/artifacts/result_migration_small_files_20260617/phase12_triage.py create mode 100644 scripts/tier2/artifacts/result_migration_small_files_20260617/show_api_hooks.py diff --git a/docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json b/docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json new file mode 100644 index 00000000..73a77960 --- /dev/null +++ b/docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json @@ -0,0 +1,2969 @@ +{ + "refactored_baseline_files": [ + "src/ai_client.py", + "src/mcp_client.py", + "src/rag_engine.py" + ], + "files_scanned": 65, + "files_with_findings": 42, + "total_sites": 403, + "by_kind": { + "EXCEPT": 323, + "RAISE": 67, + "TRY": 13 + }, + "compliant_sites": 168, + "suspicious_sites": 30, + "violation_sites": 185, + "unclear_sites": 20, + "by_category": { + "INTERNAL_BROAD_CATCH": 134, + "INTERNAL_COMPLIANT": 93, + "INTERNAL_SILENT_SWALLOW": 46, + "INTERNAL_RETHROW": 30, + "INTERNAL_PROGRAMMER_RAISE": 29, + "UNCLEAR": 20, + "BOUNDARY_SDK": 19, + "BOUNDARY_FASTAPI": 15, + "BOUNDARY_CONVERSION": 12, + "INTERNAL_OPTIONAL_RETURN": 5 + }, + "violations_by_category": { + "INTERNAL_BROAD_CATCH": 134, + "INTERNAL_SILENT_SWALLOW": 46, + "INTERNAL_OPTIONAL_RETURN": 5 + }, + "baseline": { + "file_count": 3, + "sites": 129, + "violations": 77 + }, + "migration_target": { + "sites": 274, + "violations": 108 + }, + "files": [ + { + "filename": "src\\mcp_client.py", + "in_refactored_baseline": true, + "violation_count": 45, + "compliant_count": 9, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 126, + "kind": "EXCEPT", + "context": "configure", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 152, + "kind": "EXCEPT", + "context": "_is_allowed", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 171, + "kind": "EXCEPT", + "context": "_is_allowed", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 177, + "kind": "EXCEPT", + "context": "_is_allowed", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 191, + "kind": "EXCEPT", + "context": "_resolve_and_check", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 229, + "kind": "EXCEPT", + "context": "search_files", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 254, + "kind": "EXCEPT", + "context": "list_directory", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 266, + "kind": "EXCEPT", + "context": "read_file", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 276, + "kind": "EXCEPT", + "context": "_resolve_and_check_result", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 307, + "kind": "EXCEPT", + "context": "read_file_result", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 335, + "kind": "EXCEPT", + "context": "list_directory_result", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 363, + "kind": "EXCEPT", + "context": "search_files_result", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 395, + "kind": "EXCEPT", + "context": "edit_file", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 414, + "kind": "EXCEPT", + "context": "get_file_summary", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 430, + "kind": "EXCEPT", + "context": "get_file_slice", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 451, + "kind": "EXCEPT", + "context": "set_file_slice", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 471, + "kind": "EXCEPT", + "context": "get_git_diff", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 473, + "kind": "EXCEPT", + "context": "get_git_diff", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 492, + "kind": "EXCEPT", + "context": "ts_c_get_skeleton", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 509, + "kind": "EXCEPT", + "context": "ts_c_get_code_outline", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 523, + "kind": "EXCEPT", + "context": "ts_c_get_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 537, + "kind": "EXCEPT", + "context": "ts_c_get_signature", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 555, + "kind": "EXCEPT", + "context": "ts_c_update_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 576, + "kind": "EXCEPT", + "context": "ts_cpp_get_skeleton", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 593, + "kind": "EXCEPT", + "context": "ts_cpp_get_code_outline", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 610, + "kind": "EXCEPT", + "context": "ts_cpp_get_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 624, + "kind": "EXCEPT", + "context": "ts_cpp_get_signature", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 645, + "kind": "EXCEPT", + "context": "ts_cpp_update_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 695, + "kind": "EXCEPT", + "context": "py_get_skeleton", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 713, + "kind": "EXCEPT", + "context": "py_get_code_outline", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 739, + "kind": "EXCEPT", + "context": "py_get_symbol_info", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 768, + "kind": "EXCEPT", + "context": "py_get_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 788, + "kind": "EXCEPT", + "context": "py_update_definition", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 818, + "kind": "EXCEPT", + "context": "py_get_signature", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 843, + "kind": "EXCEPT", + "context": "py_set_signature", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 872, + "kind": "EXCEPT", + "context": "py_get_class_summary", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 893, + "kind": "EXCEPT", + "context": "py_get_var_declaration", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 913, + "kind": "EXCEPT", + "context": "py_set_var_declaration", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 936, + "kind": "EXCEPT", + "context": "_search_file", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 951, + "kind": "EXCEPT", + "context": "py_find_usages", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 974, + "kind": "EXCEPT", + "context": "py_get_imports", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 987, + "kind": "EXCEPT", + "context": "py_check_syntax", + "category": "UNCLEAR" + }, + { + "line": 989, + "kind": "EXCEPT", + "context": "py_check_syntax", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1012, + "kind": "EXCEPT", + "context": "_search_file", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1026, + "kind": "EXCEPT", + "context": "py_get_hierarchy", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1047, + "kind": "EXCEPT", + "context": "py_get_docstring", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1071, + "kind": "EXCEPT", + "context": "derive_code_path", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1106, + "kind": "EXCEPT", + "context": "trace", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1126, + "kind": "EXCEPT", + "context": "_build_tree", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1140, + "kind": "EXCEPT", + "context": "get_tree", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1223, + "kind": "EXCEPT", + "context": "web_search", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1249, + "kind": "EXCEPT", + "context": "fetch_url", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1268, + "kind": "EXCEPT", + "context": "get_ui_performance", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1311, + "kind": "EXCEPT", + "context": "stop", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1316, + "kind": "EXCEPT", + "context": "stop", + "category": "INTERNAL_SILENT_SWALLOW" + } + ] + }, + { + "filename": "src\\app_controller.py", + "in_refactored_baseline": false, + "violation_count": 41, + "compliant_count": 22, + "suspicious_count": 4, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 96, + "kind": "RAISE", + "context": "_api_get_key", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 99, + "kind": "RAISE", + "context": "_api_get_key", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 213, + "kind": "RAISE", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 215, + "kind": "RAISE", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 239, + "kind": "EXCEPT", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 253, + "kind": "EXCEPT", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 285, + "kind": "RAISE", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 309, + "kind": "EXCEPT", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 312, + "kind": "RAISE", + "context": "_api_generate", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 320, + "kind": "RAISE", + "context": "_api_stream", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 341, + "kind": "RAISE", + "context": "_api_confirm_action", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 369, + "kind": "RAISE", + "context": "_api_get_session", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 380, + "kind": "RAISE", + "context": "_api_delete_session", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 401, + "kind": "EXCEPT", + "context": "_api_get_context", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 402, + "kind": "RAISE", + "context": "_api_get_context", + "category": "BOUNDARY_FASTAPI" + }, + { + "line": 537, + "kind": "EXCEPT", + "context": "_handle_custom_callback", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 579, + "kind": "EXCEPT", + "context": "_handle_click", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 751, + "kind": "EXCEPT", + "context": "_on_sigint", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 756, + "kind": "EXCEPT", + "context": "_install_sigint_exit_handler", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1224, + "kind": "RAISE", + "context": "__getattr__", + "category": "INTERNAL_RETHROW" + }, + { + "line": 1250, + "kind": "RAISE", + "context": "__getattr__", + "category": "INTERNAL_RETHROW" + }, + { + "line": 1293, + "kind": "EXCEPT", + "context": "mark_first_frame_rendered", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1357, + "kind": "EXCEPT", + "context": "cold_start_ts", + "category": "INTERNAL_OPTIONAL_RETURN" + }, + { + "line": 1375, + "kind": "EXCEPT", + "context": "_on_warmup_complete_for_timeline", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1419, + "kind": "EXCEPT", + "context": "_update_inject_preview", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1479, + "kind": "EXCEPT", + "context": "_do_rag_sync", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1565, + "kind": "EXCEPT", + "context": "mcp_config_json", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1668, + "kind": "EXCEPT", + "context": "_process_pending_gui_tasks", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1842, + "kind": "EXCEPT", + "context": "init_state", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1946, + "kind": "EXCEPT", + "context": "replace_ref", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2045, + "kind": "EXCEPT", + "context": "cb_load_prior_log", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2065, + "kind": "EXCEPT", + "context": "cb_load_prior_log", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2067, + "kind": "EXCEPT", + "context": "cb_load_prior_log", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2080, + "kind": "EXCEPT", + "context": "cb_load_prior_log", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2128, + "kind": "EXCEPT", + "context": "run_manual_prune", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2139, + "kind": "EXCEPT", + "context": "_load_active_project", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2153, + "kind": "EXCEPT", + "context": "_load_active_project", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2194, + "kind": "EXCEPT", + "context": "run_prune", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2388, + "kind": "EXCEPT", + "context": "queue_fallback", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 2762, + "kind": "TRY", + "context": "_do_project_switch", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2766, + "kind": "EXCEPT", + "context": "_do_project_switch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2778, + "kind": "EXCEPT", + "context": "_do_project_switch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2889, + "kind": "EXCEPT", + "context": "_refresh_from_project", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2943, + "kind": "EXCEPT", + "context": "_save_active_project", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2982, + "kind": "RAISE", + "context": "load_context_preset", + "category": "INTERNAL_RETHROW" + }, + { + "line": 2985, + "kind": "RAISE", + "context": "load_context_preset", + "category": "INTERNAL_RETHROW" + }, + { + "line": 3056, + "kind": "EXCEPT", + "context": "_run", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3083, + "kind": "EXCEPT", + "context": "do_fetch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3093, + "kind": "EXCEPT", + "context": "do_fetch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3123, + "kind": "RAISE", + "context": "_cb_save_preset", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 3290, + "kind": "EXCEPT", + "context": "do_post", + "category": "BOUNDARY_SDK" + }, + { + "line": 3312, + "kind": "EXCEPT", + "context": "do_post", + "category": "BOUNDARY_SDK" + }, + { + "line": 3433, + "kind": "EXCEPT", + "context": "worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3470, + "kind": "EXCEPT", + "context": "worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3541, + "kind": "EXCEPT", + "context": "worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3634, + "kind": "EXCEPT", + "context": "_handle_request_event", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3647, + "kind": "EXCEPT", + "context": "_handle_request_event", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3743, + "kind": "EXCEPT", + "context": "_on_ai_stream", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 4069, + "kind": "EXCEPT", + "context": "_bg_task", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4097, + "kind": "EXCEPT", + "context": "_bg_task", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 4099, + "kind": "EXCEPT", + "context": "_bg_task", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4191, + "kind": "EXCEPT", + "context": "_start_track_logic", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 4236, + "kind": "EXCEPT", + "context": "_start_track_logic", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4348, + "kind": "EXCEPT", + "context": "_cb_run_conductor_setup", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4445, + "kind": "EXCEPT", + "context": "_cb_load_track", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4474, + "kind": "EXCEPT", + "context": "_push_mma_state_update", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4503, + "kind": "EXCEPT", + "context": "_load_active_tickets", + "category": "INTERNAL_BROAD_CATCH" + } + ] + }, + { + "filename": "src\\gui_2.py", + "in_refactored_baseline": false, + "violation_count": 38, + "compliant_count": 12, + "suspicious_count": 2, + "unclear_count": 2, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 65, + "kind": "EXCEPT", + "context": "_resolve", + "category": "UNCLEAR" + }, + { + "line": 69, + "kind": "EXCEPT", + "context": "_resolve", + "category": "UNCLEAR" + }, + { + "line": 216, + "kind": "EXCEPT", + "context": "_detect_refresh_rate_win32", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 241, + "kind": "EXCEPT", + "context": "_resolve_font_path", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 567, + "kind": "EXCEPT", + "context": "_post_init", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 591, + "kind": "EXCEPT", + "context": "_diag_layout_state", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 684, + "kind": "EXCEPT", + "context": "run", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 731, + "kind": "EXCEPT", + "context": "_load_fonts", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 742, + "kind": "EXCEPT", + "context": "_load_fonts", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 757, + "kind": "RAISE", + "context": "__getattr__", + "category": "INTERNAL_RETHROW" + }, + { + "line": 760, + "kind": "RAISE", + "context": "__getattr__", + "category": "INTERNAL_RETHROW" + }, + { + "line": 806, + "kind": "EXCEPT", + "context": "_get_active_capabilities", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 865, + "kind": "TRY", + "context": "_apply_snapshot", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 905, + "kind": "EXCEPT", + "context": "_capture_workspace_profile", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 979, + "kind": "EXCEPT", + "context": "shutdown", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1079, + "kind": "EXCEPT", + "context": "_gui_func", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1123, + "kind": "EXCEPT", + "context": "_gui_func", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1172, + "kind": "EXCEPT", + "context": "_show_menus", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1198, + "kind": "EXCEPT", + "context": "_show_menus", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1223, + "kind": "EXCEPT", + "context": "_show_menus", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1285, + "kind": "EXCEPT", + "context": "_handle_history_logic", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1335, + "kind": "EXCEPT", + "context": "_populate_auto_slices", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1344, + "kind": "EXCEPT", + "context": "_populate_auto_slices", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1349, + "kind": "EXCEPT", + "context": "_populate_auto_slices", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1385, + "kind": "TRY", + "context": "_stats_worker", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1398, + "kind": "EXCEPT", + "context": "_close_vscode_diff", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1418, + "kind": "EXCEPT", + "context": "_apply_pending_patch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1444, + "kind": "EXCEPT", + "context": "_open_patch_in_external_editor", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1479, + "kind": "EXCEPT", + "context": "request_patch_from_tier4", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1613, + "kind": "EXCEPT", + "context": "render_main_interface", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 2402, + "kind": "EXCEPT", + "context": "render_rag_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2412, + "kind": "EXCEPT", + "context": "render_rag_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2534, + "kind": "EXCEPT", + "context": "render_agent_tools_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2562, + "kind": "EXCEPT", + "context": "render_agent_tools_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2760, + "kind": "EXCEPT", + "context": "render_persona_selector_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 3201, + "kind": "EXCEPT", + "context": "render_tool_preset_manager_content", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3436, + "kind": "EXCEPT", + "context": "render_persona_editor_window", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3620, + "kind": "EXCEPT", + "context": "render_context_batch_actions", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3756, + "kind": "EXCEPT", + "context": "render_ast_inspector_modal", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 3783, + "kind": "EXCEPT", + "context": "render_ast_inspector_modal", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4108, + "kind": "EXCEPT", + "context": "render_context_files_table", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 4161, + "kind": "EXCEPT", + "context": "render_context_presets", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 4405, + "kind": "EXCEPT", + "context": "worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 4823, + "kind": "EXCEPT", + "context": "_on_warmup_complete_callback", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 4836, + "kind": "EXCEPT", + "context": "render_warmup_status_indicator", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 5417, + "kind": "EXCEPT", + "context": "render_operations_hub", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 5544, + "kind": "EXCEPT", + "context": "render_response_panel", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 5826, + "kind": "EXCEPT", + "context": "render_text_viewer_window", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 5960, + "kind": "EXCEPT", + "context": "render_external_editor_panel", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 6807, + "kind": "EXCEPT", + "context": "render_tier_stream_panel", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 6832, + "kind": "EXCEPT", + "context": "render_tier_stream_panel", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 7142, + "kind": "EXCEPT", + "context": "render_task_dag_panel", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 7158, + "kind": "EXCEPT", + "context": "render_task_dag_panel", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 7248, + "kind": "EXCEPT", + "context": "render_beads_tab", + "category": "INTERNAL_BROAD_CATCH" + } + ] + }, + { + "filename": "src\\ai_client.py", + "in_refactored_baseline": true, + "violation_count": 26, + "compliant_count": 26, + "suspicious_count": 7, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 276, + "kind": "EXCEPT", + "context": "_load_credentials", + "category": "BOUNDARY_SDK" + }, + { + "line": 277, + "kind": "RAISE", + "context": "_load_credentials", + "category": "INTERNAL_RETHROW" + }, + { + "line": 302, + "kind": "EXCEPT", + "context": "_classify_anthropic_error", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 314, + "kind": "EXCEPT", + "context": "_classify_gemini_error", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 332, + "kind": "EXCEPT", + "context": "_classify_deepseek_error", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 355, + "kind": "EXCEPT", + "context": "_classify_minimax_error", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 394, + "kind": "EXCEPT", + "context": "set_provider", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 414, + "kind": "EXCEPT", + "context": "cleanup", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 432, + "kind": "EXCEPT", + "context": "reset_session", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 520, + "kind": "EXCEPT", + "context": "set_tool_preset", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 537, + "kind": "EXCEPT", + "context": "set_bias_profile", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 716, + "kind": "EXCEPT", + "context": "_execute_tool_calls_concurrently", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 723, + "kind": "EXCEPT", + "context": "_execute_tool_calls_concurrently", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 801, + "kind": "RAISE", + "context": "_default_send", + "category": "INTERNAL_RETHROW" + }, + { + "line": 802, + "kind": "RAISE", + "context": "_default_send", + "category": "INTERNAL_RETHROW" + }, + { + "line": 828, + "kind": "EXCEPT", + "context": "run_with_tool_loop", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 994, + "kind": "EXCEPT", + "context": "_reread_file_items", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1233, + "kind": "EXCEPT", + "context": "_list_anthropic_models", + "category": "BOUNDARY_SDK" + }, + { + "line": 1234, + "kind": "RAISE", + "context": "_list_anthropic_models", + "category": "INTERNAL_RETHROW" + }, + { + "line": 1437, + "kind": "EXCEPT", + "context": "_send_anthropic", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1488, + "kind": "EXCEPT", + "context": "_send_anthropic", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1528, + "kind": "EXCEPT", + "context": "_list_gemini_models", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1529, + "kind": "RAISE", + "context": "_list_gemini_models", + "category": "INTERNAL_RETHROW" + }, + { + "line": 1555, + "kind": "EXCEPT", + "context": "_extract_gemini_thoughts", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 1599, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1611, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1636, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1657, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1777, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1809, + "kind": "EXCEPT", + "context": "_send_gemini", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1854, + "kind": "EXCEPT", + "context": "_send", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 1856, + "kind": "RAISE", + "context": "_send", + "category": "INTERNAL_RETHROW" + }, + { + "line": 1896, + "kind": "EXCEPT", + "context": "_pre_dispatch", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1926, + "kind": "EXCEPT", + "context": "_send_gemini_cli", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1989, + "kind": "RAISE", + "context": "_send_deepseek", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 2071, + "kind": "EXCEPT", + "context": "_send_deepseek", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2125, + "kind": "EXCEPT", + "context": "_send_deepseek", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2184, + "kind": "EXCEPT", + "context": "_send_deepseek", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2222, + "kind": "EXCEPT", + "context": "_send_deepseek", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2242, + "kind": "EXCEPT", + "context": "_list_minimax_models", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 2299, + "kind": "RAISE", + "context": "_ensure_minimax_client", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 2310, + "kind": "RAISE", + "context": "_ensure_grok_client", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 2391, + "kind": "EXCEPT", + "context": "_send_grok", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2473, + "kind": "EXCEPT", + "context": "_send_minimax", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2487, + "kind": "RAISE", + "context": "_ensure_qwen_client", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 2520, + "kind": "RAISE", + "context": "_dashscope_call", + "category": "INTERNAL_RETHROW" + }, + { + "line": 2617, + "kind": "EXCEPT", + "context": "_send_qwen", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2711, + "kind": "EXCEPT", + "context": "_send_llama", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2799, + "kind": "EXCEPT", + "context": "_send_llama_native", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2813, + "kind": "EXCEPT", + "context": "_get_llama_cost_tracking", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 2848, + "kind": "EXCEPT", + "context": "run_tier4_analysis", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2867, + "kind": "EXCEPT", + "context": "run_tier4_patch_callback", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2898, + "kind": "EXCEPT", + "context": "run_tier4_patch_generation", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 2914, + "kind": "EXCEPT", + "context": "get_token_stats", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 2922, + "kind": "EXCEPT", + "context": "get_token_stats", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 3057, + "kind": "EXCEPT", + "context": "send", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 3082, + "kind": "EXCEPT", + "context": "", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 3133, + "kind": "EXCEPT", + "context": "run_subagent_summarization", + "category": "BOUNDARY_SDK" + }, + { + "line": 3174, + "kind": "EXCEPT", + "context": "run_discussion_compression", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\api_hooks.py", + "in_refactored_baseline": false, + "violation_count": 13, + "compliant_count": 8, + "suspicious_count": 2, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 213, + "kind": "TRY", + "context": "get_val", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 244, + "kind": "TRY", + "context": "get_mma", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 279, + "kind": "TRY", + "context": "check_all", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 294, + "kind": "EXCEPT", + "context": "check_all", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 313, + "kind": "TRY", + "context": "get_state", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 387, + "kind": "EXCEPT", + "context": "do_GET", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 404, + "kind": "EXCEPT", + "context": "do_GET", + "category": "UNCLEAR" + }, + { + "line": 410, + "kind": "EXCEPT", + "context": "do_GET", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 428, + "kind": "EXCEPT", + "context": "do_GET", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 442, + "kind": "EXCEPT", + "context": "do_GET", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 451, + "kind": "EXCEPT", + "context": "do_GET", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 516, + "kind": "TRY", + "context": "get_val", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 561, + "kind": "EXCEPT", + "context": "trigger_patch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 592, + "kind": "EXCEPT", + "context": "apply_patch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 620, + "kind": "EXCEPT", + "context": "reject_patch", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 719, + "kind": "EXCEPT", + "context": "spawn_worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 739, + "kind": "EXCEPT", + "context": "kill_worker", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 793, + "kind": "EXCEPT", + "context": "mutate_dag", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 810, + "kind": "EXCEPT", + "context": "approve_ticket", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 824, + "kind": "EXCEPT", + "context": "do_POST", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 912, + "kind": "EXCEPT", + "context": "_handler", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 914, + "kind": "EXCEPT", + "context": "_handler", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 936, + "kind": "EXCEPT", + "context": "main", + "category": "INTERNAL_RETHROW" + }, + { + "line": 939, + "kind": "RAISE", + "context": "main", + "category": "INTERNAL_RETHROW" + } + ] + }, + { + "filename": "src\\rag_engine.py", + "in_refactored_baseline": true, + "violation_count": 6, + "compliant_count": 6, + "suspicious_count": 3, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 29, + "kind": "EXCEPT", + "context": "_get_sentence_transformers", + "category": "INTERNAL_RETHROW" + }, + { + "line": 31, + "kind": "RAISE", + "context": "_get_sentence_transformers", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 32, + "kind": "RAISE", + "context": "_get_sentence_transformers", + "category": "INTERNAL_RETHROW" + }, + { + "line": 33, + "kind": "EXCEPT", + "context": "_get_sentence_transformers", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 36, + "kind": "RAISE", + "context": "_get_sentence_transformers", + "category": "INTERNAL_RETHROW" + }, + { + "line": 57, + "kind": "RAISE", + "context": "embed", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 75, + "kind": "RAISE", + "context": "embed", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 80, + "kind": "RAISE", + "context": "embed", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 109, + "kind": "RAISE", + "context": "_init_embedding_provider", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 165, + "kind": "EXCEPT", + "context": "_validate_collection_dim_result", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 224, + "kind": "EXCEPT", + "context": "_chunk_code", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 247, + "kind": "EXCEPT", + "context": "index_file", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 255, + "kind": "EXCEPT", + "context": "index_file", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 261, + "kind": "EXCEPT", + "context": "index_file", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 290, + "kind": "EXCEPT", + "context": "_async_search_mcp", + "category": "INTERNAL_BROAD_CATCH" + } + ] + }, + { + "filename": "src\\multi_agent_conductor.py", + "in_refactored_baseline": false, + "violation_count": 3, + "compliant_count": 4, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 74, + "kind": "TRY", + "context": "wrapper", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 234, + "kind": "EXCEPT", + "context": "parse_json_tickets", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 236, + "kind": "EXCEPT", + "context": "parse_json_tickets", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 317, + "kind": "EXCEPT", + "context": "run", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 468, + "kind": "EXCEPT", + "context": "run_worker_lifecycle", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 518, + "kind": "EXCEPT", + "context": "run_worker_lifecycle", + "category": "UNCLEAR" + }, + { + "line": 590, + "kind": "TRY", + "context": "run_worker_lifecycle", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 636, + "kind": "EXCEPT", + "context": "run_worker_lifecycle", + "category": "INTERNAL_SILENT_SWALLOW" + } + ] + }, + { + "filename": "src\\theme_models.py", + "in_refactored_baseline": false, + "violation_count": 2, + "compliant_count": 7, + "suspicious_count": 1, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 120, + "kind": "RAISE", + "context": "__post_init__", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 145, + "kind": "RAISE", + "context": "from_dict", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 150, + "kind": "RAISE", + "context": "from_dict", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 166, + "kind": "RAISE", + "context": "load_theme_file", + "category": "INTERNAL_RETHROW" + }, + { + "line": 170, + "kind": "EXCEPT", + "context": "load_theme_file", + "category": "BOUNDARY_SDK" + }, + { + "line": 171, + "kind": "RAISE", + "context": "load_theme_file", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 173, + "kind": "RAISE", + "context": "load_theme_file", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 190, + "kind": "EXCEPT", + "context": "load_themes_from_dir", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 204, + "kind": "EXCEPT", + "context": "load_themes_from_toml", + "category": "BOUNDARY_SDK" + }, + { + "line": 217, + "kind": "EXCEPT", + "context": "load_themes_from_toml", + "category": "INTERNAL_SILENT_SWALLOW" + } + ] + }, + { + "filename": "src\\external_editor.py", + "in_refactored_baseline": false, + "violation_count": 2, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 47, + "kind": "EXCEPT", + "context": "launch_diff", + "category": "INTERNAL_OPTIONAL_RETURN" + }, + { + "line": 56, + "kind": "EXCEPT", + "context": "launch_editor", + "category": "INTERNAL_OPTIONAL_RETURN" + }, + { + "line": 83, + "kind": "EXCEPT", + "context": "_find_vscode_in_registry", + "category": "BOUNDARY_CONVERSION" + } + ] + }, + { + "filename": "src\\presets.py", + "in_refactored_baseline": false, + "violation_count": 2, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 35, + "kind": "EXCEPT", + "context": "load_all", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 44, + "kind": "EXCEPT", + "context": "load_all", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 57, + "kind": "RAISE", + "context": "save_preset", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 110, + "kind": "EXCEPT", + "context": "_load_file", + "category": "BOUNDARY_SDK" + }, + { + "line": 119, + "kind": "RAISE", + "context": "_save_file", + "category": "INTERNAL_PROGRAMMER_RAISE" + } + ] + }, + { + "filename": "src\\warmup.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 2, + "suspicious_count": 1, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 96, + "kind": "RAISE", + "context": "submit", + "category": "INTERNAL_RETHROW" + }, + { + "line": 185, + "kind": "EXCEPT", + "context": "_warmup_one", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 319, + "kind": "EXCEPT", + "context": "_log_stderr", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 337, + "kind": "EXCEPT", + "context": "_fire_callback", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\aggregate.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 3, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 52, + "kind": "EXCEPT", + "context": "is_absolute_with_drive", + "category": "UNCLEAR" + }, + { + "line": 106, + "kind": "EXCEPT", + "context": "compute_file_stats", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 108, + "kind": "EXCEPT", + "context": "compute_file_stats", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 270, + "kind": "EXCEPT", + "context": "build_file_items", + "category": "INTERNAL_BROAD_CATCH" + }, + { + "line": 273, + "kind": "EXCEPT", + "context": "build_file_items", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 277, + "kind": "EXCEPT", + "context": "build_file_items", + "category": "UNCLEAR" + }, + { + "line": 449, + "kind": "EXCEPT", + "context": "build_tier3_context", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\command_palette.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 41, + "kind": "RAISE", + "context": "register", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 120, + "kind": "EXCEPT", + "context": "_execute", + "category": "INTERNAL_SILENT_SWALLOW" + } + ] + }, + { + "filename": "src\\markdown_helper.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 0, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 123, + "kind": "EXCEPT", + "context": "_on_open_link", + "category": "INTERNAL_SILENT_SWALLOW" + }, + { + "line": 200, + "kind": "EXCEPT", + "context": "render", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\orchestrator_pm.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 39, + "kind": "EXCEPT", + "context": "get_track_history_summary", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 51, + "kind": "EXCEPT", + "context": "get_track_history_summary", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 85, + "kind": "TRY", + "context": "generate_tracks", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 113, + "kind": "EXCEPT", + "context": "generate_tracks", + "category": "INTERNAL_BROAD_CATCH" + } + ] + }, + { + "filename": "src\\project_manager.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 4, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 32, + "kind": "EXCEPT", + "context": "parse_ts", + "category": "INTERNAL_OPTIONAL_RETURN" + }, + { + "line": 98, + "kind": "EXCEPT", + "context": "get_git_commit", + "category": "UNCLEAR" + }, + { + "line": 296, + "kind": "EXCEPT", + "context": "load_track_state", + "category": "BOUNDARY_SDK" + }, + { + "line": 372, + "kind": "EXCEPT", + "context": "get_all_tracks", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 384, + "kind": "EXCEPT", + "context": "get_all_tracks", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 399, + "kind": "EXCEPT", + "context": "get_all_tracks", + "category": "BOUNDARY_CONVERSION" + } + ] + }, + { + "filename": "src\\session_logger.py", + "in_refactored_baseline": false, + "violation_count": 1, + "compliant_count": 6, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 100, + "kind": "EXCEPT", + "context": "open_session", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 132, + "kind": "EXCEPT", + "context": "close_session", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 149, + "kind": "EXCEPT", + "context": "log_api_hook", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 163, + "kind": "EXCEPT", + "context": "log_comms", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 191, + "kind": "EXCEPT", + "context": "log_tool_call", + "category": "UNCLEAR" + }, + { + "line": 205, + "kind": "EXCEPT", + "context": "log_tool_call", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 230, + "kind": "EXCEPT", + "context": "log_tool_output", + "category": "INTERNAL_OPTIONAL_RETURN" + }, + { + "line": 250, + "kind": "EXCEPT", + "context": "log_cli_call", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\gemini_cli_adapter.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 3, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 126, + "kind": "EXCEPT", + "context": "send", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 155, + "kind": "RAISE", + "context": "send", + "category": "INTERNAL_RETHROW" + }, + { + "line": 166, + "kind": "EXCEPT", + "context": "send", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 173, + "kind": "RAISE", + "context": "send", + "category": "INTERNAL_RETHROW" + }, + { + "line": 174, + "kind": "RAISE", + "context": "send", + "category": "INTERNAL_RETHROW" + } + ] + }, + { + "filename": "src\\shell_runner.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 2, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 18, + "kind": "EXCEPT", + "context": "", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 91, + "kind": "EXCEPT", + "context": "run_powershell", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 95, + "kind": "EXCEPT", + "context": "run_powershell", + "category": "INTERNAL_RETHROW" + }, + { + "line": 98, + "kind": "RAISE", + "context": "run_powershell", + "category": "INTERNAL_RETHROW" + }, + { + "line": 99, + "kind": "EXCEPT", + "context": "run_powershell", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\conductor_tech_lead.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 1, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 64, + "kind": "TRY", + "context": "generate_tickets", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 92, + "kind": "EXCEPT", + "context": "generate_tickets", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 97, + "kind": "RAISE", + "context": "generate_tickets", + "category": "INTERNAL_RETHROW" + }, + { + "line": 120, + "kind": "EXCEPT", + "context": "topological_sort", + "category": "UNCLEAR" + }, + { + "line": 121, + "kind": "RAISE", + "context": "topological_sort", + "category": "INTERNAL_PROGRAMMER_RAISE" + } + ] + }, + { + "filename": "src\\log_pruner.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 1, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 91, + "kind": "EXCEPT", + "context": "prune", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 113, + "kind": "EXCEPT", + "context": "prune", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 117, + "kind": "RAISE", + "context": "prune", + "category": "INTERNAL_RETHROW" + }, + { + "line": 122, + "kind": "EXCEPT", + "context": "prune", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\models.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 1, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 268, + "kind": "RAISE", + "context": "__getattr__", + "category": "INTERNAL_RETHROW" + }, + { + "line": 452, + "kind": "EXCEPT", + "context": "from_dict", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 457, + "kind": "EXCEPT", + "context": "from_dict", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 508, + "kind": "EXCEPT", + "context": "from_dict", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 1082, + "kind": "EXCEPT", + "context": "load_mcp_config", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\outline_tool.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 1, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 51, + "kind": "EXCEPT", + "context": "outline", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 70, + "kind": "RAISE", + "context": "walk", + "category": "INTERNAL_RETHROW" + }, + { + "line": 93, + "kind": "EXCEPT", + "context": "walk", + "category": "BOUNDARY_CONVERSION" + }, + { + "line": 112, + "kind": "EXCEPT", + "context": "walk", + "category": "BOUNDARY_CONVERSION" + } + ] + }, + { + "filename": "src\\vendor_capabilities.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 0, + "suspicious_count": 1, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 42, + "kind": "RAISE", + "context": "get_capabilities", + "category": "INTERNAL_RETHROW" + } + ] + }, + { + "filename": "src\\api_hook_client.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 62, + "kind": "RAISE", + "context": "_make_request", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 74, + "kind": "EXCEPT", + "context": "_make_request", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\commands.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 2, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 116, + "kind": "EXCEPT", + "context": "generate_md_only", + "category": "UNCLEAR" + }, + { + "line": 147, + "kind": "EXCEPT", + "context": "save_all", + "category": "UNCLEAR" + }, + { + "line": 271, + "kind": "EXCEPT", + "context": "reset_layout", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\context_presets.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 18, + "kind": "EXCEPT", + "context": "load_all", + "category": "BOUNDARY_CONVERSION" + } + ] + }, + { + "filename": "src\\dag_engine.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 162, + "kind": "RAISE", + "context": "topological_sort", + "category": "INTERNAL_PROGRAMMER_RAISE" + } + ] + }, + { + "filename": "src\\diff_viewer.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 0, + "suspicious_count": 0, + "unclear_count": 1, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 167, + "kind": "EXCEPT", + "context": "apply_patch_to_file", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\file_cache.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 61, + "kind": "EXCEPT", + "context": "_get_mtime_safe", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 83, + "kind": "RAISE", + "context": "__init__", + "category": "INTERNAL_PROGRAMMER_RAISE" + } + ] + }, + { + "filename": "src\\hot_reloader.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 29, + "kind": "RAISE", + "context": "register", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 61, + "kind": "EXCEPT", + "context": "reload", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\log_registry.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 5, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 97, + "kind": "EXCEPT", + "context": "load_registry", + "category": "BOUNDARY_SDK" + }, + { + "line": 135, + "kind": "EXCEPT", + "context": "save_registry", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 247, + "kind": "EXCEPT", + "context": "update_auto_whitelist_status", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 250, + "kind": "EXCEPT", + "context": "update_auto_whitelist_status", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 294, + "kind": "EXCEPT", + "context": "get_old_non_whitelisted_sessions", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\openai_compatible.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 87, + "kind": "EXCEPT", + "context": "send_openai_compatible", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\paths.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 142, + "kind": "EXCEPT", + "context": "_resolve_path", + "category": "BOUNDARY_SDK" + }, + { + "line": 163, + "kind": "EXCEPT", + "context": "_get_project_conductor_dir_from_toml", + "category": "BOUNDARY_SDK" + }, + { + "line": 224, + "kind": "EXCEPT", + "context": "_resolve_path_info", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\performance_monitor.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 136, + "kind": "EXCEPT", + "context": "_monitor_cpu", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\personas.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 24, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 27, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 95, + "kind": "EXCEPT", + "context": "_load_file", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\startup_profiler.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 2, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 28, + "kind": "EXCEPT", + "context": "_log_phase_output", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 54, + "kind": "TRY", + "context": "phase", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\summarize.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 0, + "suspicious_count": 0, + "unclear_count": 3, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 36, + "kind": "EXCEPT", + "context": "_summarise_python", + "category": "UNCLEAR" + }, + { + "line": 183, + "kind": "EXCEPT", + "context": "summarise_file", + "category": "UNCLEAR" + }, + { + "line": 187, + "kind": "EXCEPT", + "context": "summarise_file", + "category": "UNCLEAR" + } + ] + }, + { + "filename": "src\\summary_cache.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 4, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 43, + "kind": "EXCEPT", + "context": "load", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 54, + "kind": "EXCEPT", + "context": "save", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 99, + "kind": "EXCEPT", + "context": "clear", + "category": "INTERNAL_COMPLIANT" + }, + { + "line": 108, + "kind": "EXCEPT", + "context": "get_stats", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\theme_2.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 1, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 282, + "kind": "EXCEPT", + "context": "apply", + "category": "INTERNAL_COMPLIANT" + } + ] + }, + { + "filename": "src\\tool_presets.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 23, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 26, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 34, + "kind": "EXCEPT", + "context": "_read_raw", + "category": "BOUNDARY_SDK" + } + ] + }, + { + "filename": "src\\workspace_manager.py", + "in_refactored_baseline": false, + "violation_count": 0, + "compliant_count": 3, + "suspicious_count": 0, + "unclear_count": 0, + "has_error": false, + "error_message": "", + "findings": [ + { + "line": 25, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 28, + "kind": "RAISE", + "context": "_get_path", + "category": "INTERNAL_PROGRAMMER_RAISE" + }, + { + "line": 78, + "kind": "EXCEPT", + "context": "_load_file", + "category": "BOUNDARY_SDK" + } + ] + } + ] +} diff --git a/docs/reports/PHASE12_TRIAGE_20260617.md b/docs/reports/PHASE12_TRIAGE_20260617.md new file mode 100644 index 00000000..df8ba978 --- /dev/null +++ b/docs/reports/PHASE12_TRIAGE_20260617.md @@ -0,0 +1,421 @@ +# Phase 12.5 — Triage of Post-Fix Audit Findings +**Date:** 2026-06-17 (auto-generated) +**Source:** `docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json` +**Total sites:** 403 +**Violation sites:** 185 +**UNCLEAR sites:** 20 + +This triage enumerates the migration-target sites per file, in priority order (Phase 12 plan 12.6 sub-batches). + +## `src/api_hooks.py` — NO violations (clean) + +## `src/warmup.py` — NO violations (clean) + +## `src/startup_profiler.py` — NO violations (clean) + +## `src/file_cache.py` — NO violations (clean) + +## `src/orchestrator_pm.py` — NO violations (clean) + +## `src/project_manager.py` — NO violations (clean) + +## `src/log_registry.py` — NO violations (clean) + +## `src/models.py` — NO violations (clean) + +## `src/multi_agent_conductor.py` — NO violations (clean) + +## `src/theme_2.py` — NO violations (clean) + +## `src/shell_runner.py` — NO violations (clean) + +## `src/session_logger.py` — NO violations (clean) + + +## Other files with violations (not in priority list) + +### `src\aggregate.py` — 4 sites + +| Line | Category | Note | +|---|---|---| +| 52 | UNCLEAR | | +| 270 | INTERNAL_BROAD_CATCH | | +| 277 | UNCLEAR | | +| 449 | UNCLEAR | | + +### `src\ai_client.py` — 33 sites + +| Line | Category | Note | +|---|---|---| +| 277 | INTERNAL_RETHROW | | +| 302 | INTERNAL_SILENT_SWALLOW | | +| 314 | INTERNAL_SILENT_SWALLOW | | +| 332 | INTERNAL_BROAD_CATCH | | +| 355 | INTERNAL_BROAD_CATCH | | +| 394 | INTERNAL_BROAD_CATCH | | +| 414 | INTERNAL_SILENT_SWALLOW | | +| 432 | INTERNAL_SILENT_SWALLOW | | +| 520 | INTERNAL_BROAD_CATCH | | +| 537 | INTERNAL_BROAD_CATCH | | +| 716 | INTERNAL_BROAD_CATCH | | +| 723 | INTERNAL_BROAD_CATCH | | +| 801 | INTERNAL_RETHROW | | +| 802 | INTERNAL_RETHROW | | +| 994 | INTERNAL_BROAD_CATCH | | +| 1234 | INTERNAL_RETHROW | | +| 1528 | INTERNAL_BROAD_CATCH | | +| 1529 | INTERNAL_RETHROW | | +| 1555 | INTERNAL_SILENT_SWALLOW | | +| 1599 | INTERNAL_BROAD_CATCH | | +| 1611 | INTERNAL_BROAD_CATCH | | +| 1636 | INTERNAL_BROAD_CATCH | | +| 1657 | INTERNAL_BROAD_CATCH | | +| 1854 | INTERNAL_BROAD_CATCH | | +| 1856 | INTERNAL_RETHROW | | +| 2242 | INTERNAL_SILENT_SWALLOW | | +| 2520 | INTERNAL_RETHROW | | +| 2848 | INTERNAL_BROAD_CATCH | | +| 2867 | INTERNAL_BROAD_CATCH | | +| 2898 | INTERNAL_BROAD_CATCH | | +| 2914 | INTERNAL_SILENT_SWALLOW | | +| 2922 | INTERNAL_SILENT_SWALLOW | | +| 3082 | INTERNAL_SILENT_SWALLOW | | + +### `src\api_hooks.py` — 16 sites + +| Line | Category | Note | +|---|---|---| +| 294 | INTERNAL_BROAD_CATCH | | +| 387 | INTERNAL_BROAD_CATCH | | +| 404 | UNCLEAR | | +| 410 | INTERNAL_BROAD_CATCH | | +| 428 | INTERNAL_BROAD_CATCH | | +| 442 | INTERNAL_BROAD_CATCH | | +| 561 | INTERNAL_BROAD_CATCH | | +| 592 | INTERNAL_BROAD_CATCH | | +| 620 | INTERNAL_BROAD_CATCH | | +| 719 | INTERNAL_BROAD_CATCH | | +| 739 | INTERNAL_BROAD_CATCH | | +| 793 | INTERNAL_BROAD_CATCH | | +| 810 | INTERNAL_BROAD_CATCH | | +| 914 | INTERNAL_SILENT_SWALLOW | | +| 936 | INTERNAL_RETHROW | | +| 939 | INTERNAL_RETHROW | | + +### `src\app_controller.py` — 45 sites + +| Line | Category | Note | +|---|---|---| +| 537 | INTERNAL_BROAD_CATCH | | +| 579 | INTERNAL_BROAD_CATCH | | +| 751 | INTERNAL_SILENT_SWALLOW | | +| 756 | INTERNAL_SILENT_SWALLOW | | +| 1224 | INTERNAL_RETHROW | | +| 1250 | INTERNAL_RETHROW | | +| 1293 | INTERNAL_SILENT_SWALLOW | | +| 1357 | INTERNAL_OPTIONAL_RETURN | | +| 1375 | INTERNAL_SILENT_SWALLOW | | +| 1419 | INTERNAL_BROAD_CATCH | | +| 1479 | INTERNAL_BROAD_CATCH | | +| 1565 | INTERNAL_SILENT_SWALLOW | | +| 1668 | INTERNAL_BROAD_CATCH | | +| 1946 | INTERNAL_BROAD_CATCH | | +| 2045 | INTERNAL_BROAD_CATCH | | +| 2067 | INTERNAL_BROAD_CATCH | | +| 2080 | INTERNAL_BROAD_CATCH | | +| 2128 | INTERNAL_BROAD_CATCH | | +| 2139 | INTERNAL_BROAD_CATCH | | +| 2153 | INTERNAL_BROAD_CATCH | | +| 2194 | INTERNAL_BROAD_CATCH | | +| 2388 | INTERNAL_SILENT_SWALLOW | | +| 2766 | INTERNAL_BROAD_CATCH | | +| 2778 | INTERNAL_BROAD_CATCH | | +| 2889 | INTERNAL_BROAD_CATCH | | +| 2943 | INTERNAL_BROAD_CATCH | | +| 2982 | INTERNAL_RETHROW | | +| 2985 | INTERNAL_RETHROW | | +| 3056 | INTERNAL_BROAD_CATCH | | +| 3083 | INTERNAL_BROAD_CATCH | | +| 3093 | INTERNAL_BROAD_CATCH | | +| 3433 | INTERNAL_BROAD_CATCH | | +| 3470 | INTERNAL_BROAD_CATCH | | +| 3541 | INTERNAL_BROAD_CATCH | | +| 3634 | INTERNAL_BROAD_CATCH | | +| 3647 | INTERNAL_BROAD_CATCH | | +| 4069 | INTERNAL_BROAD_CATCH | | +| 4097 | INTERNAL_SILENT_SWALLOW | | +| 4099 | INTERNAL_BROAD_CATCH | | +| 4191 | INTERNAL_SILENT_SWALLOW | | +| 4236 | INTERNAL_BROAD_CATCH | | +| 4348 | INTERNAL_BROAD_CATCH | | +| 4445 | INTERNAL_BROAD_CATCH | | +| 4474 | INTERNAL_BROAD_CATCH | | +| 4503 | INTERNAL_BROAD_CATCH | | + +### `src\command_palette.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 120 | INTERNAL_SILENT_SWALLOW | | + +### `src\commands.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 116 | UNCLEAR | | +| 147 | UNCLEAR | | + +### `src\conductor_tech_lead.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 97 | INTERNAL_RETHROW | | +| 120 | UNCLEAR | | + +### `src\diff_viewer.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 167 | UNCLEAR | | + +### `src\external_editor.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 47 | INTERNAL_OPTIONAL_RETURN | | +| 56 | INTERNAL_OPTIONAL_RETURN | | + +### `src\gemini_cli_adapter.py` — 3 sites + +| Line | Category | Note | +|---|---|---| +| 155 | INTERNAL_RETHROW | | +| 173 | INTERNAL_RETHROW | | +| 174 | INTERNAL_RETHROW | | + +### `src\gui_2.py` — 42 sites + +| Line | Category | Note | +|---|---|---| +| 65 | UNCLEAR | | +| 69 | UNCLEAR | | +| 216 | INTERNAL_SILENT_SWALLOW | | +| 241 | INTERNAL_SILENT_SWALLOW | | +| 567 | INTERNAL_SILENT_SWALLOW | | +| 591 | INTERNAL_BROAD_CATCH | | +| 684 | INTERNAL_SILENT_SWALLOW | | +| 731 | INTERNAL_BROAD_CATCH | | +| 742 | INTERNAL_BROAD_CATCH | | +| 757 | INTERNAL_RETHROW | | +| 760 | INTERNAL_RETHROW | | +| 905 | INTERNAL_BROAD_CATCH | | +| 979 | INTERNAL_SILENT_SWALLOW | | +| 1079 | INTERNAL_SILENT_SWALLOW | | +| 1123 | INTERNAL_BROAD_CATCH | | +| 1172 | INTERNAL_BROAD_CATCH | | +| 1198 | INTERNAL_BROAD_CATCH | | +| 1223 | INTERNAL_BROAD_CATCH | | +| 1285 | INTERNAL_BROAD_CATCH | | +| 1335 | INTERNAL_BROAD_CATCH | | +| 1344 | INTERNAL_BROAD_CATCH | | +| 1398 | INTERNAL_SILENT_SWALLOW | | +| 1418 | INTERNAL_BROAD_CATCH | | +| 1444 | INTERNAL_BROAD_CATCH | | +| 1479 | INTERNAL_BROAD_CATCH | | +| 1613 | INTERNAL_SILENT_SWALLOW | | +| 3201 | INTERNAL_BROAD_CATCH | | +| 3436 | INTERNAL_BROAD_CATCH | | +| 3620 | INTERNAL_BROAD_CATCH | | +| 3756 | INTERNAL_BROAD_CATCH | | +| 3783 | INTERNAL_BROAD_CATCH | | +| 4405 | INTERNAL_BROAD_CATCH | | +| 4823 | INTERNAL_SILENT_SWALLOW | | +| 4836 | INTERNAL_BROAD_CATCH | | +| 5417 | INTERNAL_BROAD_CATCH | | +| 5544 | INTERNAL_SILENT_SWALLOW | | +| 5826 | INTERNAL_BROAD_CATCH | | +| 5960 | INTERNAL_BROAD_CATCH | | +| 6807 | INTERNAL_SILENT_SWALLOW | | +| 7142 | INTERNAL_SILENT_SWALLOW | | +| 7158 | INTERNAL_SILENT_SWALLOW | | +| 7248 | INTERNAL_BROAD_CATCH | | + +### `src\log_pruner.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 117 | INTERNAL_RETHROW | | + +### `src\markdown_helper.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 123 | INTERNAL_SILENT_SWALLOW | | +| 200 | UNCLEAR | | + +### `src\mcp_client.py` — 46 sites + +| Line | Category | Note | +|---|---|---| +| 171 | INTERNAL_SILENT_SWALLOW | | +| 191 | INTERNAL_BROAD_CATCH | | +| 229 | INTERNAL_BROAD_CATCH | | +| 254 | INTERNAL_BROAD_CATCH | | +| 266 | INTERNAL_BROAD_CATCH | | +| 395 | INTERNAL_BROAD_CATCH | | +| 414 | INTERNAL_BROAD_CATCH | | +| 430 | INTERNAL_BROAD_CATCH | | +| 451 | INTERNAL_BROAD_CATCH | | +| 473 | INTERNAL_BROAD_CATCH | | +| 492 | INTERNAL_BROAD_CATCH | | +| 509 | INTERNAL_BROAD_CATCH | | +| 523 | INTERNAL_BROAD_CATCH | | +| 537 | INTERNAL_BROAD_CATCH | | +| 555 | INTERNAL_BROAD_CATCH | | +| 576 | INTERNAL_BROAD_CATCH | | +| 593 | INTERNAL_BROAD_CATCH | | +| 610 | INTERNAL_BROAD_CATCH | | +| 624 | INTERNAL_BROAD_CATCH | | +| 645 | INTERNAL_BROAD_CATCH | | +| 695 | INTERNAL_BROAD_CATCH | | +| 713 | INTERNAL_BROAD_CATCH | | +| 739 | INTERNAL_BROAD_CATCH | | +| 768 | INTERNAL_BROAD_CATCH | | +| 788 | INTERNAL_BROAD_CATCH | | +| 818 | INTERNAL_BROAD_CATCH | | +| 843 | INTERNAL_BROAD_CATCH | | +| 872 | INTERNAL_BROAD_CATCH | | +| 893 | INTERNAL_BROAD_CATCH | | +| 913 | INTERNAL_BROAD_CATCH | | +| 936 | INTERNAL_SILENT_SWALLOW | | +| 951 | INTERNAL_BROAD_CATCH | | +| 974 | INTERNAL_BROAD_CATCH | | +| 987 | UNCLEAR | | +| 989 | INTERNAL_BROAD_CATCH | | +| 1012 | INTERNAL_SILENT_SWALLOW | | +| 1026 | INTERNAL_BROAD_CATCH | | +| 1047 | INTERNAL_BROAD_CATCH | | +| 1071 | INTERNAL_BROAD_CATCH | | +| 1106 | INTERNAL_BROAD_CATCH | | +| 1140 | INTERNAL_BROAD_CATCH | | +| 1223 | INTERNAL_BROAD_CATCH | | +| 1249 | INTERNAL_BROAD_CATCH | | +| 1268 | INTERNAL_BROAD_CATCH | | +| 1311 | INTERNAL_SILENT_SWALLOW | | +| 1316 | INTERNAL_SILENT_SWALLOW | | + +### `src\models.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 268 | INTERNAL_RETHROW | | +| 1082 | UNCLEAR | | + +### `src\multi_agent_conductor.py` — 4 sites + +| Line | Category | Note | +|---|---|---| +| 317 | INTERNAL_SILENT_SWALLOW | | +| 468 | INTERNAL_SILENT_SWALLOW | | +| 518 | UNCLEAR | | +| 636 | INTERNAL_SILENT_SWALLOW | | + +### `src\orchestrator_pm.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 113 | INTERNAL_BROAD_CATCH | | + +### `src\outline_tool.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 70 | INTERNAL_RETHROW | | + +### `src\presets.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 35 | INTERNAL_SILENT_SWALLOW | | +| 44 | INTERNAL_SILENT_SWALLOW | | + +### `src\project_manager.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 32 | INTERNAL_OPTIONAL_RETURN | | +| 98 | UNCLEAR | | + +### `src\rag_engine.py` — 9 sites + +| Line | Category | Note | +|---|---|---| +| 29 | INTERNAL_RETHROW | | +| 32 | INTERNAL_RETHROW | | +| 33 | INTERNAL_BROAD_CATCH | | +| 36 | INTERNAL_RETHROW | | +| 224 | INTERNAL_BROAD_CATCH | | +| 247 | INTERNAL_BROAD_CATCH | | +| 255 | INTERNAL_SILENT_SWALLOW | | +| 261 | INTERNAL_BROAD_CATCH | | +| 290 | INTERNAL_BROAD_CATCH | | + +### `src\session_logger.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 191 | UNCLEAR | | +| 230 | INTERNAL_OPTIONAL_RETURN | | + +### `src\shell_runner.py` — 3 sites + +| Line | Category | Note | +|---|---|---| +| 95 | INTERNAL_RETHROW | | +| 98 | INTERNAL_RETHROW | | +| 99 | UNCLEAR | | + +### `src\summarize.py` — 3 sites + +| Line | Category | Note | +|---|---|---| +| 36 | UNCLEAR | | +| 183 | UNCLEAR | | +| 187 | UNCLEAR | | + +### `src\theme_models.py` — 3 sites + +| Line | Category | Note | +|---|---|---| +| 166 | INTERNAL_RETHROW | | +| 190 | INTERNAL_SILENT_SWALLOW | | +| 217 | INTERNAL_SILENT_SWALLOW | | + +### `src\vendor_capabilities.py` — 1 sites + +| Line | Category | Note | +|---|---|---| +| 42 | INTERNAL_RETHROW | | + +### `src\warmup.py` — 2 sites + +| Line | Category | Note | +|---|---|---| +| 96 | INTERNAL_RETHROW | | +| 185 | INTERNAL_BROAD_CATCH | | + + +## Summary by category + +| Category | Count | +|---|---| +| INTERNAL_BROAD_CATCH | 134 | +| INTERNAL_COMPLIANT | 93 | +| INTERNAL_SILENT_SWALLOW | 46 | +| INTERNAL_RETHROW | 30 | +| INTERNAL_PROGRAMMER_RAISE | 29 | +| UNCLEAR | 20 | +| BOUNDARY_SDK | 19 | +| BOUNDARY_FASTAPI | 15 | +| BOUNDARY_CONVERSION | 12 | +| INTERNAL_OPTIONAL_RETURN | 5 | diff --git a/scripts/tier2/artifacts/result_migration_small_files_20260617/phase12_triage.py b/scripts/tier2/artifacts/result_migration_small_files_20260617/phase12_triage.py new file mode 100644 index 00000000..14bcce9d --- /dev/null +++ b/scripts/tier2/artifacts/result_migration_small_files_20260617/phase12_triage.py @@ -0,0 +1,94 @@ +"""Phase 12.5: Triage the post-fix audit findings. + +For each file with violations/UNCLEAR, list the sites with file:line + category + note. +Group by file. Save to docs/reports/PHASE12_TRIAGE_20260617.md. +""" +from __future__ import annotations +import json +from pathlib import Path +from collections import defaultdict + +with open(r"docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json") as f: + d = json.load(f) + +# Group by file +by_file = defaultdict(list) +for f_info in d["files"]: + fname = f_info["filename"] + for finding in f_info["findings"]: + if finding["category"] in ("INTERNAL_SILENT_SWALLOW", "INTERNAL_BROAD_CATCH", + "INTERNAL_OPTIONAL_RETURN", "UNCLEAR", "INTERNAL_RETHROW"): + by_file[fname].append(finding) + +# Phase 12 plan files (priority order) +priority_files = [ + "src/api_hooks.py", + "src/warmup.py", + "src/startup_profiler.py", + "src/file_cache.py", + "src/orchestrator_pm.py", + "src/project_manager.py", + "src/log_registry.py", + "src/models.py", + "src/multi_agent_conductor.py", + "src/theme_2.py", + "src/shell_runner.py", + "src/session_logger.py", +] + +# Output +out = [] +out.append("# Phase 12.5 — Triage of Post-Fix Audit Findings\n") +out.append("**Date:** 2026-06-17 (auto-generated)\n") +out.append("**Source:** `docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json`\n") +out.append("**Total sites:** " + str(d.get("total_sites", "?")) + "\n") +out.append("**Violation sites:** " + str(d.get("violation_sites", "?")) + "\n") +out.append("**UNCLEAR sites:** " + str(d.get("unclear_sites", "?")) + "\n\n") +out.append("This triage enumerates the migration-target sites per file, ") +out.append("in priority order (Phase 12 plan 12.6 sub-batches).\n\n") + +for fname in priority_files: + sites = by_file.get(fname, []) + if not sites: + out.append(f"## `{fname}` — NO violations (clean)\n\n") + continue + out.append(f"## `{fname}` — {len(sites)} sites to migrate\n\n") + out.append("| Line | Category | Note |\n") + out.append("|---|---|---|\n") + for s in sorted(sites, key=lambda x: x["line"]): + note = s.get("note", s.get("hint", "")).replace("|", "\\|").replace("\n", " ")[:120] + out.append(f"| {s['line']} | {s['category']} | {note} |\n") + out.append("\n") + +# Catch-all: other files with violations +out.append("\n## Other files with violations (not in priority list)\n\n") +for fname in sorted(by_file.keys()): + if fname in priority_files: + continue + sites = by_file[fname] + out.append(f"### `{fname}` — {len(sites)} sites\n\n") + out.append("| Line | Category | Note |\n") + out.append("|---|---|---|\n") + for s in sorted(sites, key=lambda x: x["line"]): + note = s.get("note", s.get("hint", "")).replace("|", "\\|").replace("\n", " ")[:120] + out.append(f"| {s['line']} | {s['category']} | {note} |\n") + out.append("\n") + +# Total counts +out.append("\n## Summary by category\n\n") +out.append("| Category | Count |\n|---|---|\n") +from collections import Counter +cats = Counter() +for f_info in d["files"]: + for finding in f_info["findings"]: + cats[finding["category"]] += 1 +for c, n in cats.most_common(): + out.append(f"| {c} | {n} |\n") + +p = Path("docs/reports/PHASE12_TRIAGE_20260617.md") +p.write_text("".join(out), encoding="utf-8", newline="\n") +print(f"wrote {p}: {len(''.join(out))} chars") +print(f"\nPriority file summary:") +for fname in priority_files: + sites = by_file.get(fname, []) + print(f" {fname}: {len(sites)} sites") \ No newline at end of file diff --git a/scripts/tier2/artifacts/result_migration_small_files_20260617/show_api_hooks.py b/scripts/tier2/artifacts/result_migration_small_files_20260617/show_api_hooks.py new file mode 100644 index 00000000..3aab08ee --- /dev/null +++ b/scripts/tier2/artifacts/result_migration_small_files_20260617/show_api_hooks.py @@ -0,0 +1,13 @@ +"""Show api_hooks.py violations.""" +import json +with open(r"docs/reports/PHASE12_AUDIT_POST_FIX_20260617.json") as f: + d = json.load(f) +for f_info in d["files"]: + if f_info["filename"].endswith("api_hooks.py"): + print(f"## api_hooks.py — {len(f_info['findings'])} findings") + for finding in f_info["findings"]: + if finding["category"] in ("INTERNAL_SILENT_SWALLOW", "INTERNAL_BROAD_CATCH", "INTERNAL_OPTIONAL_RETURN", "UNCLEAR", "INTERNAL_RETHROW"): + note = finding.get("note", finding.get("hint", ""))[:120] + ctx = finding.get("context", "") + print(f" L{finding['line']:4d} [{finding['kind']:7s}] {finding['category']:30s} ctx={ctx:30s} note={note}") + break \ No newline at end of file