Private
Public Access
0
0

feat(audit): wire cross_audit_findings aggregator into synthesize

Loops over audit_weak_types + audit_exception_handling from
the 6 audit_inputs, calls aggregate_cross_audit_findings per
audit, sums the buckets per profile.

Cross-audit aggregation is per-aggregate-flat (all findings go
into 1 bucket per audit). The 3-tier finding-to-aggregate
mapping (find_enclosing_function + type registry + file
heuristic) is the next gap - requires per-finding site
classification.
This commit is contained in:
2026-06-22 09:14:40 -04:00
parent 85f5808ae3
commit 8d2dffd7c5
7 changed files with 263 additions and 244 deletions
@@ -10,17 +10,17 @@
\ === producers (0 items) ===
\ === consumers (3 items) ===
"src.ai_client._build_file_context_text" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._build_file_diff_text" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._reread_file_items_result" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._build_file_context_text" "src\ai_client.py" 0 "consumer" fn-ref
\ === access_pattern ===
"whole_struct" access-pattern
\ === access_pattern_evidence (3 items) ===
"src.ai_client._build_file_context_text" "whole_struct" 0 "low" ap-evidence
"src.ai_client._build_file_diff_text" "whole_struct" 0 "low" ap-evidence
"src.ai_client._reread_file_items_result" "whole_struct" 0 "low" ap-evidence
"src.ai_client._build_file_context_text" "whole_struct" 0 "low" ap-evidence
\ === frequency ===
"per_turn" frequency
@@ -3,9 +3,9 @@ Metadata: FileItems
|- memory_dim: curation
|- producers: [0]
|- consumers: [3]
| |- src.ai_client._build_file_context_text (consumer)
| |- src.ai_client._build_file_diff_text (consumer)
| |- src.ai_client._reread_file_items_result (consumer)
| |- src.ai_client._build_file_context_text (consumer)
|- access_pattern: whole_struct
|- frequency: per_turn
|- result_coverage: 0 producers, 3 consumers
@@ -10,15 +10,15 @@
\ === producers (0 items) ===
\ === consumers (2 items) ===
"src.provider_state.replace_all" "src\provider_state.py" 0 "consumer" fn-ref
"src.provider_state.append" "src\provider_state.py" 0 "consumer" fn-ref
"src.provider_state.replace_all" "src\provider_state.py" 0 "consumer" fn-ref
\ === access_pattern ===
"whole_struct" access-pattern
\ === access_pattern_evidence (2 items) ===
"src.provider_state.replace_all" "whole_struct" 0 "low" ap-evidence
"src.provider_state.append" "whole_struct" 0 "low" ap-evidence
"src.provider_state.replace_all" "whole_struct" 0 "low" ap-evidence
\ === frequency ===
"per_turn" frequency
@@ -3,8 +3,8 @@ Metadata: HistoryMessage
|- memory_dim: discussion
|- producers: [0]
|- consumers: [2]
| |- src.provider_state.replace_all (consumer)
| |- src.provider_state.append (consumer)
| |- src.provider_state.replace_all (consumer)
|- access_pattern: whole_struct
|- frequency: per_turn
|- result_coverage: 0 producers, 2 consumers
@@ -8,170 +8,170 @@
"discussion" mem-dim
\ === producers (77 items) ===
"src.api_hook_client.get_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.right_click" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_api_session" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller._api_get_api_project" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller._api_get_context" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._content_block_to_dict" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.select_list_item" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.push_event" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_state" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_gui_state" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_api_session" "src\app_controller.py" 0 "producer" fn-ref
"src.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_health" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.reject_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.trigger_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.generate" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.token_stats" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_patch_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_performance" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.set_value" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_project_switch_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_warmup_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.load_project" "src\project_manager.py" 0 "producer" fn-ref
"src.models._load_config_from_disk" "src\models.py" 0 "producer" fn-ref
"src.app_controller.get_context" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_session" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._parse_tool_args_result" "src\ai_client.py" 0 "producer" fn-ref
"src.models.to_dict" "src\models.py" 0 "producer" fn-ref
"src.api_hook_client.get_financial_metrics" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client._load_credentials" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_project" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.default_discussion" "src\project_manager.py" 0 "producer" fn-ref
"src.app_controller._api_token_stats" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_performance" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.status" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._add_bleed_derived" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_mma_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.load_history" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.post_gui" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.drag" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_session" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.str_to_entry" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.select_tab" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.flat_config" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_warmup_wait" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_generate" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.token_stats" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_io_pool_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.apply_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.load_history" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_mma_workers" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.wait" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_api_session" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_gui_state" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_mma_status" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_context_state" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.wait_for_project_switch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.generate" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller._api_get_mma_status" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client.get_token_stats" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.click" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_node_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.post_project" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.trigger_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_patch_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_session" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_startup_timeline" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.get_api_project" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_financial_metrics" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_state" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client.get_gemini_cache_stats" "src\ai_client.py" 0 "producer" fn-ref
"src.ai_client._load_credentials" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_performance" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._content_block_to_dict" "src\ai_client.py" 0 "producer" fn-ref
"src.ai_client._add_bleed_derived" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_api_session" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller._api_get_gui_state" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.post_gui" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.right_click" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.reject_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_mma_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.str_to_entry" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_session" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_api_project" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_session" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_health" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_warmup_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.default_project" "src\project_manager.py" 0 "producer" fn-ref
"src.project_manager.default_discussion" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_project" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_diagnostics" "src\api_hook_client.py" 0 "producer" fn-ref
"src.project_manager.load_project" "src\project_manager.py" 0 "producer" fn-ref
"src.ai_client._dashscope_call" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller._api_token_stats" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client.ollama_chat" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller._api_status" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.status" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.select_list_item" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_performance" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "producer" fn-ref
"src.models._load_config_from_disk" "src\models.py" 0 "producer" fn-ref
"src.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "producer" fn-ref
"src.models.to_dict" "src\models.py" 0 "producer" fn-ref
"src.api_hook_client.get_system_telemetry" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client._parse_tool_args_result" "src\ai_client.py" 0 "producer" fn-ref
"src.ai_client._send_cli_round_result" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller.load_config" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.set_value" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.drag" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_context" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.post_session" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_project_switch_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.get_session_insights" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.apply_patch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_node_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_system_telemetry" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_session" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._send_cli_round_result" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_gui_diagnostics" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.click" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_status" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_mma_status" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_performance" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.push_event" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client.ollama_chat" "src\ai_client.py" 0 "producer" fn-ref
"src.api_hook_client.post_project" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.get_startup_timeline" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._api_generate" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_mma_workers" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.post_session" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client.get_token_stats" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller.get_api_project" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_session_insights" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_context_state" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "producer" fn-ref
"src.app_controller.get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
"src.ai_client._dashscope_call" "src\ai_client.py" 0 "producer" fn-ref
"src.app_controller._api_get_mma_status" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_warmup_wait" "src\api_hook_client.py" 0 "producer" fn-ref
"src.api_hook_client.wait_for_project_switch" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.wait" "src\app_controller.py" 0 "producer" fn-ref
"src.project_manager.default_project" "src\project_manager.py" 0 "producer" fn-ref
"src.api_hook_client.get_io_pool_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.app_controller.get_gui_state" "src\app_controller.py" 0 "producer" fn-ref
"src.api_hook_client.get_status" "src\api_hook_client.py" 0 "producer" fn-ref
"src.ai_client.get_gemini_cache_stats" "src\ai_client.py" 0 "producer" fn-ref
\ === consumers (35 items) ===
"src.aggregate._build_files_section_from_items" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._add_history_cache_breakpoint" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._strip_private_keys" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._dashscope_call" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._invalidate_token_estimate" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._start_track_logic_result" "src\app_controller.py" 0 "consumer" fn-ref
"src.ai_client._estimate_message_tokens" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._on_comms_entry" "src\app_controller.py" 0 "consumer" fn-ref
"src.project_manager.flat_config" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._estimate_prompt_tokens" "src\ai_client.py" 0 "consumer" fn-ref
"src.aggregate.build_markdown_from_items" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._append_comms" "src\ai_client.py" 0 "consumer" fn-ref
"src.models._save_config_to_disk" "src\models.py" 0 "consumer" fn-ref
"src.project_manager.entry_to_str" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._trim_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client.ollama_chat" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "consumer" fn-ref
"src.models.from_dict" "src\models.py" 0 "consumer" fn-ref
"src.project_manager.save_project" "src\project_manager.py" 0 "consumer" fn-ref
"src.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._strip_stale_file_refreshes" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._refresh_api_metrics" "src\app_controller.py" 0 "consumer" fn-ref
"src.project_manager.format_discussion" "src\project_manager.py" 0 "consumer" fn-ref
"src.aggregate.run" "src\aggregate.py" 0 "consumer" fn-ref
"src.app_controller._start_track_logic" "src\app_controller.py" 0 "consumer" fn-ref
"src.project_manager.flat_config" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._append_comms" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._on_comms_entry" "src\app_controller.py" 0 "consumer" fn-ref
"src.ai_client._invalidate_token_estimate" "src\ai_client.py" 0 "consumer" fn-ref
"src.project_manager.entry_to_str" "src\project_manager.py" 0 "consumer" fn-ref
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "consumer" fn-ref
"src.models._save_config_to_disk" "src\models.py" 0 "consumer" fn-ref
"src.aggregate.run" "src\aggregate.py" 0 "consumer" fn-ref
"src.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._dashscope_call" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._strip_cache_controls" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._repair_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.aggregate.build_markdown_no_history" "src\aggregate.py" 0 "consumer" fn-ref
"src.aggregate.build_tier3_context" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._add_history_cache_breakpoint" "src\ai_client.py" 0 "consumer" fn-ref
"src.aggregate.build_markdown_from_items" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._trim_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._repair_deepseek_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.aggregate.build_tier3_context" "src\aggregate.py" 0 "consumer" fn-ref
"src.app_controller._start_track_logic_result" "src\app_controller.py" 0 "consumer" fn-ref
"src.aggregate.build_markdown_no_history" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._add_bleed_derived" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._repair_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._execute_single_tool_call_async" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._pre_dispatch" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client.ollama_chat" "src\ai_client.py" 0 "consumer" fn-ref
"src.aggregate._build_files_section_from_items" "src\aggregate.py" 0 "consumer" fn-ref
"src.ai_client._estimate_message_tokens" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._trim_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.project_manager.format_discussion" "src\project_manager.py" 0 "consumer" fn-ref
"src.ai_client._strip_stale_file_refreshes" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._strip_private_keys" "src\ai_client.py" 0 "consumer" fn-ref
"src.app_controller._refresh_api_metrics" "src\app_controller.py" 0 "consumer" fn-ref
"src.project_manager.save_project" "src\project_manager.py" 0 "consumer" fn-ref
"src.models.from_dict" "src\models.py" 0 "consumer" fn-ref
"src.ai_client._repair_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._pre_dispatch" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._repair_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._estimate_prompt_tokens" "src\ai_client.py" 0 "consumer" fn-ref
"src.ai_client._execute_single_tool_call_async" "src\ai_client.py" 0 "consumer" fn-ref
\ === access_pattern ===
"whole_struct" access-pattern
\ === access_pattern_evidence (35 items) ===
"src.aggregate._build_files_section_from_items" "whole_struct" 0 "low" ap-evidence
"src.ai_client._add_history_cache_breakpoint" "whole_struct" 0 "low" ap-evidence
"src.ai_client._strip_private_keys" "whole_struct" 0 "low" ap-evidence
"src.ai_client._dashscope_call" "whole_struct" 0 "low" ap-evidence
"src.ai_client._invalidate_token_estimate" "whole_struct" 0 "low" ap-evidence
"src.app_controller._start_track_logic_result" "whole_struct" 0 "low" ap-evidence
"src.ai_client._estimate_message_tokens" "whole_struct" 0 "low" ap-evidence
"src.app_controller._on_comms_entry" "whole_struct" 0 "low" ap-evidence
"src.project_manager.flat_config" "whole_struct" 0 "low" ap-evidence
"src.ai_client._estimate_prompt_tokens" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_markdown_from_items" "whole_struct" 0 "low" ap-evidence
"src.ai_client._append_comms" "whole_struct" 0 "low" ap-evidence
"src.models._save_config_to_disk" "whole_struct" 0 "low" ap-evidence
"src.project_manager.entry_to_str" "whole_struct" 0 "low" ap-evidence
"src.ai_client._trim_anthropic_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client.ollama_chat" "whole_struct" 0 "low" ap-evidence
"src.app_controller._offload_entry_payload" "whole_struct" 0 "low" ap-evidence
"src.models.from_dict" "whole_struct" 0 "low" ap-evidence
"src.project_manager.save_project" "whole_struct" 0 "low" ap-evidence
"src.project_manager.migrate_from_legacy_config" "whole_struct" 0 "low" ap-evidence
"src.ai_client._strip_stale_file_refreshes" "whole_struct" 0 "low" ap-evidence
"src.app_controller._refresh_api_metrics" "whole_struct" 0 "low" ap-evidence
"src.project_manager.format_discussion" "whole_struct" 0 "low" ap-evidence
"src.aggregate.run" "whole_struct" 0 "low" ap-evidence
"src.app_controller._start_track_logic" "whole_struct" 0 "low" ap-evidence
"src.project_manager.flat_config" "whole_struct" 0 "low" ap-evidence
"src.ai_client._append_comms" "whole_struct" 0 "low" ap-evidence
"src.app_controller._on_comms_entry" "whole_struct" 0 "low" ap-evidence
"src.ai_client._invalidate_token_estimate" "whole_struct" 0 "low" ap-evidence
"src.project_manager.entry_to_str" "whole_struct" 0 "low" ap-evidence
"src.app_controller._offload_entry_payload" "whole_struct" 0 "low" ap-evidence
"src.models._save_config_to_disk" "whole_struct" 0 "low" ap-evidence
"src.aggregate.run" "whole_struct" 0 "low" ap-evidence
"src.project_manager.migrate_from_legacy_config" "whole_struct" 0 "low" ap-evidence
"src.ai_client._dashscope_call" "whole_struct" 0 "low" ap-evidence
"src.ai_client._strip_cache_controls" "whole_struct" 0 "low" ap-evidence
"src.ai_client._repair_minimax_history" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_markdown_no_history" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_tier3_context" "whole_struct" 0 "low" ap-evidence
"src.ai_client._add_history_cache_breakpoint" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_markdown_from_items" "whole_struct" 0 "low" ap-evidence
"src.ai_client._trim_anthropic_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client._repair_deepseek_history" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_tier3_context" "whole_struct" 0 "low" ap-evidence
"src.app_controller._start_track_logic_result" "whole_struct" 0 "low" ap-evidence
"src.aggregate.build_markdown_no_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client._add_bleed_derived" "whole_struct" 0 "low" ap-evidence
"src.ai_client._repair_anthropic_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client._execute_single_tool_call_async" "whole_struct" 0 "low" ap-evidence
"src.ai_client._pre_dispatch" "whole_struct" 0 "low" ap-evidence
"src.ai_client.ollama_chat" "whole_struct" 0 "low" ap-evidence
"src.aggregate._build_files_section_from_items" "whole_struct" 0 "low" ap-evidence
"src.ai_client._estimate_message_tokens" "whole_struct" 0 "low" ap-evidence
"src.ai_client._trim_minimax_history" "whole_struct" 0 "low" ap-evidence
"src.project_manager.format_discussion" "whole_struct" 0 "low" ap-evidence
"src.ai_client._strip_stale_file_refreshes" "whole_struct" 0 "low" ap-evidence
"src.ai_client._strip_private_keys" "whole_struct" 0 "low" ap-evidence
"src.app_controller._refresh_api_metrics" "whole_struct" 0 "low" ap-evidence
"src.project_manager.save_project" "whole_struct" 0 "low" ap-evidence
"src.models.from_dict" "whole_struct" 0 "low" ap-evidence
"src.ai_client._repair_minimax_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client._pre_dispatch" "whole_struct" 0 "low" ap-evidence
"src.ai_client._repair_anthropic_history" "whole_struct" 0 "low" ap-evidence
"src.ai_client._estimate_prompt_tokens" "whole_struct" 0 "low" ap-evidence
"src.ai_client._execute_single_tool_call_async" "whole_struct" 0 "low" ap-evidence
\ === frequency ===
"per_turn" frequency
\ === frequency_evidence (5 items) ===
"src.api_hook_client.get_status" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
"src.app_controller.get_context" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
"src.api_hook_client.select_tab" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
"src.project_manager.flat_config" "per_turn" "static_analysis" "producer from src\project_manager.py" freq-evidence
"src.api_hook_client.get_warmup_wait" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
"src.api_hook_client.right_click" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
"src.app_controller._api_get_api_session" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
"src.app_controller._api_get_api_project" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
"src.app_controller._api_get_context" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
"src.ai_client._content_block_to_dict" "per_turn" "static_analysis" "producer from src\ai_client.py" freq-evidence
\ === result_coverage ===
77 77 35 0 result-coverage
@@ -2,119 +2,119 @@ Metadata: Metadata
|- kind: typealias
|- memory_dim: discussion
|- producers: [77]
| |- src.api_hook_client.get_status (producer)
| |- src.api_hook_client.right_click (producer)
| |- src.app_controller._api_get_api_session (producer)
| |- src.app_controller._api_get_api_project (producer)
| |- src.app_controller._api_get_context (producer)
| |- src.ai_client._content_block_to_dict (producer)
| |- src.api_hook_client.select_list_item (producer)
| |- src.api_hook_client.push_event (producer)
| |- src.api_hook_client.get_gui_state (producer)
| |- src.app_controller._api_get_gui_state (producer)
| |- src.app_controller.get_api_session (producer)
| |- src.project_manager.migrate_from_legacy_config (producer)
| |- src.api_hook_client.get_gui_health (producer)
| |- src.app_controller._api_get_diagnostics (producer)
| |- src.api_hook_client.reject_patch (producer)
| |- src.api_hook_client.trigger_patch (producer)
| |- src.app_controller.generate (producer)
| |- src.app_controller.token_stats (producer)
| |- src.api_hook_client.get_patch_status (producer)
| |- src.app_controller._api_get_performance (producer)
| |- src.api_hook_client.set_value (producer)
| |- src.api_hook_client.get_project_switch_status (producer)
| |- src.api_hook_client.get_warmup_status (producer)
| |- src.project_manager.load_project (producer)
| |- src.models._load_config_from_disk (producer)
| |- src.app_controller.get_context (producer)
| |- src.app_controller.get_session (producer)
| |- src.ai_client._parse_tool_args_result (producer)
| |- src.models.to_dict (producer)
| |- src.api_hook_client.get_financial_metrics (producer)
| |- src.ai_client._load_credentials (producer)
| |- src.api_hook_client.get_project (producer)
| |- src.project_manager.default_discussion (producer)
| |- src.app_controller._api_token_stats (producer)
| |- src.api_hook_client.get_performance (producer)
| |- src.app_controller.status (producer)
| |- src.ai_client._add_bleed_derived (producer)
| |- src.api_hook_client.get_mma_status (producer)
| |- src.project_manager.load_history (producer)
| |- src.api_hook_client.post_gui (producer)
| |- src.api_hook_client.drag (producer)
| |- src.api_hook_client.get_session (producer)
| |- src.project_manager.str_to_entry (producer)
| |- src.api_hook_client.select_tab (producer)
| |- src.project_manager.flat_config (producer)
| |- src.api_hook_client.get_warmup_wait (producer)
| |- src.app_controller._api_generate (producer)
| |- src.app_controller.token_stats (producer)
| |- src.api_hook_client.get_io_pool_status (producer)
| |- src.api_hook_client.apply_patch (producer)
| |- src.project_manager.load_history (producer)
| |- src.api_hook_client.get_mma_workers (producer)
| |- src.app_controller._api_get_diagnostics (producer)
| |- src.app_controller.wait (producer)
| |- src.app_controller.get_api_session (producer)
| |- src.app_controller.get_gui_state (producer)
| |- src.app_controller.get_mma_status (producer)
| |- src.api_hook_client.get_context_state (producer)
| |- src.api_hook_client.wait_for_project_switch (producer)
| |- src.app_controller.generate (producer)
| |- src.app_controller._api_get_mma_status (producer)
| |- src.ai_client.get_token_stats (producer)
| |- src.api_hook_client.click (producer)
| |- src.api_hook_client.get_node_status (producer)
| |- src.api_hook_client.post_project (producer)
| |- src.api_hook_client.trigger_patch (producer)
| |- src.api_hook_client.get_patch_status (producer)
| |- src.app_controller._api_get_session (producer)
| |- src.api_hook_client.get_startup_timeline (producer)
| |- src.app_controller.get_api_project (producer)
| |- src.api_hook_client.get_financial_metrics (producer)
| |- src.api_hook_client.get_gui_state (producer)
| |- src.ai_client.get_gemini_cache_stats (producer)
| |- src.ai_client._load_credentials (producer)
| |- src.app_controller._api_get_performance (producer)
| |- src.ai_client._content_block_to_dict (producer)
| |- src.ai_client._add_bleed_derived (producer)
| |- src.app_controller._api_get_api_session (producer)
| |- src.app_controller._api_get_gui_state (producer)
| |- src.api_hook_client.post_gui (producer)
| |- src.api_hook_client.right_click (producer)
| |- src.api_hook_client.reject_patch (producer)
| |- src.api_hook_client.get_mma_status (producer)
| |- src.project_manager.str_to_entry (producer)
| |- src.api_hook_client.get_session (producer)
| |- src.app_controller._api_get_api_project (producer)
| |- src.app_controller.get_session (producer)
| |- src.api_hook_client.get_gui_health (producer)
| |- src.api_hook_client.get_warmup_status (producer)
| |- src.project_manager.default_project (producer)
| |- src.project_manager.default_discussion (producer)
| |- src.api_hook_client.get_project (producer)
| |- src.api_hook_client.get_gui_diagnostics (producer)
| |- src.project_manager.load_project (producer)
| |- src.ai_client._dashscope_call (producer)
| |- src.app_controller._api_token_stats (producer)
| |- src.ai_client.ollama_chat (producer)
| |- src.app_controller._api_status (producer)
| |- src.app_controller.status (producer)
| |- src.api_hook_client.select_list_item (producer)
| |- src.api_hook_client.get_performance (producer)
| |- src.app_controller._offload_entry_payload (producer)
| |- src.models._load_config_from_disk (producer)
| |- src.project_manager.migrate_from_legacy_config (producer)
| |- src.models.to_dict (producer)
| |- src.api_hook_client.get_system_telemetry (producer)
| |- src.ai_client._parse_tool_args_result (producer)
| |- src.ai_client._send_cli_round_result (producer)
| |- src.app_controller.load_config (producer)
| |- src.api_hook_client.set_value (producer)
| |- src.api_hook_client.drag (producer)
| |- src.app_controller._api_get_context (producer)
| |- src.api_hook_client.post_session (producer)
| |- src.api_hook_client.get_project_switch_status (producer)
| |- src.app_controller.get_session_insights (producer)
| |- src.api_hook_client.apply_patch (producer)
| |- src.api_hook_client.get_node_status (producer)
| |- src.api_hook_client.get_system_telemetry (producer)
| |- src.app_controller._api_get_session (producer)
| |- src.ai_client._send_cli_round_result (producer)
| |- src.api_hook_client.get_gui_diagnostics (producer)
| |- src.api_hook_client.click (producer)
| |- src.app_controller._api_status (producer)
| |- src.app_controller.get_mma_status (producer)
| |- src.app_controller.get_performance (producer)
| |- src.api_hook_client.push_event (producer)
| |- src.ai_client.ollama_chat (producer)
| |- src.api_hook_client.post_project (producer)
| |- src.api_hook_client.get_startup_timeline (producer)
| |- src.app_controller._api_generate (producer)
| |- src.api_hook_client.get_mma_workers (producer)
| |- src.api_hook_client.post_session (producer)
| |- src.ai_client.get_token_stats (producer)
| |- src.app_controller.get_api_project (producer)
| |- src.app_controller.get_session_insights (producer)
| |- src.api_hook_client.get_context_state (producer)
| |- src.app_controller._offload_entry_payload (producer)
| |- src.app_controller.get_diagnostics (producer)
| |- src.ai_client._dashscope_call (producer)
| |- src.app_controller._api_get_mma_status (producer)
| |- src.api_hook_client.get_warmup_wait (producer)
| |- src.api_hook_client.wait_for_project_switch (producer)
| |- src.app_controller.wait (producer)
| |- src.project_manager.default_project (producer)
| |- src.api_hook_client.get_io_pool_status (producer)
| |- src.app_controller.get_gui_state (producer)
| |- src.api_hook_client.get_status (producer)
| |- src.ai_client.get_gemini_cache_stats (producer)
|- consumers: [35]
| |- src.aggregate._build_files_section_from_items (consumer)
| |- src.ai_client._add_history_cache_breakpoint (consumer)
| |- src.ai_client._strip_private_keys (consumer)
| |- src.ai_client._dashscope_call (consumer)
| |- src.ai_client._invalidate_token_estimate (consumer)
| |- src.app_controller._start_track_logic_result (consumer)
| |- src.ai_client._estimate_message_tokens (consumer)
| |- src.app_controller._on_comms_entry (consumer)
| |- src.project_manager.flat_config (consumer)
| |- src.ai_client._estimate_prompt_tokens (consumer)
| |- src.aggregate.build_markdown_from_items (consumer)
| |- src.ai_client._append_comms (consumer)
| |- src.models._save_config_to_disk (consumer)
| |- src.project_manager.entry_to_str (consumer)
| |- src.ai_client._trim_anthropic_history (consumer)
| |- src.ai_client.ollama_chat (consumer)
| |- src.app_controller._offload_entry_payload (consumer)
| |- src.models.from_dict (consumer)
| |- src.project_manager.save_project (consumer)
| |- src.project_manager.migrate_from_legacy_config (consumer)
| |- src.ai_client._strip_stale_file_refreshes (consumer)
| |- src.app_controller._refresh_api_metrics (consumer)
| |- src.project_manager.format_discussion (consumer)
| |- src.aggregate.run (consumer)
| |- src.app_controller._start_track_logic (consumer)
| |- src.project_manager.flat_config (consumer)
| |- src.ai_client._append_comms (consumer)
| |- src.app_controller._on_comms_entry (consumer)
| |- src.ai_client._invalidate_token_estimate (consumer)
| |- src.project_manager.entry_to_str (consumer)
| |- src.app_controller._offload_entry_payload (consumer)
| |- src.models._save_config_to_disk (consumer)
| |- src.aggregate.run (consumer)
| |- src.project_manager.migrate_from_legacy_config (consumer)
| |- src.ai_client._dashscope_call (consumer)
| |- src.ai_client._strip_cache_controls (consumer)
| |- src.ai_client._repair_minimax_history (consumer)
| |- src.aggregate.build_markdown_no_history (consumer)
| |- src.aggregate.build_tier3_context (consumer)
| |- src.ai_client._add_history_cache_breakpoint (consumer)
| |- src.aggregate.build_markdown_from_items (consumer)
| |- src.ai_client._trim_anthropic_history (consumer)
| |- src.ai_client._repair_deepseek_history (consumer)
| |- src.aggregate.build_tier3_context (consumer)
| |- src.app_controller._start_track_logic_result (consumer)
| |- src.aggregate.build_markdown_no_history (consumer)
| |- src.ai_client._add_bleed_derived (consumer)
| |- src.ai_client._repair_anthropic_history (consumer)
| |- src.ai_client._execute_single_tool_call_async (consumer)
| |- src.ai_client._pre_dispatch (consumer)
| |- src.ai_client.ollama_chat (consumer)
| |- src.aggregate._build_files_section_from_items (consumer)
| |- src.ai_client._estimate_message_tokens (consumer)
| |- src.ai_client._trim_minimax_history (consumer)
| |- src.project_manager.format_discussion (consumer)
| |- src.ai_client._strip_stale_file_refreshes (consumer)
| |- src.ai_client._strip_private_keys (consumer)
| |- src.app_controller._refresh_api_metrics (consumer)
| |- src.project_manager.save_project (consumer)
| |- src.models.from_dict (consumer)
| |- src.ai_client._repair_minimax_history (consumer)
| |- src.ai_client._pre_dispatch (consumer)
| |- src.ai_client._repair_anthropic_history (consumer)
| |- src.ai_client._estimate_prompt_tokens (consumer)
| |- src.ai_client._execute_single_tool_call_async (consumer)
|- access_pattern: whole_struct
|- frequency: per_turn
|- result_coverage: 77 producers, 35 consumers
+20 -1
View File
@@ -1082,6 +1082,25 @@ def synthesize_aggregate_profile(
consumers, aggregate, type_registry, "src"
)
tac = compute_real_type_alias_coverage(aggregate, producers, consumers, type_registry, "src")
cross_findings = CrossAuditFindings((), (), (), (), ())
for audit_name in ("audit_weak_types", "audit_exception_handling"):
if audit_name in audit_inputs:
findings = audit_inputs[audit_name].get("findings", [])
example_file = findings[0].get("file", "") if findings else ""
example_line = findings[0].get("line", 0) if findings else 0
matched = aggregate_cross_audit_findings(
audit_name=audit_name,
findings=findings,
example_file=example_file,
example_line=example_line,
)
cross_findings = CrossAuditFindings(
weak_types=cross_findings.weak_types + matched.weak_types,
exception_handling=cross_findings.exception_handling + matched.exception_handling,
optional_in_baseline=cross_findings.optional_in_baseline + matched.optional_in_baseline,
config_io_ownership=cross_findings.config_io_ownership + matched.config_io_ownership,
import_graph=cross_findings.import_graph + matched.import_graph,
)
producer_count = len({f.fqname for f in producers})
consumer_count = len({f.fqname for f in consumers})
branches_on_errors = set()
@@ -1112,7 +1131,7 @@ def synthesize_aggregate_profile(
frequency_evidence=freq_evidence,
result_coverage=rc,
type_alias_coverage=tac,
cross_audit_findings=CrossAuditFindings((), (), (), (), ()),
cross_audit_findings=cross_findings,
decomposition_cost=dc,
optimization_candidates=candidates,
is_candidate=False,