chore(conductor): Complete Source-Wide Redundancy Audit
This commit is contained in:
@@ -0,0 +1,361 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
# Symbols to check (extracted from previous step)
|
||||
# This is a representative sample, we will process all 327.
|
||||
# For the actual implementation, I'll read the output of the previous command.
|
||||
raw_symbols = r"""
|
||||
find_next_increment|src\aggregate.py
|
||||
is_absolute_with_drive|src\aggregate.py
|
||||
resolve_paths|src\aggregate.py
|
||||
build_discussion_section|src\aggregate.py
|
||||
build_files_section|src\aggregate.py
|
||||
build_screenshots_section|src\aggregate.py
|
||||
build_file_items|src\aggregate.py
|
||||
build_summary_section|src\aggregate.py
|
||||
build_beads_section|src\aggregate.py
|
||||
build_markdown_from_items|src\aggregate.py
|
||||
build_markdown_no_history|src\aggregate.py
|
||||
build_discussion_text|src\aggregate.py
|
||||
build_tier1_context|src\aggregate.py
|
||||
build_tier2_context|src\aggregate.py
|
||||
build_tier3_context|src\aggregate.py
|
||||
build_markdown|src\aggregate.py
|
||||
run|src\aggregate.py
|
||||
main|src\aggregate.py
|
||||
set_model_params|src\ai_client.py
|
||||
get_history_trunc_limit|src\ai_client.py
|
||||
set_history_trunc_limit|src\ai_client.py
|
||||
get_current_tier|src\ai_client.py
|
||||
set_current_tier|src\ai_client.py
|
||||
get_comms_log_callback|src\ai_client.py
|
||||
set_comms_log_callback|src\ai_client.py
|
||||
set_custom_system_prompt|src\ai_client.py
|
||||
set_base_system_prompt|src\ai_client.py
|
||||
set_use_default_base_prompt|src\ai_client.py
|
||||
set_project_context_marker|src\ai_client.py
|
||||
get_combined_system_prompt|src\ai_client.py
|
||||
get_comms_log|src\ai_client.py
|
||||
clear_comms_log|src\ai_client.py
|
||||
get_credentials_path|src\ai_client.py
|
||||
ProviderError|src\ai_client.py
|
||||
set_provider|src\ai_client.py
|
||||
get_provider|src\ai_client.py
|
||||
cleanup|src\ai_client.py
|
||||
reset_session|src\ai_client.py
|
||||
get_gemini_cache_stats|src\ai_client.py
|
||||
list_models|src\ai_client.py
|
||||
set_agent_tools|src\ai_client.py
|
||||
set_tool_preset|src\ai_client.py
|
||||
set_bias_profile|src\ai_client.py
|
||||
get_bias_profile|src\ai_client.py
|
||||
run_tier4_analysis|src\ai_client.py
|
||||
run_tier4_patch_callback|src\ai_client.py
|
||||
run_tier4_patch_generation|src\ai_client.py
|
||||
get_token_stats|src\ai_client.py
|
||||
send|src\ai_client.py
|
||||
get_history_bleed_stats|src\ai_client.py
|
||||
run_subagent_summarization|src\ai_client.py
|
||||
HookServerInstance|src\api_hooks.py
|
||||
HookHandler|src\api_hooks.py
|
||||
HookServer|src\api_hooks.py
|
||||
WebSocketServer|src\api_hooks.py
|
||||
ApiHookClient|src\api_hook_client.py
|
||||
hide_tk_root|src\app_controller.py
|
||||
parse_symbols|src\app_controller.py
|
||||
get_symbol_definition|src\app_controller.py
|
||||
GenerateRequest|src\app_controller.py
|
||||
ConfirmRequest|src\app_controller.py
|
||||
ConfirmDialog|src\app_controller.py
|
||||
MMAApprovalDialog|src\app_controller.py
|
||||
MMASpawnApprovalDialog|src\app_controller.py
|
||||
AppController|src\app_controller.py
|
||||
Bead|src\beads_client.py
|
||||
BeadsClient|src\beads_client.py
|
||||
BackgroundShader|src\bg_shader.py
|
||||
get_bg|src\bg_shader.py
|
||||
generate_tickets|src\conductor_tech_lead.py
|
||||
topological_sort|src\conductor_tech_lead.py
|
||||
estimate_cost|src\cost_tracker.py
|
||||
TrackDAG|src\dag_engine.py
|
||||
ExecutionEngine|src\dag_engine.py
|
||||
DiffHunk|src\diff_viewer.py
|
||||
DiffFile|src\diff_viewer.py
|
||||
parse_diff_header|src\diff_viewer.py
|
||||
parse_hunk_header|src\diff_viewer.py
|
||||
parse_diff|src\diff_viewer.py
|
||||
format_diff_for_display|src\diff_viewer.py
|
||||
get_line_color|src\diff_viewer.py
|
||||
render_diff_text_immediate|src\diff_viewer.py
|
||||
create_backup|src\diff_viewer.py
|
||||
apply_patch_to_file|src\diff_viewer.py
|
||||
restore_from_backup|src\diff_viewer.py
|
||||
cleanup_backup|src\diff_viewer.py
|
||||
EventEmitter|src\events.py
|
||||
AsyncEventQueue|src\events.py
|
||||
UserRequestEvent|src\events.py
|
||||
ExternalEditorLauncher|src\external_editor.py
|
||||
auto_detect_vscode|src\external_editor.py
|
||||
get_default_launcher|src\external_editor.py
|
||||
resolve_project_editor_override|src\external_editor.py
|
||||
create_temp_modified_file|src\external_editor.py
|
||||
ASTParser|src\file_cache.py
|
||||
reset_client|src\file_cache.py
|
||||
content_block_type|src\file_cache.py
|
||||
get_file_id|src\file_cache.py
|
||||
evict|src\file_cache.py
|
||||
list_cached|src\file_cache.py
|
||||
GeminiCliAdapter|src\gemini_cli_adapter.py
|
||||
hide_tk_root|src\gui_2.py
|
||||
vec4|src\gui_2.py
|
||||
truncate_entries|src\gui_2.py
|
||||
GenerateRequest|src\gui_2.py
|
||||
ConfirmRequest|src\gui_2.py
|
||||
App|src\gui_2.py
|
||||
main|src\gui_2.py
|
||||
UISnapshot|src\history.py
|
||||
HistoryEntry|src\history.py
|
||||
HistoryManager|src\history.py
|
||||
LogPruner|src\log_pruner.py
|
||||
LogRegistry|src\log_registry.py
|
||||
MarkdownRenderer|src\markdown_helper.py
|
||||
get_renderer|src\markdown_helper.py
|
||||
render|src\markdown_helper.py
|
||||
render_unindented|src\markdown_helper.py
|
||||
render_code|src\markdown_helper.py
|
||||
configure|src\mcp_client.py
|
||||
read_file|src\mcp_client.py
|
||||
list_directory|src\mcp_client.py
|
||||
search_files|src\mcp_client.py
|
||||
get_file_summary|src\mcp_client.py
|
||||
py_get_skeleton|src\mcp_client.py
|
||||
ts_c_get_skeleton|src\mcp_client.py
|
||||
ts_cpp_get_skeleton|src\mcp_client.py
|
||||
py_get_code_outline|src\mcp_client.py
|
||||
ts_c_get_code_outline|src\mcp_client.py
|
||||
ts_cpp_get_code_outline|src\mcp_client.py
|
||||
ts_c_get_definition|src\mcp_client.py
|
||||
ts_cpp_get_definition|src\mcp_client.py
|
||||
ts_c_get_signature|src\mcp_client.py
|
||||
ts_cpp_get_signature|src\mcp_client.py
|
||||
ts_c_update_definition|src\mcp_client.py
|
||||
ts_cpp_update_definition|src\mcp_client.py
|
||||
get_file_slice|src\mcp_client.py
|
||||
set_file_slice|src\mcp_client.py
|
||||
edit_file|src\mcp_client.py
|
||||
py_get_symbol_info|src\mcp_client.py
|
||||
py_get_definition|src\mcp_client.py
|
||||
py_update_definition|src\mcp_client.py
|
||||
py_get_signature|src\mcp_client.py
|
||||
py_set_signature|src\mcp_client.py
|
||||
py_get_class_summary|src\mcp_client.py
|
||||
py_get_var_declaration|src\mcp_client.py
|
||||
py_set_var_declaration|src\mcp_client.py
|
||||
get_git_diff|src\mcp_client.py
|
||||
py_find_usages|src\mcp_client.py
|
||||
py_get_imports|src\mcp_client.py
|
||||
py_check_syntax|src\mcp_client.py
|
||||
py_get_hierarchy|src\mcp_client.py
|
||||
py_get_docstring|src\mcp_client.py
|
||||
get_tree|src\mcp_client.py
|
||||
derive_code_path|src\mcp_client.py
|
||||
web_search|src\mcp_client.py
|
||||
fetch_url|src\mcp_client.py
|
||||
get_ui_performance|src\mcp_client.py
|
||||
StdioMCPServer|src\mcp_client.py
|
||||
ExternalMCPManager|src\mcp_client.py
|
||||
get_external_mcp_manager|src\mcp_client.py
|
||||
dispatch|src\mcp_client.py
|
||||
async_dispatch|src\mcp_client.py
|
||||
get_tool_schemas|src\mcp_client.py
|
||||
load_config|src\models.py
|
||||
save_config|src\models.py
|
||||
parse_history_entries|src\models.py
|
||||
ThinkingSegment|src\models.py
|
||||
Ticket|src\models.py
|
||||
Track|src\models.py
|
||||
WorkerContext|src\models.py
|
||||
Metadata|src\models.py
|
||||
TextEditorConfig|src\models.py
|
||||
ExternalEditorConfig|src\models.py
|
||||
TrackState|src\models.py
|
||||
FileItem|src\models.py
|
||||
Preset|src\models.py
|
||||
Tool|src\models.py
|
||||
ToolPreset|src\models.py
|
||||
BiasProfile|src\models.py
|
||||
Persona|src\models.py
|
||||
MCPServerConfig|src\models.py
|
||||
MCPConfiguration|src\models.py
|
||||
VectorStoreConfig|src\models.py
|
||||
RAGConfig|src\models.py
|
||||
WorkspaceProfile|src\models.py
|
||||
load_mcp_config|src\models.py
|
||||
WorkerPool|src\multi_agent_conductor.py
|
||||
ConductorEngine|src\multi_agent_conductor.py
|
||||
confirm_execution|src\multi_agent_conductor.py
|
||||
confirm_spawn|src\multi_agent_conductor.py
|
||||
run_worker_lifecycle|src\multi_agent_conductor.py
|
||||
read_plan|src\native_orchestrator.py
|
||||
write_plan|src\native_orchestrator.py
|
||||
parse_plan_tasks|src\native_orchestrator.py
|
||||
read_metadata|src\native_orchestrator.py
|
||||
write_metadata|src\native_orchestrator.py
|
||||
get_track_dir|src\native_orchestrator.py
|
||||
get_archive_dir|src\native_orchestrator.py
|
||||
NativeOrchestrator|src\native_orchestrator.py
|
||||
get_track_history_summary|src\orchestrator_pm.py
|
||||
generate_tracks|src\orchestrator_pm.py
|
||||
CodeOutliner|src\outline_tool.py
|
||||
get_outline|src\outline_tool.py
|
||||
PendingPatch|src\patch_modal.py
|
||||
PatchModalManager|src\patch_modal.py
|
||||
get_patch_modal_manager|src\patch_modal.py
|
||||
reset_patch_modal_manager|src\patch_modal.py
|
||||
get_config_path|src\paths.py
|
||||
get_global_presets_path|src\paths.py
|
||||
get_project_presets_path|src\paths.py
|
||||
get_global_tool_presets_path|src\paths.py
|
||||
get_project_tool_presets_path|src\paths.py
|
||||
get_global_personas_path|src\paths.py
|
||||
get_project_personas_path|src\paths.py
|
||||
get_global_workspace_profiles_path|src\paths.py
|
||||
get_project_workspace_profiles_path|src\paths.py
|
||||
get_conductor_dir|src\paths.py
|
||||
get_logs_dir|src\paths.py
|
||||
get_scripts_dir|src\paths.py
|
||||
get_tracks_dir|src\paths.py
|
||||
get_track_state_dir|src\paths.py
|
||||
get_archive_dir|src\paths.py
|
||||
get_full_path_info|src\paths.py
|
||||
reset_resolved|src\paths.py
|
||||
PerformanceScope|src\performance_monitor.py
|
||||
get_monitor|src\performance_monitor.py
|
||||
PerformanceMonitor|src\performance_monitor.py
|
||||
PersonaManager|src\personas.py
|
||||
PresetManager|src\presets.py
|
||||
now_ts|src\project_manager.py
|
||||
parse_ts|src\project_manager.py
|
||||
entry_to_str|src\project_manager.py
|
||||
str_to_entry|src\project_manager.py
|
||||
get_git_commit|src\project_manager.py
|
||||
get_git_log|src\project_manager.py
|
||||
default_discussion|src\project_manager.py
|
||||
default_project|src\project_manager.py
|
||||
get_history_path|src\project_manager.py
|
||||
load_project|src\project_manager.py
|
||||
load_history|src\project_manager.py
|
||||
clean_nones|src\project_manager.py
|
||||
save_project|src\project_manager.py
|
||||
migrate_from_legacy_config|src\project_manager.py
|
||||
flat_config|src\project_manager.py
|
||||
save_track_state|src\project_manager.py
|
||||
load_track_state|src\project_manager.py
|
||||
load_track_history|src\project_manager.py
|
||||
save_track_history|src\project_manager.py
|
||||
get_all_tracks|src\project_manager.py
|
||||
calculate_track_progress|src\project_manager.py
|
||||
branch_discussion|src\project_manager.py
|
||||
promote_take|src\project_manager.py
|
||||
BaseEmbeddingProvider|src\rag_engine.py
|
||||
LocalEmbeddingProvider|src\rag_engine.py
|
||||
GeminiEmbeddingProvider|src\rag_engine.py
|
||||
RAGEngine|src\rag_engine.py
|
||||
open_session|src\session_logger.py
|
||||
close_session|src\session_logger.py
|
||||
reset_session|src\session_logger.py
|
||||
log_api_hook|src\session_logger.py
|
||||
log_comms|src\session_logger.py
|
||||
log_tool_call|src\session_logger.py
|
||||
log_tool_output|src\session_logger.py
|
||||
log_cli_call|src\session_logger.py
|
||||
draw_soft_shadow|src\shaders.py
|
||||
apply_faux_acrylic_glass|src\shaders.py
|
||||
ShaderManager|src\shader_manager.py
|
||||
run_powershell|src\shell_runner.py
|
||||
summarise_file|src\summarize.py
|
||||
summarise_items|src\summarize.py
|
||||
build_summary_markdown|src\summarize.py
|
||||
get_file_hash|src\summary_cache.py
|
||||
SummaryCache|src\summary_cache.py
|
||||
format_takes_diff|src\synthesis_formatter.py
|
||||
get_palette_names|src\theme.py
|
||||
get_current_palette|src\theme.py
|
||||
get_current_font_path|src\theme.py
|
||||
get_current_font_size|src\theme.py
|
||||
get_current_scale|src\theme.py
|
||||
get_shader_config|src\theme.py
|
||||
get_window_frame_config|src\theme.py
|
||||
get_palette_colours|src\theme.py
|
||||
apply|src\theme.py
|
||||
apply_font|src\theme.py
|
||||
set_scale|src\theme.py
|
||||
save_to_config|src\theme.py
|
||||
load_from_config|src\theme.py
|
||||
is_nerv_active|src\theme_2.py
|
||||
get_transparency|src\theme_2.py
|
||||
set_transparency|src\theme_2.py
|
||||
get_child_transparency|src\theme_2.py
|
||||
set_child_transparency|src\theme_2.py
|
||||
apply_current|src\theme_2.py
|
||||
get_font_loading_params|src\theme_2.py
|
||||
get_tweaked_theme|src\theme_2.py
|
||||
apply_nerv|src\theme_nerv.py
|
||||
CRTFilter|src\theme_nerv_fx.py
|
||||
StatusFlicker|src\theme_nerv_fx.py
|
||||
AlertPulsing|src\theme_nerv_fx.py
|
||||
parse_thinking_trace|src\thinking_parser.py
|
||||
ToolBiasEngine|src\tool_bias.py
|
||||
ToolPresetManager|src\tool_presets.py
|
||||
WorkspaceManager|src\workspace_manager.py
|
||||
AISettingsSimulation|simulation\sim_ai_settings.py
|
||||
BaseSimulation|simulation\sim_base.py
|
||||
run_sim|simulation\sim_base.py
|
||||
ContextSimulation|simulation\sim_context.py
|
||||
ExecutionSimulation|simulation\sim_execution.py
|
||||
ToolsSimulation|simulation\sim_tools.py
|
||||
UserSimAgent|simulation\user_agent.py
|
||||
WorkflowSimulator|simulation\workflow_sim.py
|
||||
"""
|
||||
|
||||
symbols = []
|
||||
for line in raw_symbols.strip().split("\n"):
|
||||
if "|" in line:
|
||||
name, path = line.split("|")
|
||||
symbols.append((name.strip(), path.strip()))
|
||||
|
||||
# Load all project source
|
||||
source_files = {}
|
||||
for root in ['src', 'simulation']:
|
||||
for p in Path(root).rglob('*.py'):
|
||||
try:
|
||||
source_files[str(p)] = p.read_text(encoding='utf-8')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
unused = []
|
||||
for name, path in symbols:
|
||||
# Skip generic names that might give false positives in a simple regex search
|
||||
if name in ["run", "main", "apply", "save_config", "load_config", "configure"]:
|
||||
continue
|
||||
|
||||
pattern = re.compile(r'\b' + re.escape(name) + r'\b')
|
||||
count = 0
|
||||
for fpath, code in source_files.items():
|
||||
if fpath == path:
|
||||
# Only count if it appears more than once (one for definition)
|
||||
# This is a bit naive for methods vs standalone functions but a good start
|
||||
matches = pattern.findall(code)
|
||||
if len(matches) > 1:
|
||||
count += (len(matches) - 1)
|
||||
else:
|
||||
matches = pattern.findall(code)
|
||||
count += len(matches)
|
||||
|
||||
if count == 0:
|
||||
unused.append((name, path))
|
||||
|
||||
print(f"TOTAL_UNUSED:{len(unused)}")
|
||||
for name, path in unused:
|
||||
print(f"UNUSED:{name}|PATH:{path}")
|
||||
Reference in New Issue
Block a user