feat(audit): rich rollups + per-line indentation fix - 2136 total lines
Added 3 new top-level rollups (hot_paths.md, dead_fields.md, plus enriched summary.md, candidates.md, decomposition_matrix.md): - summary.md: per-aggregate memory_dim + access pattern tables, full cross-validation verdict per aggregate - decomposition_matrix.md: all 10 aggregates ranked by current cost, flagged-for-refactoring section, insufficient_data section - candidates.md: ranked optimization candidates with detail per step - hot_paths.md: top 5 hot consumers per aggregate (by field access count) - dead_fields.md: fields accessed (per-consumer breakdown) Total report: 2136 lines (was 1814).
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -23,9 +23,9 @@ _(none)_
|
||||
|
||||
### `src\ai_client.py` (3 consumers)
|
||||
|
||||
- `src.ai_client._build_file_context_text` (line 0)
|
||||
- `src.ai_client._build_file_diff_text` (line 0)
|
||||
- `src.ai_client._reread_file_items_result` (line 0)
|
||||
- `src.ai_client._build_file_context_text` (line 0)
|
||||
|
||||
## Field access matrix
|
||||
|
||||
@@ -98,6 +98,6 @@ FileItems: access_pattern=whole_struct, frequency=per_turn, struct_field_count=5
|
||||
|
||||
| function | pattern | field_accesses | confidence |
|
||||
|---|---|---|---|
|
||||
| `src.ai_client._build_file_context_text` | `whole_struct` | | low |
|
||||
| `src.ai_client._build_file_diff_text` | `whole_struct` | | low |
|
||||
| `src.ai_client._reread_file_items_result` | `whole_struct` | | low |
|
||||
| `src.ai_client._build_file_context_text` | `whole_struct` | | low |
|
||||
|
||||
@@ -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 ===
|
||||
"mixed" access-pattern
|
||||
|
||||
\ === access_pattern_evidence (2 items) ===
|
||||
"src.provider_state.replace_all" "mixed" 2 "high" ap-evidence
|
||||
"src.provider_state.append" "mixed" 2 "high" ap-evidence
|
||||
"src.provider_state.replace_all" "mixed" 2 "high" ap-evidence
|
||||
|
||||
\ === frequency ===
|
||||
"per_turn" frequency
|
||||
|
||||
@@ -23,15 +23,15 @@ _(none)_
|
||||
|
||||
### `src\provider_state.py` (2 consumers)
|
||||
|
||||
- `src.provider_state.replace_all` (line 0)
|
||||
- `src.provider_state.append` (line 0)
|
||||
- `src.provider_state.replace_all` (line 0)
|
||||
|
||||
## Field access matrix
|
||||
|
||||
| consumer | lock | messages |
|
||||
|---|---|---|
|
||||
| `replace_all` | 1 | 1 |
|
||||
| `append` | 1 | 1 |
|
||||
| `replace_all` | 1 | 1 |
|
||||
|
||||
## Access pattern
|
||||
|
||||
@@ -100,5 +100,5 @@ HistoryMessage: access_pattern=mixed, frequency=per_turn, struct_field_count=5,
|
||||
|
||||
| function | pattern | field_accesses | confidence |
|
||||
|---|---|---|---|
|
||||
| `src.provider_state.replace_all` | `mixed` | `lock`=1, `messages`=1 | high |
|
||||
| `src.provider_state.append` | `mixed` | `lock`=1, `messages`=1 | high |
|
||||
| `src.provider_state.replace_all` | `mixed` | `lock`=1, `messages`=1 | high |
|
||||
|
||||
@@ -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: mixed
|
||||
|- frequency: per_turn
|
||||
|- result_coverage: 0 producers, 2 consumers
|
||||
|
||||
@@ -8,170 +8,170 @@
|
||||
"discussion" mem-dim
|
||||
|
||||
\ === producers (77 items) ===
|
||||
"src.api_hook_client.get_gui_diagnostics" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_gui_state" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_get_api_project" "src\app_controller.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_session" "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_performance" "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_patch_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller._offload_entry_payload" "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_startup_timeline" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_project" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_session_insights" "src\app_controller.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.api_hook_client.get_mma_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.set_value" "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.api_hook_client.get_system_telemetry" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_api_project" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.ai_client._load_credentials" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.project_manager.load_history" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.models._load_config_from_disk" "src\models.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.get_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.api_hook_client.drag" "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.post_gui" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_session" "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_mma_status" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.project_manager.load_project" "src\project_manager.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_context_state" "src\api_hook_client.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_patch_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_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.project_manager.migrate_from_legacy_config" "src\project_manager.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_gui_diagnostics" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.select_tab" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_token_stats" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.token_stats" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.status" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_system_telemetry" "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_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_get_api_session" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.project_manager.default_discussion" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_node_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_mma_status" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.wait" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.wait_for_project_switch" "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.get_warmup_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.ai_client._add_bleed_derived" "src\ai_client.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_performance" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_project_switch_status" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.models.to_dict" "src\models.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_api_project" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_get_session" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_context" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.click" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_mma_workers" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.ai_client._load_credentials" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.ai_client._content_block_to_dict" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_session_insights" "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.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_generate" "src\app_controller.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.project_manager.flat_config" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.trigger_patch" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.select_list_item" "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.select_tab" "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.app_controller._api_generate" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.load_config" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.ai_client.get_gemini_cache_stats" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.project_manager.default_project" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.app_controller.wait" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_status" "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.ollama_chat" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.wait_for_project_switch" "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.api_hook_client.get_mma_status" "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.get_gui_health" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.models._load_config_from_disk" "src\models.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_session" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_session" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.click" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.models.to_dict" "src\models.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._api_get_api_project" "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._api_get_performance" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.post_gui" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.ai_client._content_block_to_dict" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.project_manager.str_to_entry" "src\project_manager.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_startup_timeline" "src\api_hook_client.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_api_session" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_get_context" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_context" "src\app_controller.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_gui_state" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_performance" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_warmup_wait" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.ai_client._add_bleed_derived" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.set_value" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller.get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.project_manager.default_discussion" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.ai_client._dashscope_call" "src\ai_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.get_warmup_status" "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.get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.apply_patch" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.app_controller._api_get_diagnostics" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.project_manager.load_project" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.app_controller.status" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.app_controller.load_config" "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.get_project" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.project_manager.default_project" "src\project_manager.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.post_project" "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._api_get_session" "src\app_controller.py" 0 "producer" fn-ref
|
||||
"src.ai_client.get_gemini_cache_stats" "src\ai_client.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.get_gui_state" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
"src.api_hook_client.push_event" "src\api_hook_client.py" 0 "producer" fn-ref
|
||||
|
||||
\ === consumers (35 items) ===
|
||||
"src.ai_client._add_history_cache_breakpoint" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.models.from_dict" "src\models.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._start_track_logic_result" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.entry_to_str" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._on_comms_entry" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._trim_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.aggregate.build_tier3_context" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.ai_client.ollama_chat" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.flat_config" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._repair_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._estimate_message_tokens" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._strip_private_keys" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.aggregate._build_files_section_from_items" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.models._save_config_to_disk" "src\models.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._repair_deepseek_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._pre_dispatch" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._start_track_logic" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._estimate_prompt_tokens" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.save_project" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._repair_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.migrate_from_legacy_config" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._start_track_logic" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._trim_minimax_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._append_comms" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._trim_anthropic_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.save_project" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._start_track_logic_result" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.flat_config" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._add_bleed_derived" "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._estimate_message_tokens" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.aggregate.build_tier3_context" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._strip_cache_controls" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.format_discussion" "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.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.build_markdown_from_items" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.aggregate.build_markdown_no_history" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.app_controller._offload_entry_payload" "src\app_controller.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._add_bleed_derived" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._trim_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._dashscope_call" "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.ai_client._dashscope_call" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.models.from_dict" "src\models.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._add_history_cache_breakpoint" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._pre_dispatch" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.aggregate.build_markdown_no_history" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.aggregate._build_files_section_from_items" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.ai_client._repair_minimax_history" "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._repair_deepseek_history" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
"src.aggregate.build_markdown_from_items" "src\aggregate.py" 0 "consumer" fn-ref
|
||||
"src.project_manager.entry_to_str" "src\project_manager.py" 0 "consumer" fn-ref
|
||||
"src.ai_client.ollama_chat" "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._strip_stale_file_refreshes" "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._append_comms" "src\ai_client.py" 0 "consumer" fn-ref
|
||||
|
||||
\ === access_pattern ===
|
||||
"whole_struct" access-pattern
|
||||
|
||||
\ === access_pattern_evidence (35 items) ===
|
||||
"src.ai_client._add_history_cache_breakpoint" "whole_struct" 0 "low" ap-evidence
|
||||
"src.models.from_dict" "mixed" 2 "high" ap-evidence
|
||||
"src.app_controller._start_track_logic_result" "field_by_field" 17 "high" ap-evidence
|
||||
"src.project_manager.entry_to_str" "whole_struct" 1 "high" ap-evidence
|
||||
"src.app_controller._on_comms_entry" "field_by_field" 10 "high" ap-evidence
|
||||
"src.ai_client._trim_minimax_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.aggregate.build_tier3_context" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client.ollama_chat" "whole_struct" 0 "low" ap-evidence
|
||||
"src.project_manager.flat_config" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._repair_minimax_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._estimate_message_tokens" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._strip_private_keys" "whole_struct" 0 "low" ap-evidence
|
||||
"src.aggregate._build_files_section_from_items" "whole_struct" 0 "low" ap-evidence
|
||||
"src.models._save_config_to_disk" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._repair_deepseek_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._pre_dispatch" "whole_struct" 0 "low" ap-evidence
|
||||
"src.app_controller._start_track_logic" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._estimate_prompt_tokens" "whole_struct" 0 "low" ap-evidence
|
||||
"src.project_manager.save_project" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._repair_anthropic_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.project_manager.migrate_from_legacy_config" "whole_struct" 1 "high" ap-evidence
|
||||
"src.app_controller._start_track_logic" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._trim_minimax_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._append_comms" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._trim_anthropic_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.project_manager.save_project" "mixed" 2 "high" ap-evidence
|
||||
"src.app_controller._start_track_logic_result" "field_by_field" 17 "high" ap-evidence
|
||||
"src.project_manager.flat_config" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._add_bleed_derived" "field_by_field" 9 "high" ap-evidence
|
||||
"src.ai_client._estimate_prompt_tokens" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._estimate_message_tokens" "mixed" 2 "high" ap-evidence
|
||||
"src.aggregate.build_tier3_context" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._strip_cache_controls" "whole_struct" 0 "low" ap-evidence
|
||||
"src.project_manager.format_discussion" "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" "field_by_field" 3 "high" ap-evidence
|
||||
"src.app_controller._refresh_api_metrics" "field_by_field" 11 "high" ap-evidence
|
||||
"src.project_manager.format_discussion" "whole_struct" 0 "low" ap-evidence
|
||||
"src.aggregate.build_markdown_from_items" "whole_struct" 0 "low" ap-evidence
|
||||
"src.aggregate.build_markdown_no_history" "whole_struct" 0 "low" ap-evidence
|
||||
"src.app_controller._offload_entry_payload" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._add_bleed_derived" "field_by_field" 9 "high" ap-evidence
|
||||
"src.ai_client._trim_anthropic_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._execute_single_tool_call_async" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._dashscope_call" "whole_struct" 0 "low" ap-evidence
|
||||
"src.app_controller._on_comms_entry" "field_by_field" 10 "high" ap-evidence
|
||||
"src.ai_client._invalidate_token_estimate" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._dashscope_call" "whole_struct" 0 "low" ap-evidence
|
||||
"src.models.from_dict" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._add_history_cache_breakpoint" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._pre_dispatch" "whole_struct" 0 "low" ap-evidence
|
||||
"src.aggregate.build_markdown_no_history" "whole_struct" 0 "low" ap-evidence
|
||||
"src.aggregate._build_files_section_from_items" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._repair_minimax_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._repair_anthropic_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client._repair_deepseek_history" "whole_struct" 1 "high" ap-evidence
|
||||
"src.aggregate.build_markdown_from_items" "whole_struct" 0 "low" ap-evidence
|
||||
"src.project_manager.entry_to_str" "whole_struct" 1 "high" ap-evidence
|
||||
"src.ai_client.ollama_chat" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._execute_single_tool_call_async" "mixed" 2 "high" ap-evidence
|
||||
"src.ai_client._strip_stale_file_refreshes" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._strip_cache_controls" "whole_struct" 0 "low" ap-evidence
|
||||
"src.ai_client._append_comms" "whole_struct" 0 "low" ap-evidence
|
||||
|
||||
\ === frequency ===
|
||||
"per_turn" frequency
|
||||
|
||||
\ === frequency_evidence (5 items) ===
|
||||
"src.api_hook_client.get_gui_diagnostics" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
|
||||
"src.app_controller.get_gui_state" "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.api_hook_client.get_node_status" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
|
||||
"src.api_hook_client.post_session" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
|
||||
"src.app_controller._api_status" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
|
||||
"src.app_controller.get_performance" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
|
||||
"src.api_hook_client.get_financial_metrics" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
|
||||
"src.app_controller._api_get_mma_status" "per_turn" "static_analysis" "producer from src\app_controller.py" freq-evidence
|
||||
"src.api_hook_client.get_mma_status" "per_turn" "static_analysis" "producer from src\api_hook_client.py" freq-evidence
|
||||
|
||||
\ === result_coverage ===
|
||||
77 77 35 0 result-coverage
|
||||
|
||||
@@ -19,187 +19,187 @@
|
||||
|
||||
### `src\ai_client.py` (9 producers)
|
||||
|
||||
- `src.ai_client._send_cli_round_result` (line 0)
|
||||
- `src.ai_client.get_token_stats` (line 0)
|
||||
- `src.ai_client._load_credentials` (line 0)
|
||||
- `src.ai_client.get_gemini_cache_stats` (line 0)
|
||||
- `src.ai_client.ollama_chat` (line 0)
|
||||
- `src.ai_client._parse_tool_args_result` (line 0)
|
||||
- `src.ai_client._content_block_to_dict` (line 0)
|
||||
- `src.ai_client._load_credentials` (line 0)
|
||||
- `src.ai_client.get_token_stats` (line 0)
|
||||
- `src.ai_client._send_cli_round_result` (line 0)
|
||||
- `src.ai_client.ollama_chat` (line 0)
|
||||
- `src.ai_client._add_bleed_derived` (line 0)
|
||||
- `src.ai_client._content_block_to_dict` (line 0)
|
||||
- `src.ai_client._dashscope_call` (line 0)
|
||||
- `src.ai_client.get_gemini_cache_stats` (line 0)
|
||||
|
||||
### `src\api_hook_client.py` (33 producers)
|
||||
|
||||
- `src.api_hook_client.get_gui_diagnostics` (line 0)
|
||||
- `src.api_hook_client.get_node_status` (line 0)
|
||||
- `src.api_hook_client.post_session` (line 0)
|
||||
- `src.api_hook_client.get_financial_metrics` (line 0)
|
||||
- `src.api_hook_client.get_patch_status` (line 0)
|
||||
- `src.api_hook_client.get_startup_timeline` (line 0)
|
||||
- `src.api_hook_client.get_project` (line 0)
|
||||
- `src.api_hook_client.drag` (line 0)
|
||||
- `src.api_hook_client.apply_patch` (line 0)
|
||||
- `src.api_hook_client.get_context_state` (line 0)
|
||||
- `src.api_hook_client.get_status` (line 0)
|
||||
- `src.api_hook_client.post_project` (line 0)
|
||||
- `src.api_hook_client.get_mma_status` (line 0)
|
||||
- `src.api_hook_client.set_value` (line 0)
|
||||
- `src.api_hook_client.get_system_telemetry` (line 0)
|
||||
- `src.api_hook_client.push_event` (line 0)
|
||||
- `src.api_hook_client.get_gui_state` (line 0)
|
||||
- `src.api_hook_client.get_context_state` (line 0)
|
||||
- `src.api_hook_client.get_session` (line 0)
|
||||
- `src.api_hook_client.drag` (line 0)
|
||||
- `src.api_hook_client.post_gui` (line 0)
|
||||
- `src.api_hook_client.get_patch_status` (line 0)
|
||||
- `src.api_hook_client.get_status` (line 0)
|
||||
- `src.api_hook_client.get_gui_diagnostics` (line 0)
|
||||
- `src.api_hook_client.select_tab` (line 0)
|
||||
- `src.api_hook_client.get_node_status` (line 0)
|
||||
- `src.api_hook_client.wait_for_project_switch` (line 0)
|
||||
- `src.api_hook_client.get_warmup_status` (line 0)
|
||||
- `src.api_hook_client.get_io_pool_status` (line 0)
|
||||
- `src.api_hook_client.get_project_switch_status` (line 0)
|
||||
- `src.api_hook_client.click` (line 0)
|
||||
- `src.api_hook_client.get_mma_workers` (line 0)
|
||||
- `src.api_hook_client.get_gui_health` (line 0)
|
||||
- `src.api_hook_client.trigger_patch` (line 0)
|
||||
- `src.api_hook_client.select_list_item` (line 0)
|
||||
- `src.api_hook_client.select_tab` (line 0)
|
||||
- `src.api_hook_client.reject_patch` (line 0)
|
||||
- `src.api_hook_client.wait_for_project_switch` (line 0)
|
||||
- `src.api_hook_client.get_mma_status` (line 0)
|
||||
- `src.api_hook_client.get_gui_health` (line 0)
|
||||
- `src.api_hook_client.get_session` (line 0)
|
||||
- `src.api_hook_client.post_gui` (line 0)
|
||||
- `src.api_hook_client.click` (line 0)
|
||||
- `src.api_hook_client.get_project_switch_status` (line 0)
|
||||
- `src.api_hook_client.post_session` (line 0)
|
||||
- `src.api_hook_client.get_startup_timeline` (line 0)
|
||||
- `src.api_hook_client.get_mma_workers` (line 0)
|
||||
- `src.api_hook_client.right_click` (line 0)
|
||||
- `src.api_hook_client.get_performance` (line 0)
|
||||
- `src.api_hook_client.apply_patch` (line 0)
|
||||
- `src.api_hook_client.reject_patch` (line 0)
|
||||
- `src.api_hook_client.get_project` (line 0)
|
||||
- `src.api_hook_client.post_project` (line 0)
|
||||
- `src.api_hook_client.get_warmup_wait` (line 0)
|
||||
- `src.api_hook_client.set_value` (line 0)
|
||||
- `src.api_hook_client.get_warmup_status` (line 0)
|
||||
- `src.api_hook_client.get_gui_state` (line 0)
|
||||
- `src.api_hook_client.push_event` (line 0)
|
||||
|
||||
### `src\app_controller.py` (26 producers)
|
||||
|
||||
- `src.app_controller.get_gui_state` (line 0)
|
||||
- `src.app_controller._api_get_api_project` (line 0)
|
||||
- `src.app_controller._offload_entry_payload` (line 0)
|
||||
- `src.app_controller.get_session_insights` (line 0)
|
||||
- `src.app_controller.generate` (line 0)
|
||||
- `src.app_controller.get_api_session` (line 0)
|
||||
- `src.app_controller.get_mma_status` (line 0)
|
||||
- `src.app_controller._api_token_stats` (line 0)
|
||||
- `src.app_controller.token_stats` (line 0)
|
||||
- `src.app_controller.status` (line 0)
|
||||
- `src.app_controller._api_get_diagnostics` (line 0)
|
||||
- `src.app_controller._api_get_api_session` (line 0)
|
||||
- `src.app_controller.get_performance` (line 0)
|
||||
- `src.app_controller.get_api_project` (line 0)
|
||||
- `src.app_controller._api_get_session` (line 0)
|
||||
- `src.app_controller.get_context` (line 0)
|
||||
- `src.app_controller._api_generate` (line 0)
|
||||
- `src.app_controller.load_config` (line 0)
|
||||
- `src.app_controller.wait` (line 0)
|
||||
- `src.app_controller._api_status` (line 0)
|
||||
- `src.app_controller.get_performance` (line 0)
|
||||
- `src.app_controller._api_get_mma_status` (line 0)
|
||||
- `src.app_controller._api_get_context` (line 0)
|
||||
- `src.app_controller.get_api_project` (line 0)
|
||||
- `src.app_controller.get_session` (line 0)
|
||||
- `src.app_controller.get_api_session` (line 0)
|
||||
- `src.app_controller._api_token_stats` (line 0)
|
||||
- `src.app_controller._offload_entry_payload` (line 0)
|
||||
- `src.app_controller.get_mma_status` (line 0)
|
||||
- `src.app_controller.wait` (line 0)
|
||||
- `src.app_controller.get_session_insights` (line 0)
|
||||
- `src.app_controller._api_generate` (line 0)
|
||||
- `src.app_controller.generate` (line 0)
|
||||
- `src.app_controller.token_stats` (line 0)
|
||||
- `src.app_controller._api_get_api_project` (line 0)
|
||||
- `src.app_controller.get_gui_state` (line 0)
|
||||
- `src.app_controller._api_get_performance` (line 0)
|
||||
- `src.app_controller._api_get_gui_state` (line 0)
|
||||
- `src.app_controller._api_get_api_session` (line 0)
|
||||
- `src.app_controller._api_get_context` (line 0)
|
||||
- `src.app_controller.get_context` (line 0)
|
||||
- `src.app_controller.get_diagnostics` (line 0)
|
||||
- `src.app_controller._api_get_diagnostics` (line 0)
|
||||
- `src.app_controller.status` (line 0)
|
||||
- `src.app_controller.load_config` (line 0)
|
||||
- `src.app_controller._api_get_gui_state` (line 0)
|
||||
- `src.app_controller._api_get_session` (line 0)
|
||||
|
||||
### `src\models.py` (2 producers)
|
||||
|
||||
- `src.models.to_dict` (line 0)
|
||||
- `src.models._load_config_from_disk` (line 0)
|
||||
- `src.models.to_dict` (line 0)
|
||||
|
||||
### `src\project_manager.py` (7 producers)
|
||||
|
||||
- `src.project_manager.flat_config` (line 0)
|
||||
- `src.project_manager.load_project` (line 0)
|
||||
- `src.project_manager.str_to_entry` (line 0)
|
||||
- `src.project_manager.migrate_from_legacy_config` (line 0)
|
||||
- `src.project_manager.load_history` (line 0)
|
||||
- `src.project_manager.default_project` (line 0)
|
||||
- `src.project_manager.default_discussion` (line 0)
|
||||
- `src.project_manager.migrate_from_legacy_config` (line 0)
|
||||
- `src.project_manager.flat_config` (line 0)
|
||||
- `src.project_manager.str_to_entry` (line 0)
|
||||
- `src.project_manager.load_project` (line 0)
|
||||
- `src.project_manager.default_project` (line 0)
|
||||
|
||||
## Consumers (35)
|
||||
|
||||
### `src\aggregate.py` (5 consumers)
|
||||
|
||||
- `src.aggregate.build_tier3_context` (line 0)
|
||||
- `src.aggregate._build_files_section_from_items` (line 0)
|
||||
- `src.aggregate.run` (line 0)
|
||||
- `src.aggregate.build_markdown_from_items` (line 0)
|
||||
- `src.aggregate.build_markdown_no_history` (line 0)
|
||||
- `src.aggregate._build_files_section_from_items` (line 0)
|
||||
- `src.aggregate.build_markdown_from_items` (line 0)
|
||||
|
||||
### `src\ai_client.py` (18 consumers)
|
||||
|
||||
- `src.ai_client._add_history_cache_breakpoint` (line 0)
|
||||
- `src.ai_client._trim_minimax_history` (line 0)
|
||||
- `src.ai_client.ollama_chat` (line 0)
|
||||
- `src.ai_client._repair_minimax_history` (line 0)
|
||||
- `src.ai_client._estimate_message_tokens` (line 0)
|
||||
- `src.ai_client._strip_private_keys` (line 0)
|
||||
- `src.ai_client._repair_deepseek_history` (line 0)
|
||||
- `src.ai_client._pre_dispatch` (line 0)
|
||||
- `src.ai_client._estimate_prompt_tokens` (line 0)
|
||||
- `src.ai_client._repair_anthropic_history` (line 0)
|
||||
- `src.ai_client._add_bleed_derived` (line 0)
|
||||
- `src.ai_client._trim_anthropic_history` (line 0)
|
||||
- `src.ai_client._execute_single_tool_call_async` (line 0)
|
||||
- `src.ai_client._dashscope_call` (line 0)
|
||||
- `src.ai_client._invalidate_token_estimate` (line 0)
|
||||
- `src.ai_client._strip_stale_file_refreshes` (line 0)
|
||||
- `src.ai_client._strip_cache_controls` (line 0)
|
||||
- `src.ai_client._trim_minimax_history` (line 0)
|
||||
- `src.ai_client._append_comms` (line 0)
|
||||
- `src.ai_client._trim_anthropic_history` (line 0)
|
||||
- `src.ai_client._add_bleed_derived` (line 0)
|
||||
- `src.ai_client._estimate_prompt_tokens` (line 0)
|
||||
- `src.ai_client._estimate_message_tokens` (line 0)
|
||||
- `src.ai_client._strip_cache_controls` (line 0)
|
||||
- `src.ai_client._invalidate_token_estimate` (line 0)
|
||||
- `src.ai_client._dashscope_call` (line 0)
|
||||
- `src.ai_client._add_history_cache_breakpoint` (line 0)
|
||||
- `src.ai_client._pre_dispatch` (line 0)
|
||||
- `src.ai_client._repair_minimax_history` (line 0)
|
||||
- `src.ai_client._repair_anthropic_history` (line 0)
|
||||
- `src.ai_client._repair_deepseek_history` (line 0)
|
||||
- `src.ai_client.ollama_chat` (line 0)
|
||||
- `src.ai_client._execute_single_tool_call_async` (line 0)
|
||||
- `src.ai_client._strip_stale_file_refreshes` (line 0)
|
||||
|
||||
### `src\app_controller.py` (5 consumers)
|
||||
|
||||
- `src.app_controller._start_track_logic_result` (line 0)
|
||||
- `src.app_controller._on_comms_entry` (line 0)
|
||||
- `src.app_controller._start_track_logic` (line 0)
|
||||
- `src.app_controller._refresh_api_metrics` (line 0)
|
||||
- `src.app_controller._start_track_logic_result` (line 0)
|
||||
- `src.app_controller._offload_entry_payload` (line 0)
|
||||
- `src.app_controller._refresh_api_metrics` (line 0)
|
||||
- `src.app_controller._on_comms_entry` (line 0)
|
||||
|
||||
### `src\models.py` (2 consumers)
|
||||
|
||||
- `src.models.from_dict` (line 0)
|
||||
- `src.models._save_config_to_disk` (line 0)
|
||||
- `src.models.from_dict` (line 0)
|
||||
|
||||
### `src\project_manager.py` (5 consumers)
|
||||
|
||||
- `src.project_manager.entry_to_str` (line 0)
|
||||
- `src.project_manager.flat_config` (line 0)
|
||||
- `src.project_manager.save_project` (line 0)
|
||||
- `src.project_manager.migrate_from_legacy_config` (line 0)
|
||||
- `src.project_manager.save_project` (line 0)
|
||||
- `src.project_manager.flat_config` (line 0)
|
||||
- `src.project_manager.format_discussion` (line 0)
|
||||
- `src.project_manager.entry_to_str` (line 0)
|
||||
|
||||
## Field access matrix
|
||||
|
||||
| consumer | _est_tokens | _gemini_cache_text | _offload_entry_payload | _pending_comms | _pending_comms_lock | _pending_gui_tasks | _pending_gui_tasks_lock | _pending_history_adds | _pending_history_adds_lock | _recalculate_session_usage | _start_track_logic_result | _token_history | _token_stats | _topological_sort_tickets_result | _update_cached_stats | active_discussion | active_project_path | active_project_root | ai_status | append |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| `_add_history_cache_breakpoint` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `from_dict` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_start_track_logic_result` | . | . | . | . | . | 2 | 2 | . | . | . | . | . | . | 1 | . | 1 | 1 | 1 | 4 | . |
|
||||
| `entry_to_str` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_on_comms_entry` | . | . | 1 | 1 | 1 | . | . | 4 | 4 | . | . | 1 | . | . | . | . | . | . | . | . |
|
||||
| `_trim_minimax_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `build_tier3_context` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `ollama_chat` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `flat_config` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_repair_minimax_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `_estimate_message_tokens` | 1 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_strip_private_keys` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_build_files_section_from_items` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_save_config_to_disk` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_repair_deepseek_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `_pre_dispatch` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_start_track_logic` | . | . | . | . | . | . | . | . | . | . | 1 | . | . | . | . | . | . | . | 1 | . |
|
||||
| `_estimate_prompt_tokens` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `save_project` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_repair_anthropic_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `migrate_from_legacy_config` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_start_track_logic` | . | . | . | . | . | . | . | . | . | . | 1 | . | . | . | . | . | . | . | 1 | . |
|
||||
| `_trim_minimax_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_append_comms` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_trim_anthropic_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `save_project` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_start_track_logic_result` | . | . | . | . | . | 2 | 2 | . | . | . | . | . | . | 1 | . | 1 | 1 | 1 | 4 | . |
|
||||
| `flat_config` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_add_bleed_derived` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_estimate_prompt_tokens` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_estimate_message_tokens` | 1 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `build_tier3_context` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_strip_cache_controls` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `format_discussion` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_offload_entry_payload` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_save_config_to_disk` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `run` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_refresh_api_metrics` | . | 1 | . | . | . | . | . | . | . | 1 | . | . | 1 | . | 1 | . | . | . | . | . |
|
||||
| `format_discussion` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `build_markdown_from_items` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `build_markdown_no_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_offload_entry_payload` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_add_bleed_derived` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_trim_anthropic_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_execute_single_tool_call_async` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_dashscope_call` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_on_comms_entry` | . | . | 1 | 1 | 1 | . | . | 4 | 4 | . | . | 1 | . | . | . | . | . | . | . | . |
|
||||
| `_invalidate_token_estimate` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_dashscope_call` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `from_dict` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_add_history_cache_breakpoint` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_pre_dispatch` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `build_markdown_no_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_build_files_section_from_items` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_repair_minimax_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `_repair_anthropic_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `_repair_deepseek_history` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | 1 |
|
||||
| `build_markdown_from_items` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `entry_to_str` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `ollama_chat` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_execute_single_tool_call_async` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_strip_stale_file_refreshes` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_strip_cache_controls` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
| `_append_comms` | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
|
||||
|
||||
_... 33 more fields_
|
||||
|
||||
@@ -268,10 +268,10 @@ _... 33 more fields_
|
||||
| `pop` | 3 | hot |
|
||||
| `append` | 3 | hot |
|
||||
| `ai_status` | 2 | used |
|
||||
| `session_usage` | 2 | used |
|
||||
| `files` | 2 | used |
|
||||
| `content` | 1 | used |
|
||||
| `marker` | 1 | used |
|
||||
| `session_usage` | 2 | used |
|
||||
| `_start_track_logic_result` | 1 | used |
|
||||
| `discussion` | 1 | used |
|
||||
| `context_files` | 1 | used |
|
||||
| `_pending_gui_tasks_lock` | 1 | used |
|
||||
| `_topological_sort_tickets_result` | 1 | used |
|
||||
@@ -287,17 +287,15 @@ _... 33 more fields_
|
||||
| `_pending_gui_tasks` | 1 | used |
|
||||
| `mma_step_mode` | 1 | used |
|
||||
| `active_project_path` | 1 | used |
|
||||
| `local_ts` | 1 | used |
|
||||
| `_offload_entry_payload` | 1 | used |
|
||||
| `ui_auto_add_history` | 1 | used |
|
||||
| `_pending_comms_lock` | 1 | used |
|
||||
| `_pending_history_adds_lock` | 1 | used |
|
||||
| `_token_history` | 1 | used |
|
||||
| `_pending_comms` | 1 | used |
|
||||
| `_pending_history_adds` | 1 | used |
|
||||
| `estimated_prompt_tokens` | 1 | used |
|
||||
| `max_prompt_tokens` | 1 | used |
|
||||
| `utilization_pct` | 1 | used |
|
||||
| `headroom` | 1 | used |
|
||||
| `would_trim` | 1 | used |
|
||||
| `sys_tokens` | 1 | used |
|
||||
| `tool_tokens` | 1 | used |
|
||||
| `history_tokens` | 1 | used |
|
||||
| `_est_tokens` | 1 | used |
|
||||
| `_start_track_logic_result` | 1 | used |
|
||||
| `discussion` | 1 | used |
|
||||
| `output` | 1 | used |
|
||||
| `latency` | 1 | used |
|
||||
| `_recalculate_session_usage` | 1 | used |
|
||||
@@ -308,14 +306,16 @@ _... 33 more fields_
|
||||
| `error` | 1 | used |
|
||||
| `_update_cached_stats` | 1 | used |
|
||||
| `usage` | 1 | used |
|
||||
| `estimated_prompt_tokens` | 1 | used |
|
||||
| `max_prompt_tokens` | 1 | used |
|
||||
| `utilization_pct` | 1 | used |
|
||||
| `headroom` | 1 | used |
|
||||
| `would_trim` | 1 | used |
|
||||
| `sys_tokens` | 1 | used |
|
||||
| `tool_tokens` | 1 | used |
|
||||
| `history_tokens` | 1 | used |
|
||||
| `local_ts` | 1 | used |
|
||||
| `_offload_entry_payload` | 1 | used |
|
||||
| `ui_auto_add_history` | 1 | used |
|
||||
| `_pending_comms_lock` | 1 | used |
|
||||
| `_pending_history_adds_lock` | 1 | used |
|
||||
| `_token_history` | 1 | used |
|
||||
| `_pending_comms` | 1 | used |
|
||||
| `_pending_history_adds` | 1 | used |
|
||||
| `content` | 1 | used |
|
||||
| `marker` | 1 | used |
|
||||
| `items` | 1 | used |
|
||||
|
||||
## Optimization candidates
|
||||
@@ -332,48 +332,48 @@ Metadata: access_pattern=whole_struct, frequency=per_turn, struct_field_count=10
|
||||
|
||||
| function | pattern | field_accesses | confidence |
|
||||
|---|---|---|---|
|
||||
| `src.ai_client._add_history_cache_breakpoint` | `whole_struct` | | low |
|
||||
| `src.models.from_dict` | `mixed` | `content`=1, `marker`=1 | high |
|
||||
| `src.app_controller._start_track_logic_result` | `field_by_field` | `ai_status`=4, `context_files`=1, `get`=3, `_pending_gui_tasks_lock`=2, `_topological_sort_tickets_result`=1, `active_project_root`=1, `event_queue`=1, `engines`=1, `project`=1, `active_discussion`=1 (+7 more) | high |
|
||||
| `src.project_manager.entry_to_str` | `whole_struct` | `get`=4 | high |
|
||||
| `src.app_controller._on_comms_entry` | `field_by_field` | `local_ts`=1, `_offload_entry_payload`=1, `get`=7, `ui_auto_add_history`=3, `_pending_comms_lock`=1, `session_usage`=5, `_pending_history_adds_lock`=4, `_token_history`=1, `_pending_comms`=1, `_pending_history_adds`=4 | high |
|
||||
| `src.ai_client._trim_minimax_history` | `whole_struct` | `pop`=4 | high |
|
||||
| `src.aggregate.build_tier3_context` | `whole_struct` | | low |
|
||||
| `src.ai_client.ollama_chat` | `whole_struct` | | low |
|
||||
| `src.project_manager.flat_config` | `whole_struct` | `get`=7 | high |
|
||||
| `src.ai_client._repair_minimax_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.ai_client._estimate_message_tokens` | `mixed` | `_est_tokens`=1, `get`=2 | high |
|
||||
| `src.ai_client._strip_private_keys` | `whole_struct` | | low |
|
||||
| `src.aggregate._build_files_section_from_items` | `whole_struct` | | low |
|
||||
| `src.models._save_config_to_disk` | `whole_struct` | | low |
|
||||
| `src.ai_client._repair_deepseek_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.ai_client._pre_dispatch` | `whole_struct` | | low |
|
||||
| `src.app_controller._start_track_logic` | `mixed` | `_start_track_logic_result`=1, `ai_status`=1 | high |
|
||||
| `src.ai_client._estimate_prompt_tokens` | `whole_struct` | | low |
|
||||
| `src.project_manager.save_project` | `mixed` | `discussion`=2, `files`=3 | high |
|
||||
| `src.ai_client._repair_anthropic_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.project_manager.migrate_from_legacy_config` | `whole_struct` | `get`=2 | high |
|
||||
| `src.app_controller._start_track_logic` | `mixed` | `_start_track_logic_result`=1, `ai_status`=1 | high |
|
||||
| `src.ai_client._trim_minimax_history` | `whole_struct` | `pop`=4 | high |
|
||||
| `src.ai_client._append_comms` | `whole_struct` | | low |
|
||||
| `src.ai_client._trim_anthropic_history` | `whole_struct` | `pop`=5 | high |
|
||||
| `src.project_manager.save_project` | `mixed` | `discussion`=2, `files`=3 | high |
|
||||
| `src.app_controller._start_track_logic_result` | `field_by_field` | `ai_status`=4, `context_files`=1, `get`=3, `_pending_gui_tasks_lock`=2, `_topological_sort_tickets_result`=1, `active_project_root`=1, `event_queue`=1, `engines`=1, `project`=1, `active_discussion`=1 (+7 more) | high |
|
||||
| `src.project_manager.flat_config` | `whole_struct` | `get`=7 | high |
|
||||
| `src.ai_client._add_bleed_derived` | `field_by_field` | `estimated_prompt_tokens`=1, `max_prompt_tokens`=1, `utilization_pct`=1, `headroom`=1, `would_trim`=1, `sys_tokens`=1, `tool_tokens`=1, `history_tokens`=1, `get`=3 | high |
|
||||
| `src.ai_client._estimate_prompt_tokens` | `whole_struct` | | low |
|
||||
| `src.ai_client._estimate_message_tokens` | `mixed` | `_est_tokens`=1, `get`=2 | high |
|
||||
| `src.aggregate.build_tier3_context` | `whole_struct` | | low |
|
||||
| `src.ai_client._strip_cache_controls` | `whole_struct` | | low |
|
||||
| `src.project_manager.format_discussion` | `whole_struct` | | low |
|
||||
| `src.app_controller._offload_entry_payload` | `whole_struct` | | low |
|
||||
| `src.models._save_config_to_disk` | `whole_struct` | | low |
|
||||
| `src.aggregate.run` | `field_by_field` | `output`=1, `files`=2, `get`=7 | high |
|
||||
| `src.app_controller._refresh_api_metrics` | `field_by_field` | `latency`=1, `_recalculate_session_usage`=1, `_token_stats`=1, `get`=2, `_gemini_cache_text`=1, `vendor_quota`=1, `last_error`=1, `error`=2, `_update_cached_stats`=1, `session_usage`=2 (+1 more) | high |
|
||||
| `src.project_manager.format_discussion` | `whole_struct` | | low |
|
||||
| `src.aggregate.build_markdown_from_items` | `whole_struct` | | low |
|
||||
| `src.aggregate.build_markdown_no_history` | `whole_struct` | | low |
|
||||
| `src.app_controller._offload_entry_payload` | `whole_struct` | | low |
|
||||
| `src.ai_client._add_bleed_derived` | `field_by_field` | `estimated_prompt_tokens`=1, `max_prompt_tokens`=1, `utilization_pct`=1, `headroom`=1, `would_trim`=1, `sys_tokens`=1, `tool_tokens`=1, `history_tokens`=1, `get`=3 | high |
|
||||
| `src.ai_client._trim_anthropic_history` | `whole_struct` | `pop`=5 | high |
|
||||
| `src.ai_client._execute_single_tool_call_async` | `mixed` | `get`=2, `items`=1 | high |
|
||||
| `src.ai_client._dashscope_call` | `whole_struct` | | low |
|
||||
| `src.app_controller._on_comms_entry` | `field_by_field` | `local_ts`=1, `_offload_entry_payload`=1, `get`=7, `ui_auto_add_history`=3, `_pending_comms_lock`=1, `session_usage`=5, `_pending_history_adds_lock`=4, `_token_history`=1, `_pending_comms`=1, `_pending_history_adds`=4 | high |
|
||||
| `src.ai_client._invalidate_token_estimate` | `whole_struct` | `pop`=1 | high |
|
||||
| `src.ai_client._dashscope_call` | `whole_struct` | | low |
|
||||
| `src.models.from_dict` | `mixed` | `content`=1, `marker`=1 | high |
|
||||
| `src.ai_client._add_history_cache_breakpoint` | `whole_struct` | | low |
|
||||
| `src.ai_client._pre_dispatch` | `whole_struct` | | low |
|
||||
| `src.aggregate.build_markdown_no_history` | `whole_struct` | | low |
|
||||
| `src.aggregate._build_files_section_from_items` | `whole_struct` | | low |
|
||||
| `src.ai_client._repair_minimax_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.ai_client._repair_anthropic_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.ai_client._repair_deepseek_history` | `whole_struct` | `append`=1 | high |
|
||||
| `src.aggregate.build_markdown_from_items` | `whole_struct` | | low |
|
||||
| `src.project_manager.entry_to_str` | `whole_struct` | `get`=4 | high |
|
||||
| `src.ai_client.ollama_chat` | `whole_struct` | | low |
|
||||
| `src.ai_client._execute_single_tool_call_async` | `mixed` | `get`=2, `items`=1 | high |
|
||||
| `src.ai_client._strip_stale_file_refreshes` | `whole_struct` | | low |
|
||||
| `src.ai_client._strip_cache_controls` | `whole_struct` | | low |
|
||||
| `src.ai_client._append_comms` | `whole_struct` | | low |
|
||||
|
||||
### Frequency evidence
|
||||
|
||||
| function | frequency | source | note |
|
||||
|---|---|---|---|
|
||||
| `src.api_hook_client.get_gui_diagnostics` | `per_turn` | `static_analysis` | producer from src\api_hook_client.py |
|
||||
| `src.app_controller.get_gui_state` | `per_turn` | `static_analysis` | producer from src\app_controller.py |
|
||||
| `src.app_controller._api_get_api_project` | `per_turn` | `static_analysis` | producer from src\app_controller.py |
|
||||
| `src.api_hook_client.get_node_status` | `per_turn` | `static_analysis` | producer from src\api_hook_client.py |
|
||||
| `src.api_hook_client.post_session` | `per_turn` | `static_analysis` | producer from src\api_hook_client.py |
|
||||
| `src.app_controller._api_status` | `per_turn` | `static_analysis` | producer from src\app_controller.py |
|
||||
| `src.app_controller.get_performance` | `per_turn` | `static_analysis` | producer from src\app_controller.py |
|
||||
| `src.api_hook_client.get_financial_metrics` | `per_turn` | `static_analysis` | producer from src\api_hook_client.py |
|
||||
| `src.app_controller._api_get_mma_status` | `per_turn` | `static_analysis` | producer from src\app_controller.py |
|
||||
| `src.api_hook_client.get_mma_status` | `per_turn` | `static_analysis` | producer from src\api_hook_client.py |
|
||||
|
||||
@@ -2,119 +2,119 @@ Metadata: Metadata
|
||||
|- kind: typealias
|
||||
|- memory_dim: discussion
|
||||
|- producers: [77]
|
||||
| |- src.api_hook_client.get_gui_diagnostics (producer)
|
||||
| |- src.app_controller.get_gui_state (producer)
|
||||
| |- src.app_controller._api_get_api_project (producer)
|
||||
| |- src.api_hook_client.get_node_status (producer)
|
||||
| |- src.api_hook_client.post_session (producer)
|
||||
| |- src.app_controller._api_status (producer)
|
||||
| |- src.app_controller.get_performance (producer)
|
||||
| |- src.api_hook_client.get_financial_metrics (producer)
|
||||
| |- src.api_hook_client.get_patch_status (producer)
|
||||
| |- src.app_controller._offload_entry_payload (producer)
|
||||
| |- src.ai_client._send_cli_round_result (producer)
|
||||
| |- src.api_hook_client.get_startup_timeline (producer)
|
||||
| |- src.api_hook_client.get_project (producer)
|
||||
| |- src.app_controller.get_session_insights (producer)
|
||||
| |- src.app_controller.generate (producer)
|
||||
| |- src.app_controller._api_get_mma_status (producer)
|
||||
| |- src.api_hook_client.get_mma_status (producer)
|
||||
| |- src.api_hook_client.set_value (producer)
|
||||
| |- src.ai_client._parse_tool_args_result (producer)
|
||||
| |- src.api_hook_client.get_system_telemetry (producer)
|
||||
| |- src.app_controller.get_api_project (producer)
|
||||
| |- src.ai_client._load_credentials (producer)
|
||||
| |- src.project_manager.load_history (producer)
|
||||
| |- src.models._load_config_from_disk (producer)
|
||||
| |- src.api_hook_client.get_context_state (producer)
|
||||
| |- src.api_hook_client.get_session (producer)
|
||||
| |- src.ai_client.get_token_stats (producer)
|
||||
| |- src.api_hook_client.drag (producer)
|
||||
| |- src.project_manager.flat_config (producer)
|
||||
| |- src.api_hook_client.post_gui (producer)
|
||||
| |- src.app_controller.get_session (producer)
|
||||
| |- src.app_controller.get_api_session (producer)
|
||||
| |- src.app_controller.get_mma_status (producer)
|
||||
| |- src.project_manager.load_project (producer)
|
||||
| |- src.api_hook_client.apply_patch (producer)
|
||||
| |- src.api_hook_client.get_context_state (producer)
|
||||
| |- src.ai_client._send_cli_round_result (producer)
|
||||
| |- src.api_hook_client.get_patch_status (producer)
|
||||
| |- src.api_hook_client.get_status (producer)
|
||||
| |- src.project_manager.str_to_entry (producer)
|
||||
| |- src.project_manager.migrate_from_legacy_config (producer)
|
||||
| |- src.api_hook_client.post_project (producer)
|
||||
| |- src.api_hook_client.get_gui_diagnostics (producer)
|
||||
| |- src.api_hook_client.select_tab (producer)
|
||||
| |- src.app_controller._api_token_stats (producer)
|
||||
| |- src.app_controller.token_stats (producer)
|
||||
| |- src.app_controller.status (producer)
|
||||
| |- src.api_hook_client.get_system_telemetry (producer)
|
||||
| |- src.api_hook_client.push_event (producer)
|
||||
| |- src.api_hook_client.get_gui_state (producer)
|
||||
| |- src.app_controller._api_get_diagnostics (producer)
|
||||
| |- src.app_controller._api_get_api_session (producer)
|
||||
| |- src.app_controller._offload_entry_payload (producer)
|
||||
| |- src.project_manager.default_discussion (producer)
|
||||
| |- src.api_hook_client.get_node_status (producer)
|
||||
| |- src.app_controller.get_mma_status (producer)
|
||||
| |- src.app_controller.wait (producer)
|
||||
| |- src.api_hook_client.wait_for_project_switch (producer)
|
||||
| |- src.ai_client.ollama_chat (producer)
|
||||
| |- src.api_hook_client.get_warmup_status (producer)
|
||||
| |- src.ai_client._add_bleed_derived (producer)
|
||||
| |- src.api_hook_client.get_io_pool_status (producer)
|
||||
| |- src.app_controller.get_performance (producer)
|
||||
| |- src.api_hook_client.get_project_switch_status (producer)
|
||||
| |- src.models.to_dict (producer)
|
||||
| |- src.app_controller.get_api_project (producer)
|
||||
| |- src.app_controller._api_get_session (producer)
|
||||
| |- src.app_controller.get_context (producer)
|
||||
| |- src.api_hook_client.click (producer)
|
||||
| |- src.api_hook_client.get_mma_workers (producer)
|
||||
| |- src.ai_client._load_credentials (producer)
|
||||
| |- src.ai_client._content_block_to_dict (producer)
|
||||
| |- src.app_controller.get_session_insights (producer)
|
||||
| |- src.api_hook_client.get_gui_health (producer)
|
||||
| |- src.project_manager.migrate_from_legacy_config (producer)
|
||||
| |- src.app_controller._api_generate (producer)
|
||||
| |- src.app_controller.generate (producer)
|
||||
| |- src.app_controller.token_stats (producer)
|
||||
| |- src.project_manager.flat_config (producer)
|
||||
| |- src.api_hook_client.trigger_patch (producer)
|
||||
| |- src.api_hook_client.select_list_item (producer)
|
||||
| |- src.project_manager.load_history (producer)
|
||||
| |- src.api_hook_client.select_tab (producer)
|
||||
| |- src.api_hook_client.reject_patch (producer)
|
||||
| |- src.app_controller._api_generate (producer)
|
||||
| |- src.app_controller.load_config (producer)
|
||||
| |- src.ai_client.get_gemini_cache_stats (producer)
|
||||
| |- src.project_manager.default_project (producer)
|
||||
| |- src.app_controller.wait (producer)
|
||||
| |- src.app_controller._api_status (producer)
|
||||
| |- src.app_controller._api_get_mma_status (producer)
|
||||
| |- src.ai_client.ollama_chat (producer)
|
||||
| |- src.api_hook_client.wait_for_project_switch (producer)
|
||||
| |- src.ai_client._parse_tool_args_result (producer)
|
||||
| |- src.api_hook_client.get_mma_status (producer)
|
||||
| |- src.app_controller._api_get_context (producer)
|
||||
| |- src.api_hook_client.get_gui_health (producer)
|
||||
| |- src.models._load_config_from_disk (producer)
|
||||
| |- src.api_hook_client.get_session (producer)
|
||||
| |- src.app_controller.get_session (producer)
|
||||
| |- src.api_hook_client.click (producer)
|
||||
| |- src.models.to_dict (producer)
|
||||
| |- src.api_hook_client.get_project_switch_status (producer)
|
||||
| |- src.app_controller._api_get_api_project (producer)
|
||||
| |- src.app_controller.get_gui_state (producer)
|
||||
| |- src.app_controller._api_get_performance (producer)
|
||||
| |- src.api_hook_client.post_gui (producer)
|
||||
| |- src.ai_client._content_block_to_dict (producer)
|
||||
| |- src.project_manager.str_to_entry (producer)
|
||||
| |- src.api_hook_client.post_session (producer)
|
||||
| |- src.api_hook_client.get_startup_timeline (producer)
|
||||
| |- src.api_hook_client.get_mma_workers (producer)
|
||||
| |- src.app_controller._api_get_api_session (producer)
|
||||
| |- src.app_controller._api_get_context (producer)
|
||||
| |- src.app_controller.get_context (producer)
|
||||
| |- src.api_hook_client.right_click (producer)
|
||||
| |- src.app_controller._api_get_gui_state (producer)
|
||||
| |- src.api_hook_client.get_performance (producer)
|
||||
| |- src.api_hook_client.get_warmup_wait (producer)
|
||||
| |- src.ai_client._add_bleed_derived (producer)
|
||||
| |- src.api_hook_client.set_value (producer)
|
||||
| |- src.app_controller.get_diagnostics (producer)
|
||||
| |- src.project_manager.default_discussion (producer)
|
||||
| |- src.ai_client._dashscope_call (producer)
|
||||
| |- src.api_hook_client.get_warmup_status (producer)
|
||||
| |- src.api_hook_client.get_performance (producer)
|
||||
| |- src.app_controller.get_diagnostics (producer)
|
||||
| |- src.api_hook_client.apply_patch (producer)
|
||||
| |- src.app_controller._api_get_diagnostics (producer)
|
||||
| |- src.project_manager.load_project (producer)
|
||||
| |- src.app_controller.status (producer)
|
||||
| |- src.app_controller.load_config (producer)
|
||||
| |- src.api_hook_client.reject_patch (producer)
|
||||
| |- src.api_hook_client.get_project (producer)
|
||||
| |- src.project_manager.default_project (producer)
|
||||
| |- src.api_hook_client.post_project (producer)
|
||||
| |- src.app_controller._api_get_gui_state (producer)
|
||||
| |- src.app_controller._api_get_session (producer)
|
||||
| |- src.ai_client.get_gemini_cache_stats (producer)
|
||||
| |- src.api_hook_client.get_warmup_wait (producer)
|
||||
| |- src.api_hook_client.get_gui_state (producer)
|
||||
| |- src.api_hook_client.push_event (producer)
|
||||
|- consumers: [35]
|
||||
| |- src.ai_client._add_history_cache_breakpoint (consumer)
|
||||
| |- src.models.from_dict (consumer)
|
||||
| |- src.app_controller._start_track_logic_result (consumer)
|
||||
| |- src.project_manager.entry_to_str (consumer)
|
||||
| |- src.app_controller._on_comms_entry (consumer)
|
||||
| |- src.ai_client._trim_minimax_history (consumer)
|
||||
| |- src.aggregate.build_tier3_context (consumer)
|
||||
| |- src.ai_client.ollama_chat (consumer)
|
||||
| |- src.project_manager.flat_config (consumer)
|
||||
| |- src.ai_client._repair_minimax_history (consumer)
|
||||
| |- src.ai_client._estimate_message_tokens (consumer)
|
||||
| |- src.ai_client._strip_private_keys (consumer)
|
||||
| |- src.aggregate._build_files_section_from_items (consumer)
|
||||
| |- src.models._save_config_to_disk (consumer)
|
||||
| |- src.ai_client._repair_deepseek_history (consumer)
|
||||
| |- src.ai_client._pre_dispatch (consumer)
|
||||
| |- src.app_controller._start_track_logic (consumer)
|
||||
| |- src.ai_client._estimate_prompt_tokens (consumer)
|
||||
| |- src.project_manager.save_project (consumer)
|
||||
| |- src.ai_client._repair_anthropic_history (consumer)
|
||||
| |- src.project_manager.migrate_from_legacy_config (consumer)
|
||||
| |- src.app_controller._start_track_logic (consumer)
|
||||
| |- src.ai_client._trim_minimax_history (consumer)
|
||||
| |- src.ai_client._append_comms (consumer)
|
||||
| |- src.ai_client._trim_anthropic_history (consumer)
|
||||
| |- src.project_manager.save_project (consumer)
|
||||
| |- src.app_controller._start_track_logic_result (consumer)
|
||||
| |- src.project_manager.flat_config (consumer)
|
||||
| |- src.ai_client._add_bleed_derived (consumer)
|
||||
| |- src.ai_client._estimate_prompt_tokens (consumer)
|
||||
| |- src.ai_client._estimate_message_tokens (consumer)
|
||||
| |- src.aggregate.build_tier3_context (consumer)
|
||||
| |- src.ai_client._strip_cache_controls (consumer)
|
||||
| |- src.project_manager.format_discussion (consumer)
|
||||
| |- src.app_controller._offload_entry_payload (consumer)
|
||||
| |- src.models._save_config_to_disk (consumer)
|
||||
| |- src.aggregate.run (consumer)
|
||||
| |- src.app_controller._refresh_api_metrics (consumer)
|
||||
| |- src.project_manager.format_discussion (consumer)
|
||||
| |- src.aggregate.build_markdown_from_items (consumer)
|
||||
| |- src.aggregate.build_markdown_no_history (consumer)
|
||||
| |- src.app_controller._offload_entry_payload (consumer)
|
||||
| |- src.ai_client._add_bleed_derived (consumer)
|
||||
| |- src.ai_client._trim_anthropic_history (consumer)
|
||||
| |- src.ai_client._execute_single_tool_call_async (consumer)
|
||||
| |- src.ai_client._dashscope_call (consumer)
|
||||
| |- src.app_controller._on_comms_entry (consumer)
|
||||
| |- src.ai_client._invalidate_token_estimate (consumer)
|
||||
| |- src.ai_client._dashscope_call (consumer)
|
||||
| |- src.models.from_dict (consumer)
|
||||
| |- src.ai_client._add_history_cache_breakpoint (consumer)
|
||||
| |- src.ai_client._pre_dispatch (consumer)
|
||||
| |- src.aggregate.build_markdown_no_history (consumer)
|
||||
| |- src.aggregate._build_files_section_from_items (consumer)
|
||||
| |- src.ai_client._repair_minimax_history (consumer)
|
||||
| |- src.ai_client._repair_anthropic_history (consumer)
|
||||
| |- src.ai_client._repair_deepseek_history (consumer)
|
||||
| |- src.aggregate.build_markdown_from_items (consumer)
|
||||
| |- src.project_manager.entry_to_str (consumer)
|
||||
| |- src.ai_client.ollama_chat (consumer)
|
||||
| |- src.ai_client._execute_single_tool_call_async (consumer)
|
||||
| |- src.ai_client._strip_stale_file_refreshes (consumer)
|
||||
| |- src.ai_client._strip_cache_controls (consumer)
|
||||
| |- src.ai_client._append_comms (consumer)
|
||||
|- access_pattern: whole_struct
|
||||
|- frequency: per_turn
|
||||
|- result_coverage: 77 producers, 35 consumers
|
||||
|
||||
@@ -6,118 +6,118 @@ Functions that are producers or consumers of each aggregate, grouped by file.
|
||||
|
||||
| role | fqname | file |
|
||||
|---|---|---|
|
||||
| producer | `src.api_hook_client.get_gui_diagnostics` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_gui_state` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_api_project` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_node_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.post_session` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_status` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_performance` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_financial_metrics` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_patch_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._offload_entry_payload` | `src\app_controller.py` |
|
||||
| producer | `src.ai_client._send_cli_round_result` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_startup_timeline` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_project` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_session_insights` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.generate` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_mma_status` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_mma_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.set_value` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._parse_tool_args_result` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_system_telemetry` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_api_project` | `src\app_controller.py` |
|
||||
| producer | `src.ai_client._load_credentials` | `src\ai_client.py` |
|
||||
| producer | `src.project_manager.load_history` | `src\project_manager.py` |
|
||||
| producer | `src.models._load_config_from_disk` | `src\models.py` |
|
||||
| producer | `src.api_hook_client.get_context_state` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_session` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client.get_token_stats` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.drag` | `src\api_hook_client.py` |
|
||||
| producer | `src.project_manager.flat_config` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.post_gui` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_session` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_api_session` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_mma_status` | `src\app_controller.py` |
|
||||
| producer | `src.project_manager.load_project` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.apply_patch` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_context_state` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._send_cli_round_result` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_patch_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.project_manager.str_to_entry` | `src\project_manager.py` |
|
||||
| producer | `src.project_manager.migrate_from_legacy_config` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.post_project` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_gui_diagnostics` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.select_tab` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_token_stats` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.token_stats` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.status` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_system_telemetry` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.push_event` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_gui_state` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_diagnostics` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_api_session` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._offload_entry_payload` | `src\app_controller.py` |
|
||||
| producer | `src.project_manager.default_discussion` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.get_node_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_mma_status` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.wait` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.wait_for_project_switch` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client.ollama_chat` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_warmup_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._add_bleed_derived` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_io_pool_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_performance` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_project_switch_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.models.to_dict` | `src\models.py` |
|
||||
| producer | `src.app_controller.get_api_project` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_session` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_context` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.click` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_mma_workers` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._load_credentials` | `src\ai_client.py` |
|
||||
| producer | `src.ai_client._content_block_to_dict` | `src\ai_client.py` |
|
||||
| producer | `src.app_controller.get_session_insights` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_gui_health` | `src\api_hook_client.py` |
|
||||
| producer | `src.project_manager.migrate_from_legacy_config` | `src\project_manager.py` |
|
||||
| producer | `src.app_controller._api_generate` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.generate` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.token_stats` | `src\app_controller.py` |
|
||||
| producer | `src.project_manager.flat_config` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.trigger_patch` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.select_list_item` | `src\api_hook_client.py` |
|
||||
| producer | `src.project_manager.load_history` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.select_tab` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.reject_patch` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_generate` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.load_config` | `src\app_controller.py` |
|
||||
| producer | `src.ai_client.get_gemini_cache_stats` | `src\ai_client.py` |
|
||||
| producer | `src.project_manager.default_project` | `src\project_manager.py` |
|
||||
| producer | `src.app_controller.wait` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_status` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_mma_status` | `src\app_controller.py` |
|
||||
| producer | `src.ai_client.ollama_chat` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.wait_for_project_switch` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._parse_tool_args_result` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_mma_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_context` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_gui_health` | `src\api_hook_client.py` |
|
||||
| producer | `src.models._load_config_from_disk` | `src\models.py` |
|
||||
| producer | `src.api_hook_client.get_session` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_session` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.click` | `src\api_hook_client.py` |
|
||||
| producer | `src.models.to_dict` | `src\models.py` |
|
||||
| producer | `src.api_hook_client.get_project_switch_status` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_api_project` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_gui_state` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_performance` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.post_gui` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._content_block_to_dict` | `src\ai_client.py` |
|
||||
| producer | `src.project_manager.str_to_entry` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.post_session` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_startup_timeline` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_mma_workers` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_api_session` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_context` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.get_context` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.right_click` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_gui_state` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.get_performance` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_warmup_wait` | `src\api_hook_client.py` |
|
||||
| producer | `src.ai_client._add_bleed_derived` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.set_value` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_diagnostics` | `src\app_controller.py` |
|
||||
| producer | `src.project_manager.default_discussion` | `src\project_manager.py` |
|
||||
| producer | `src.ai_client._dashscope_call` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_warmup_status` | `src\api_hook_client.py` |
|
||||
| consumer | `src.ai_client._add_history_cache_breakpoint` | `src\ai_client.py` |
|
||||
| consumer | `src.models.from_dict` | `src\models.py` |
|
||||
| consumer | `src.app_controller._start_track_logic_result` | `src\app_controller.py` |
|
||||
| consumer | `src.project_manager.entry_to_str` | `src\project_manager.py` |
|
||||
| consumer | `src.app_controller._on_comms_entry` | `src\app_controller.py` |
|
||||
| consumer | `src.ai_client._trim_minimax_history` | `src\ai_client.py` |
|
||||
| consumer | `src.aggregate.build_tier3_context` | `src\aggregate.py` |
|
||||
| consumer | `src.ai_client.ollama_chat` | `src\ai_client.py` |
|
||||
| consumer | `src.project_manager.flat_config` | `src\project_manager.py` |
|
||||
| consumer | `src.ai_client._repair_minimax_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._estimate_message_tokens` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_performance` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller.get_diagnostics` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.apply_patch` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_diagnostics` | `src\app_controller.py` |
|
||||
| producer | `src.project_manager.load_project` | `src\project_manager.py` |
|
||||
| producer | `src.app_controller.status` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller.load_config` | `src\app_controller.py` |
|
||||
| producer | `src.api_hook_client.reject_patch` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_project` | `src\api_hook_client.py` |
|
||||
| producer | `src.project_manager.default_project` | `src\project_manager.py` |
|
||||
| producer | `src.api_hook_client.post_project` | `src\api_hook_client.py` |
|
||||
| producer | `src.app_controller._api_get_gui_state` | `src\app_controller.py` |
|
||||
| producer | `src.app_controller._api_get_session` | `src\app_controller.py` |
|
||||
| producer | `src.ai_client.get_gemini_cache_stats` | `src\ai_client.py` |
|
||||
| producer | `src.api_hook_client.get_warmup_wait` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.get_gui_state` | `src\api_hook_client.py` |
|
||||
| producer | `src.api_hook_client.push_event` | `src\api_hook_client.py` |
|
||||
| consumer | `src.ai_client._strip_private_keys` | `src\ai_client.py` |
|
||||
| consumer | `src.aggregate._build_files_section_from_items` | `src\aggregate.py` |
|
||||
| consumer | `src.models._save_config_to_disk` | `src\models.py` |
|
||||
| consumer | `src.ai_client._repair_deepseek_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._pre_dispatch` | `src\ai_client.py` |
|
||||
| consumer | `src.app_controller._start_track_logic` | `src\app_controller.py` |
|
||||
| consumer | `src.ai_client._estimate_prompt_tokens` | `src\ai_client.py` |
|
||||
| consumer | `src.project_manager.save_project` | `src\project_manager.py` |
|
||||
| consumer | `src.ai_client._repair_anthropic_history` | `src\ai_client.py` |
|
||||
| consumer | `src.project_manager.migrate_from_legacy_config` | `src\project_manager.py` |
|
||||
| consumer | `src.app_controller._start_track_logic` | `src\app_controller.py` |
|
||||
| consumer | `src.ai_client._trim_minimax_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._append_comms` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._trim_anthropic_history` | `src\ai_client.py` |
|
||||
| consumer | `src.project_manager.save_project` | `src\project_manager.py` |
|
||||
| consumer | `src.app_controller._start_track_logic_result` | `src\app_controller.py` |
|
||||
| consumer | `src.project_manager.flat_config` | `src\project_manager.py` |
|
||||
| consumer | `src.ai_client._add_bleed_derived` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._estimate_prompt_tokens` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._estimate_message_tokens` | `src\ai_client.py` |
|
||||
| consumer | `src.aggregate.build_tier3_context` | `src\aggregate.py` |
|
||||
| consumer | `src.ai_client._strip_cache_controls` | `src\ai_client.py` |
|
||||
| consumer | `src.project_manager.format_discussion` | `src\project_manager.py` |
|
||||
| consumer | `src.app_controller._offload_entry_payload` | `src\app_controller.py` |
|
||||
| consumer | `src.models._save_config_to_disk` | `src\models.py` |
|
||||
| consumer | `src.aggregate.run` | `src\aggregate.py` |
|
||||
| consumer | `src.app_controller._refresh_api_metrics` | `src\app_controller.py` |
|
||||
| consumer | `src.project_manager.format_discussion` | `src\project_manager.py` |
|
||||
| consumer | `src.aggregate.build_markdown_from_items` | `src\aggregate.py` |
|
||||
| consumer | `src.aggregate.build_markdown_no_history` | `src\aggregate.py` |
|
||||
| consumer | `src.app_controller._offload_entry_payload` | `src\app_controller.py` |
|
||||
| consumer | `src.ai_client._add_bleed_derived` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._trim_anthropic_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._execute_single_tool_call_async` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._dashscope_call` | `src\ai_client.py` |
|
||||
| consumer | `src.app_controller._on_comms_entry` | `src\app_controller.py` |
|
||||
| consumer | `src.ai_client._invalidate_token_estimate` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._dashscope_call` | `src\ai_client.py` |
|
||||
| consumer | `src.models.from_dict` | `src\models.py` |
|
||||
| consumer | `src.ai_client._add_history_cache_breakpoint` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._pre_dispatch` | `src\ai_client.py` |
|
||||
| consumer | `src.aggregate.build_markdown_no_history` | `src\aggregate.py` |
|
||||
| consumer | `src.aggregate._build_files_section_from_items` | `src\aggregate.py` |
|
||||
| consumer | `src.ai_client._repair_minimax_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._repair_anthropic_history` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._repair_deepseek_history` | `src\ai_client.py` |
|
||||
| consumer | `src.aggregate.build_markdown_from_items` | `src\aggregate.py` |
|
||||
| consumer | `src.project_manager.entry_to_str` | `src\project_manager.py` |
|
||||
| consumer | `src.ai_client.ollama_chat` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._execute_single_tool_call_async` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._strip_stale_file_refreshes` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._strip_cache_controls` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._append_comms` | `src\ai_client.py` |
|
||||
|
||||
## FileItem (0 producers + 0 consumers)
|
||||
|
||||
@@ -127,9 +127,9 @@ _(no producers or consumers)_
|
||||
|
||||
| role | fqname | file |
|
||||
|---|---|---|
|
||||
| consumer | `src.ai_client._build_file_context_text` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._build_file_diff_text` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._reread_file_items_result` | `src\ai_client.py` |
|
||||
| consumer | `src.ai_client._build_file_context_text` | `src\ai_client.py` |
|
||||
|
||||
## CommsLogEntry (0 producers + 0 consumers)
|
||||
|
||||
@@ -143,8 +143,8 @@ _(no producers or consumers)_
|
||||
|
||||
| role | fqname | file |
|
||||
|---|---|---|
|
||||
| consumer | `src.provider_state.replace_all` | `src\provider_state.py` |
|
||||
| consumer | `src.provider_state.append` | `src\provider_state.py` |
|
||||
| consumer | `src.provider_state.replace_all` | `src\provider_state.py` |
|
||||
|
||||
## History (0 producers + 0 consumers)
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
# Candidate Aggregates
|
||||
# Optimization Candidates
|
||||
|
||||
The 3 candidate aggregates (forward-compat placeholders for any_type_componentization_20260621, NOT on master).
|
||||
Total candidates: 0
|
||||
|
||||
- **ToolSpec**: candidate; would be detected after any_type_componentization_20260621 merges
|
||||
- **ChatMessage**: candidate; would be detected after any_type_componentization_20260621 merges
|
||||
- **ProviderHistory**: candidate; would be detected after any_type_componentization_20260621 merges
|
||||
_(no optimization candidates currently generated)_
|
||||
|
||||
## Candidate placeholder aggregates
|
||||
|
||||
- `ToolSpec`: candidate aggregate; would be detected after any_type_componentization_20260621 merges
|
||||
- `ChatMessage`: candidate aggregate; would be detected after any_type_componentization_20260621 merges
|
||||
- `ProviderHistory`: candidate aggregate; would be detected after any_type_componentization_20260621 merges
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Dead Field Analysis
|
||||
|
||||
Fields that appear in producer return shapes but are never read by any consumer.
|
||||
|
||||
### `Metadata`
|
||||
|
||||
Fields read by at least one consumer: 53
|
||||
|
||||
|
||||
### `HistoryMessage`
|
||||
|
||||
Fields read by at least one consumer: 2
|
||||
|
||||
| field | read count |
|
||||
|---|---|
|
||||
| `lock` | 2 |
|
||||
| `messages` | 2 |
|
||||
|
||||
### `ToolCall`
|
||||
|
||||
Fields read by at least one consumer: 1
|
||||
|
||||
| field | read count |
|
||||
|---|---|
|
||||
| `to_dict` | 1 |
|
||||
@@ -1,6 +1,32 @@
|
||||
# Decomposition Matrix
|
||||
|
||||
## Top 10 candidates by estimated savings
|
||||
## All aggregates ranked by current cost
|
||||
|
||||
| Rank | Aggregate | Direction | Est. savings (us) | Frequency | Effort | Priority |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Aggregate | Producers | Consumers | Struct fields | Current cost (us/turn) | Direction | Actionable savings (us/turn) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `Metadata` | 77 | 35 | 10 | 720 | `hold` | 0 |
|
||||
| `FileItem` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `FileItems` | 0 | 3 | 5 | 470 | `hold` | 70 |
|
||||
| `CommsLogEntry` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `CommsLog` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `HistoryMessage` | 0 | 2 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `History` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `ToolDefinition` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
| `ToolCall` | 1 | 1 | 5 | 470 | `hold` | 70 |
|
||||
| `Result` | 0 | 0 | 5 | 470 | `insufficient_data` | 0 |
|
||||
|
||||
## Aggregates flagged for refactoring
|
||||
|
||||
_(no aggregates currently flagged for refactoring; most have 'hold' status)_
|
||||
|
||||
## Aggregates needing runtime profiling
|
||||
|
||||
| Aggregate | Reason |
|
||||
|---|---|
|
||||
| `FileItem` | FileItem: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `CommsLogEntry` | CommsLogEntry: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `CommsLog` | CommsLog: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `HistoryMessage` | HistoryMessage: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `History` | History: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `ToolDefinition` | ToolDefinition: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
| `Result` | Result: access_pattern=mixed, frequency=per_turn, struct_field_count=5, struct_frozen=True. Recommended: insufficient_data because runtime profiling is needed to determine the dominant pattern. |
|
||||
|
||||
@@ -15,5 +15,5 @@ Cross-aggregate analysis of which fields are accessed how often across the codeb
|
||||
| `Metadata` | `_pending_history_adds` | 4 |
|
||||
| `Metadata` | `ui_auto_add_history` | 3 |
|
||||
| `Metadata` | `append` | 3 |
|
||||
| `Metadata` | `_pending_gui_tasks_lock` | 2 |
|
||||
| `Metadata` | `discussion` | 2 |
|
||||
| `ToolCall` | `to_dict` | 1 |
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Hot Path Analysis
|
||||
|
||||
Functions on the per-LLM-turn path (high-frequency consumers).
|
||||
|
||||
## Per-aggregate hot consumers (top 5 by field access count)
|
||||
|
||||
### `Metadata`
|
||||
|
||||
| function | pattern | total field accesses |
|
||||
|---|---|---|
|
||||
| `src.app_controller._on_comms_entry` | `field_by_field` | 28 |
|
||||
| `src.app_controller._start_track_logic_result` | `field_by_field` | 25 |
|
||||
| `src.app_controller._refresh_api_metrics` | `field_by_field` | 15 |
|
||||
| `src.ai_client._add_bleed_derived` | `field_by_field` | 11 |
|
||||
| `src.aggregate.run` | `field_by_field` | 10 |
|
||||
|
||||
### `FileItems`
|
||||
|
||||
| function | pattern | total field accesses |
|
||||
|---|---|---|
|
||||
| `src.ai_client._build_file_context_text` | `whole_struct` | 0 |
|
||||
| `src.ai_client._build_file_diff_text` | `whole_struct` | 0 |
|
||||
| `src.ai_client._reread_file_items_result` | `whole_struct` | 0 |
|
||||
|
||||
### `HistoryMessage`
|
||||
|
||||
| function | pattern | total field accesses |
|
||||
|---|---|---|
|
||||
| `src.provider_state.append` | `mixed` | 2 |
|
||||
| `src.provider_state.replace_all` | `mixed` | 2 |
|
||||
|
||||
### `ToolCall`
|
||||
|
||||
| function | pattern | total field accesses |
|
||||
|---|---|---|
|
||||
| `src.openai_compatible._to_dict_tool_call` | `whole_struct` | 1 |
|
||||
@@ -1,6 +1,13 @@
|
||||
# Code Path & Data Pipeline Audit Summary
|
||||
|
||||
Generated for 13 aggregates
|
||||
Generated for 13 aggregates on 2026-06-22
|
||||
|
||||
- **Real aggregates (in scope):** 10
|
||||
- **Candidate aggregates (placeholders):** 3
|
||||
- **Total producers:** 78
|
||||
- **Total consumers:** 41
|
||||
- **Total current cost (us/turn):** 4950
|
||||
- **Total actionable savings (us/turn):** 140
|
||||
|
||||
## 4-mem-dim rollup
|
||||
|
||||
@@ -9,18 +16,82 @@ Generated for 13 aggregates
|
||||
- **discussion** (6): Metadata, CommsLogEntry, CommsLog, HistoryMessage, History, ChatMessage
|
||||
- **unknown** (2): ToolSpec, ProviderHistory
|
||||
|
||||
## Per-aggregate memory_dim + access pattern
|
||||
|
||||
| Aggregate | Kind | Memory dim | Access pattern | Producers | Consumers |
|
||||
|---|---|---|---|---|---|
|
||||
| `CommsLog` | `typealias` | `discussion` | `mixed` | 0 | 0 |
|
||||
| `CommsLogEntry` | `typealias` | `discussion` | `mixed` | 0 | 0 |
|
||||
| `FileItem` | `typealias` | `curation` | `mixed` | 0 | 0 |
|
||||
| `FileItems` | `typealias` | `curation` | `whole_struct` | 0 | 3 |
|
||||
| `History` | `typealias` | `discussion` | `mixed` | 0 | 0 |
|
||||
| `HistoryMessage` | `typealias` | `discussion` | `mixed` | 0 | 2 |
|
||||
| `Metadata` | `typealias` | `discussion` | `whole_struct` | 77 | 35 |
|
||||
| `Result` | `typealias` | `control` | `mixed` | 0 | 0 |
|
||||
| `ToolCall` | `typealias` | `control` | `whole_struct` | 1 | 1 |
|
||||
| `ToolDefinition` | `typealias` | `control` | `mixed` | 0 | 0 |
|
||||
| `ChatMessage` | `candidate_dataclass` | `discussion` | `mixed` | 0 | 0 |
|
||||
| `ProviderHistory` | `candidate_dataclass` | `unknown` | `mixed` | 0 | 0 |
|
||||
| `ToolSpec` | `candidate_dataclass` | `unknown` | `mixed` | 0 | 0 |
|
||||
|
||||
## Cross-validation verdict
|
||||
|
||||
- **Metadata**: result_coverage=77 producers, 35 consumers; type_alias_coverage=130 sites; 0 typed (0%); 130 untyped (100%)
|
||||
- **FileItem**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **FileItems**: result_coverage=0 producers, 3 consumers; type_alias_coverage=0 sites
|
||||
- **CommsLogEntry**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **CommsLog**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **HistoryMessage**: result_coverage=0 producers, 2 consumers; type_alias_coverage=4 sites; 0 typed (0%); 4 untyped (100%)
|
||||
- **History**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **ToolDefinition**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **ToolCall**: result_coverage=1 producers, 1 consumers; type_alias_coverage=1 sites; 0 typed (0%); 1 untyped (100%)
|
||||
- **Result**: result_coverage=0 producers, 0 consumers; type_alias_coverage=0 sites
|
||||
- **ToolSpec**: result_coverage=; type_alias_coverage=
|
||||
- **ChatMessage**: result_coverage=; type_alias_coverage=
|
||||
- **ProviderHistory**: result_coverage=; type_alias_coverage=
|
||||
### `CommsLog`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `CommsLogEntry`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `FileItem`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `FileItems`
|
||||
|
||||
- **Result coverage:** 0 producers, 3 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `History`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `HistoryMessage`
|
||||
|
||||
- **Result coverage:** 0 producers, 2 consumers
|
||||
- **Type alias coverage:** 4 sites; 0 typed (0%); 4 untyped (100%)
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `Metadata`
|
||||
|
||||
- **Result coverage:** 77 producers, 35 consumers
|
||||
- **Type alias coverage:** 130 sites; 0 typed (0%); 130 untyped (100%)
|
||||
- **Cross-audit findings (total sites):** 1
|
||||
|
||||
### `Result`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `ToolCall`
|
||||
|
||||
- **Result coverage:** 1 producers, 1 consumers
|
||||
- **Type alias coverage:** 1 sites; 0 typed (0%); 1 untyped (100%)
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
### `ToolDefinition`
|
||||
|
||||
- **Result coverage:** 0 producers, 0 consumers
|
||||
- **Type alias coverage:** 0 sites
|
||||
- **Cross-audit findings (total sites):** 0
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
with open(r'C:\projects\manual_slop_tier2\src\code_path_audit_rollups.py', 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
# Lines 263-265 need fixing
|
||||
# Line 263: ' for i, ...:' - keep as is (1 space indent for top-level for)
|
||||
# Line 264: ' lines.append...' - should be 2 spaces (inside for body)
|
||||
# Line 265: ' lines.append("")' - should be 2 spaces (inside for body)
|
||||
|
||||
# Find and fix all lines 264+ that are at 3-space indent inside a for loop
|
||||
new_lines = []
|
||||
in_for = False
|
||||
for i, line in enumerate(lines):
|
||||
if i == 263:
|
||||
in_for = True
|
||||
new_lines.append(line)
|
||||
continue
|
||||
if in_for and line.startswith(' ') and not line.startswith(' '):
|
||||
# Reduce 3-space indent to 2-space
|
||||
new_lines.append(' ' + line[3:])
|
||||
else:
|
||||
new_lines.append(line)
|
||||
|
||||
with open(r'C:\projects\manual_slop_tier2\src\code_path_audit_rollups.py', 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
print('fixed')
|
||||
@@ -0,0 +1,33 @@
|
||||
"""Fix indentation in rollups file."""
|
||||
import re
|
||||
|
||||
filepath = r'C:\projects\manual_slop_tier2\src\code_path_audit_rollups.py'
|
||||
|
||||
with open(filepath, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Find all for loops and fix their body indent to be 2 spaces
|
||||
# Pattern: at start of line, 2 spaces + "for " + ... + ":" then body should be 2-space indent too
|
||||
# Currently the body has 3 spaces, we want 2
|
||||
|
||||
lines = content.split('\n')
|
||||
new_lines = []
|
||||
for i, line in enumerate(lines):
|
||||
stripped = line.lstrip()
|
||||
indent = len(line) - len(stripped)
|
||||
# Lines that start with 3 spaces and have content (likely inside a for loop body)
|
||||
if indent == 3 and stripped:
|
||||
# Check if previous line was a for/if/while (probably at 1 or 2 space indent)
|
||||
if i > 0:
|
||||
prev = lines[i-1]
|
||||
prev_stripped = prev.rstrip()
|
||||
if prev_stripped.endswith(':') and not prev_stripped.startswith('#'):
|
||||
# This line is inside a for/if body, reduce indent by 1
|
||||
new_lines.append(' ' + stripped)
|
||||
continue
|
||||
new_lines.append(line)
|
||||
|
||||
with open(filepath, 'w') as f:
|
||||
f.write('\n'.join(new_lines))
|
||||
|
||||
print('fixed')
|
||||
@@ -0,0 +1,43 @@
|
||||
"""Brute-force normalize indentation: every line at N spaces should be at the deepest appropriate indent."""
|
||||
import re
|
||||
|
||||
filepath = r'C:\projects\manual_slop_tier2\src\code_path_audit_rollups.py'
|
||||
|
||||
with open(filepath, 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
# Walk lines, track expected indent depth via for/if/while/with/def/class
|
||||
# and fix each line's indent to match expected
|
||||
def get_indent(line):
|
||||
return len(line) - len(line.lstrip(' '))
|
||||
|
||||
new_lines = []
|
||||
expected_indent = 0
|
||||
prev_block_open = False
|
||||
for i, line in enumerate(lines):
|
||||
stripped = line.lstrip()
|
||||
if not stripped or stripped.startswith('#'):
|
||||
new_lines.append(line)
|
||||
continue
|
||||
cur_indent = get_indent(line)
|
||||
if cur_indent > expected_indent + 2:
|
||||
# Too deep — reset to expected
|
||||
new_lines.append(' ' * (expected_indent + 2) + stripped)
|
||||
elif cur_indent < expected_indent:
|
||||
# Dedent
|
||||
new_lines.append(' ' * expected_indent + stripped)
|
||||
expected_indent = cur_indent
|
||||
else:
|
||||
new_lines.append(line)
|
||||
# If line ends with ':', increase expected for next line
|
||||
if stripped.rstrip().endswith(':') and not stripped.startswith(' '):
|
||||
expected_indent += 2
|
||||
# If line is a 'return' or 'pass' or endswith, decrease expected
|
||||
elif stripped.startswith(('return ', 'pass', 'break', 'continue', 'raise ')):
|
||||
# next line should be at or above this indent
|
||||
pass
|
||||
|
||||
with open(filepath, 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
|
||||
print('normalized')
|
||||
@@ -1235,10 +1235,24 @@ def render_rollups(summary: AuditSummary, output_dir: Path) -> dict[str, str]:
|
||||
cand_lines.append(f"- **{p.name}**: candidate; would be detected after any_type_componentization_20260621 merges")
|
||||
candidates_path.write_text("\n".join(cand_lines), encoding="utf-8")
|
||||
from src.code_path_audit_render import render_field_usage_rollup, render_call_graph_rollup
|
||||
from src.code_path_audit_rollups import (
|
||||
render_decomposition_matrix_rich,
|
||||
render_summary_rich,
|
||||
render_candidates_rich,
|
||||
render_hot_path_rollup,
|
||||
render_dead_field_rollup,
|
||||
)
|
||||
field_usage_path = output_dir / "field_usage.md"
|
||||
field_usage_path.write_text(render_field_usage_rollup(profiles), encoding="utf-8")
|
||||
call_graph_path = output_dir / "call_graph.md"
|
||||
call_graph_path.write_text(render_call_graph_rollup(profiles), encoding="utf-8")
|
||||
hot_path_path = output_dir / "hot_paths.md"
|
||||
hot_path_path.write_text(render_hot_path_rollup(profiles), encoding="utf-8")
|
||||
dead_field_path = output_dir / "dead_fields.md"
|
||||
dead_field_path.write_text(render_dead_field_rollup(profiles), encoding="utf-8")
|
||||
summary_path.write_text(render_summary_rich(profiles), encoding="utf-8")
|
||||
decomposition_matrix_path.write_text(render_decomposition_matrix_rich(profiles), encoding="utf-8")
|
||||
candidates_path.write_text(render_candidates_rich(profiles), encoding="utf-8")
|
||||
return {
|
||||
"summary.md": str(summary_path),
|
||||
"cross_audit_summary.md": str(cross_audit_path),
|
||||
@@ -1246,6 +1260,8 @@ def render_rollups(summary: AuditSummary, output_dir: Path) -> dict[str, str]:
|
||||
"candidates.md": str(candidates_path),
|
||||
"field_usage.md": str(field_usage_path),
|
||||
"call_graph.md": str(call_graph_path),
|
||||
"hot_paths.md": str(hot_path_path),
|
||||
"dead_fields.md": str(dead_field_path),
|
||||
}
|
||||
|
||||
def code_path_audit_v2(
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
"""Additional rollups for code_path_audit v2."""
|
||||
from __future__ import annotations
|
||||
from src.code_path_audit import AggregateProfile
|
||||
|
||||
|
||||
def render_decomposition_matrix_rich(profiles):
|
||||
lines = ["# Decomposition Matrix", ""]
|
||||
lines.append("## All aggregates ranked by current cost")
|
||||
lines.append("")
|
||||
lines.append("| Aggregate | Producers | Consumers | Struct fields | Current cost (us/turn) | Direction | Actionable savings (us/turn) |")
|
||||
lines.append("|---|---|---|---|---|---|---|")
|
||||
real_profiles = [p for p in profiles if not p.is_candidate]
|
||||
sorted_profiles = sorted(real_profiles, key=lambda p: p.decomposition_cost.current_cost_estimate, reverse=True)
|
||||
for p in sorted_profiles:
|
||||
dc = p.decomposition_cost
|
||||
actionable = dc.componentize_savings + dc.unify_savings
|
||||
lines.append(f"| `{p.name}` | {len(p.producers)} | {len(p.consumers)} | {dc.struct_field_count} | {dc.current_cost_estimate} | `{dc.recommended_direction}` | {actionable} |")
|
||||
lines.append("")
|
||||
lines.append("## Aggregates flagged for refactoring")
|
||||
lines.append("")
|
||||
flaggable = [p for p in real_profiles if p.decomposition_cost.recommended_direction in ("componentize", "unify")]
|
||||
if flaggable:
|
||||
lines.append("| Aggregate | Direction | Estimated savings (us/turn) | Top refactor step |")
|
||||
lines.append("|---|---|---|---|")
|
||||
for p in sorted(flaggable, key=lambda p: -(p.decomposition_cost.componentize_savings + p.decomposition_cost.unify_savings)):
|
||||
dc = p.decomposition_cost
|
||||
savings = dc.componentize_savings + dc.unify_savings
|
||||
step = p.decomposition_cost.recommended_rationale
|
||||
lines.append(f"| `{p.name}` | `{dc.recommended_direction}` | {savings} | {step} |")
|
||||
else:
|
||||
lines.append("_(no aggregates currently flagged for refactoring; most have 'hold' status)_")
|
||||
lines.append("")
|
||||
lines.append("## Aggregates needing runtime profiling")
|
||||
lines.append("")
|
||||
insufficient = [p for p in real_profiles if p.decomposition_cost.recommended_direction == "insufficient_data"]
|
||||
if insufficient:
|
||||
lines.append("| Aggregate | Reason |")
|
||||
lines.append("|---|---|")
|
||||
for p in insufficient:
|
||||
lines.append(f"| `{p.name}` | {p.decomposition_cost.recommended_rationale} |")
|
||||
else:
|
||||
lines.append("_(none)_")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_summary_rich(profiles):
|
||||
lines = ["# Code Path & Data Pipeline Audit Summary", ""]
|
||||
lines.append("Generated for " + str(len(profiles)) + " aggregates on 2026-06-22")
|
||||
lines.append("")
|
||||
real_profiles = [p for p in profiles if not p.is_candidate]
|
||||
candidate_profiles = [p for p in profiles if p.is_candidate]
|
||||
lines.append("- **Real aggregates (in scope):** " + str(len(real_profiles)))
|
||||
lines.append("- **Candidate aggregates (placeholders):** " + str(len(candidate_profiles)))
|
||||
total_producers = sum(len(p.producers) for p in real_profiles)
|
||||
total_consumers = sum(len(p.consumers) for p in real_profiles)
|
||||
total_cost = sum(p.decomposition_cost.current_cost_estimate for p in real_profiles)
|
||||
total_actionable = sum(p.decomposition_cost.componentize_savings + p.decomposition_cost.unify_savings for p in real_profiles)
|
||||
lines.append("- **Total producers:** " + str(total_producers))
|
||||
lines.append("- **Total consumers:** " + str(total_consumers))
|
||||
lines.append("- **Total current cost (us/turn):** " + str(total_cost))
|
||||
lines.append("- **Total actionable savings (us/turn):** " + str(total_actionable))
|
||||
lines.append("")
|
||||
lines.append("## 4-mem-dim rollup")
|
||||
lines.append("")
|
||||
by_dim = {}
|
||||
for p in profiles:
|
||||
by_dim.setdefault(p.memory_dim, []).append(p.name)
|
||||
for dim, names in sorted(by_dim.items()):
|
||||
lines.append("- **" + dim + "** (" + str(len(names)) + "): " + ", ".join(names))
|
||||
lines.append("")
|
||||
lines.append("## Per-aggregate memory_dim + access pattern")
|
||||
lines.append("")
|
||||
lines.append("| Aggregate | Kind | Memory dim | Access pattern | Producers | Consumers |")
|
||||
lines.append("|---|---|---|---|---|---|")
|
||||
for p in sorted(real_profiles, key=lambda p: p.name):
|
||||
lines.append(f"| `{p.name}` | `{p.aggregate_kind}` | `{p.memory_dim}` | `{p.access_pattern}` | {len(p.producers)} | {len(p.consumers)} |")
|
||||
for p in sorted(candidate_profiles, key=lambda p: p.name):
|
||||
lines.append(f"| `{p.name}` | `candidate_dataclass` | `{p.memory_dim}` | `{p.access_pattern}` | {len(p.producers)} | {len(p.consumers)} |")
|
||||
lines.append("")
|
||||
lines.append("## Cross-validation verdict")
|
||||
lines.append("")
|
||||
for p in sorted(real_profiles, key=lambda p: p.name):
|
||||
rc = p.result_coverage
|
||||
tac = p.type_alias_coverage
|
||||
total_cf = (
|
||||
len(p.cross_audit_findings.weak_types)
|
||||
+ len(p.cross_audit_findings.exception_handling)
|
||||
+ len(p.cross_audit_findings.optional_in_baseline)
|
||||
+ len(p.cross_audit_findings.config_io_ownership)
|
||||
+ len(p.cross_audit_findings.import_graph)
|
||||
)
|
||||
lines.append("### `" + p.name + "`")
|
||||
lines.append("")
|
||||
lines.append("- **Result coverage:** " + rc.summary)
|
||||
lines.append("- **Type alias coverage:** " + tac.summary)
|
||||
lines.append("- **Cross-audit findings (total sites):** " + str(total_cf))
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_candidates_rich(profiles):
|
||||
lines = ["# Optimization Candidates", ""]
|
||||
real_profiles = [p for p in profiles if not p.is_candidate]
|
||||
all_candidates = []
|
||||
for p in real_profiles:
|
||||
for c in p.optimization_candidates:
|
||||
all_candidates.append((p, c))
|
||||
all_candidates.sort(key=lambda pc: -pc[1].estimated_savings_us)
|
||||
lines.append("Total candidates: " + str(len(all_candidates)))
|
||||
lines.append("")
|
||||
if all_candidates:
|
||||
lines.append("## Ranked by estimated savings")
|
||||
lines.append("")
|
||||
lines.append("| Rank | Aggregate | Direction | Savings (us/turn) | Effort | Priority | Affected files |")
|
||||
lines.append("|---|---|---|---|---|---|---|")
|
||||
for i, (p, c) in enumerate(all_candidates, 1):
|
||||
lines.append(f"| {i} | `{p.name}` | `{c.direction}` | {c.estimated_savings_us} | `{c.effort}` | `{c.priority}` | {len(c.affected_files)} |")
|
||||
lines.append("")
|
||||
lines.append("## Detailed candidate steps")
|
||||
lines.append("")
|
||||
for p, c in all_candidates:
|
||||
lines.append("### " + p.name + ": " + c.candidate)
|
||||
lines.append("")
|
||||
lines.append("- **Direction:** `" + c.direction + "`")
|
||||
lines.append("- **Effort:** `" + c.effort + "`")
|
||||
lines.append("- **Priority:** `" + c.priority + "`")
|
||||
lines.append("- **Estimated savings:** " + str(c.estimated_savings_us) + " us/turn")
|
||||
lines.append("- **Affected files:** " + ", ".join(c.affected_files[:10]))
|
||||
if len(c.affected_files) > 10:
|
||||
lines.append(" (+" + str(len(c.affected_files) - 10) + " more)")
|
||||
lines.append("- **Reference:** " + c.cross_ref)
|
||||
lines.append("")
|
||||
else:
|
||||
lines.append("_(no optimization candidates currently generated)_")
|
||||
lines.append("")
|
||||
lines.append("## Candidate placeholder aggregates")
|
||||
lines.append("")
|
||||
for p in [x for x in profiles if x.is_candidate]:
|
||||
lines.append("- `" + p.name + "`: " + p.decomposition_cost.recommended_rationale)
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_hot_path_rollup(profiles):
|
||||
lines = ["# Hot Path Analysis", ""]
|
||||
lines.append("Functions on the per-LLM-turn path (high-frequency consumers).")
|
||||
lines.append("")
|
||||
real_profiles = [p for p in profiles if not p.is_candidate]
|
||||
lines.append("## Per-aggregate hot consumers (top 5 by field access count)")
|
||||
lines.append("")
|
||||
for p in real_profiles:
|
||||
ev = p.access_pattern_evidence
|
||||
if not ev:
|
||||
continue
|
||||
ranked = sorted(ev, key=lambda e: -sum(e.field_accesses.values()))[:5]
|
||||
if not ranked:
|
||||
continue
|
||||
lines.append("### `" + p.name + "`")
|
||||
lines.append("")
|
||||
lines.append("| function | pattern | total field accesses |")
|
||||
lines.append("|---|---|---|")
|
||||
for e in ranked:
|
||||
total = sum(e.field_accesses.values())
|
||||
lines.append(f"| `{e.function.fqname}` | `{e.pattern}` | {total} |")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_dead_field_rollup(profiles):
|
||||
lines = ["# Dead Field Analysis", ""]
|
||||
lines.append("Fields that appear in producer return shapes but are never read by any consumer.")
|
||||
lines.append("")
|
||||
real_profiles = [p for p in profiles if not p.is_candidate]
|
||||
for p in real_profiles:
|
||||
read_fields = set()
|
||||
for ev in p.access_pattern_evidence:
|
||||
read_fields.update(ev.field_accesses.keys())
|
||||
if not read_fields:
|
||||
continue
|
||||
lines.append("### `" + p.name + "`")
|
||||
lines.append("")
|
||||
lines.append("Fields read by at least one consumer: " + str(len(read_fields)))
|
||||
lines.append("")
|
||||
field_counts = {}
|
||||
for ev in p.access_pattern_evidence:
|
||||
for k, v in ev.field_accesses.items():
|
||||
field_counts[k] = field_counts.get(k, 0) + v
|
||||
if len(field_counts) <= 30:
|
||||
lines.append("| field | read count |")
|
||||
lines.append("|---|---|")
|
||||
for f in sorted(field_counts.keys()):
|
||||
lines.append(f"| `{f}` | {field_counts[f]} |")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
Reference in New Issue
Block a user