refactor(sdm): Global pass with refined 'External Only' SDM tags. Pruned redundant internal references and fixed indentation logic in injector. Verified full project compilation.
This commit is contained in:
+60
-4
@@ -103,6 +103,9 @@ class App:
|
||||
|
||||
def __init__(self) -> None:
|
||||
# Initialize controller and delegate state
|
||||
"""
|
||||
[C: src/mcp_client.py:_DDGParser.__init__, src/mcp_client.py:_TextExtractor.__init__]
|
||||
"""
|
||||
self.controller = app_controller.AppController()
|
||||
self.controller._app = self
|
||||
from src import history
|
||||
@@ -429,7 +432,10 @@ class App:
|
||||
self._apply_snapshot(entry.state)
|
||||
|
||||
def shutdown(self) -> None:
|
||||
"""Cleanly shuts down the app's background tasks and saves state."""
|
||||
"""
|
||||
Cleanly shuts down the app's background tasks and saves state.
|
||||
[C: tests/conftest.py:app_instance, tests/conftest.py:mock_app]
|
||||
"""
|
||||
try:
|
||||
if hasattr(self, 'runner_params') and self.runner_params.ini_filename:
|
||||
imgui.save_ini_settings_to_disk(self.runner_params.ini_filename)
|
||||
@@ -438,6 +444,9 @@ class App:
|
||||
self.controller.shutdown()
|
||||
|
||||
def save_context_preset(self, name: str) -> None:
|
||||
"""
|
||||
[C: tests/test_context_presets.py:test_save_context_preset]
|
||||
"""
|
||||
sys.stderr.write(f"[DEBUG] save_context_preset called with: {name}\n")
|
||||
sys.stderr.flush()
|
||||
if 'context_presets' not in self.controller.project:
|
||||
@@ -451,6 +460,9 @@ class App:
|
||||
sys.stderr.flush()
|
||||
|
||||
def load_context_preset(self, name: str) -> None:
|
||||
"""
|
||||
[C: tests/test_context_presets.py:test_load_context_preset, tests/test_context_presets.py:test_load_nonexistent_preset]
|
||||
"""
|
||||
presets = self.controller.project.get('context_presets', {})
|
||||
if name in presets:
|
||||
preset = presets[name]
|
||||
@@ -458,6 +470,9 @@ class App:
|
||||
self.screenshots = list(preset.get('screenshots', []))
|
||||
|
||||
def delete_context_preset(self, name: str) -> None:
|
||||
"""
|
||||
[C: tests/test_context_presets.py:test_delete_context_preset, tests/test_context_presets.py:test_delete_nonexistent_preset_no_error]
|
||||
"""
|
||||
if 'context_presets' in self.controller.project:
|
||||
self.controller.project['context_presets'].pop(name, None)
|
||||
self.controller._save_active_project()
|
||||
@@ -597,6 +612,9 @@ class App:
|
||||
imgui.pop_id()
|
||||
|
||||
def _show_menus(self) -> None:
|
||||
"""
|
||||
[C: tests/test_gui_window_controls.py:test_gui_window_controls_minimize_maximize_close]
|
||||
"""
|
||||
if imgui.begin_menu("manual slop"):
|
||||
if imgui.menu_item("Quit", "Ctrl+Q", False)[0]:
|
||||
self.runner_params.app_shall_exit = True
|
||||
@@ -719,6 +737,9 @@ class App:
|
||||
pass
|
||||
|
||||
def _render_shader_live_editor(self) -> None:
|
||||
"""
|
||||
[C: tests/test_shader_live_editor.py:test_shader_live_editor_renders]
|
||||
"""
|
||||
if self.show_windows.get('Shader Editor', False):
|
||||
exp, opened = imgui.begin('Shader Editor', self.show_windows['Shader Editor'])
|
||||
self.show_windows['Shader Editor'] = bool(opened)
|
||||
@@ -2044,6 +2065,9 @@ class App:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_projects_panel")
|
||||
|
||||
def _save_paths(self):
|
||||
"""
|
||||
[C: tests/test_gui_paths.py:test_save_paths]
|
||||
"""
|
||||
self.config["paths"] = {
|
||||
"logs_dir": self.ui_logs_dir,
|
||||
"scripts_dir": self.ui_scripts_dir
|
||||
@@ -2295,6 +2319,9 @@ class App:
|
||||
self._patch_error_message = str(e)
|
||||
|
||||
def _render_log_management(self) -> None:
|
||||
"""
|
||||
[C: tests/test_log_management_ui.py:test_render_log_management_logic]
|
||||
"""
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_log_management")
|
||||
exp, opened = imgui.begin("Log Management", self.show_windows["Log Management"])
|
||||
self.show_windows["Log Management"] = bool(opened)
|
||||
@@ -2797,6 +2824,9 @@ def hello():
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_screenshots_panel")
|
||||
|
||||
def _render_discussion_panel(self) -> None:
|
||||
"""
|
||||
[C: tests/test_discussion_takes_gui.py:test_render_discussion_tabs, tests/test_discussion_takes_gui.py:test_switching_discussion_via_tabs, tests/test_gui_discussion_tabs.py:test_discussion_tabs_rendered, tests/test_gui_phase4.py:test_track_discussion_toggle, tests/test_gui_symbol_navigation.py:test_render_discussion_panel_symbol_lookup]
|
||||
"""
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_discussion_panel")
|
||||
# THINKING indicator
|
||||
is_thinking = self.ai_status in ['sending...', 'streaming...', 'running powershell...']
|
||||
@@ -3175,7 +3205,10 @@ def hello():
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_discussion_panel")
|
||||
|
||||
def _render_synthesis_panel(self) -> None:
|
||||
"""Renders a panel for synthesizing multiple discussion takes."""
|
||||
"""
|
||||
Renders a panel for synthesizing multiple discussion takes.
|
||||
[C: tests/test_gui_synthesis.py:test_render_synthesis_panel]
|
||||
"""
|
||||
imgui.text("Select takes to synthesize:")
|
||||
discussions = self.project.get('discussion', {}).get('discussions', {})
|
||||
if not hasattr(self, 'ui_synthesis_selected_takes'):
|
||||
@@ -3917,18 +3950,27 @@ def hello():
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_tool_calls_panel")
|
||||
|
||||
def bulk_execute(self) -> None:
|
||||
"""
|
||||
[C: tests/test_ticket_queue.py:TestBulkOperations.test_bulk_execute]
|
||||
"""
|
||||
for tid in self.ui_selected_tickets:
|
||||
t = next((t for t in self.active_tickets if str(t.get('id', '')) == tid), None)
|
||||
if t: t['status'] = 'in_progress'
|
||||
self._push_mma_state_update()
|
||||
|
||||
def bulk_skip(self) -> None:
|
||||
"""
|
||||
[C: tests/test_ticket_queue.py:TestBulkOperations.test_bulk_skip]
|
||||
"""
|
||||
for tid in self.ui_selected_tickets:
|
||||
t = next((t for t in self.active_tickets if str(t.get('id', '')) == tid), None)
|
||||
if t: t['status'] = 'completed'
|
||||
self._push_mma_state_update()
|
||||
|
||||
def bulk_block(self) -> None:
|
||||
"""
|
||||
[C: tests/test_ticket_queue.py:TestBulkOperations.test_bulk_block]
|
||||
"""
|
||||
for tid in self.ui_selected_tickets:
|
||||
t = next((t for t in self.active_tickets if str(t.get('id', '')) == tid), None)
|
||||
if t: t['status'] = 'blocked'
|
||||
@@ -3980,6 +4022,9 @@ def hello():
|
||||
self._push_mma_state_update()
|
||||
|
||||
def _reorder_ticket(self, src_idx: int, dst_idx: int) -> None:
|
||||
"""
|
||||
[C: tests/test_ticket_queue.py:TestReorder.test_reorder_ticket_invalid, tests/test_ticket_queue.py:TestReorder.test_reorder_ticket_valid]
|
||||
"""
|
||||
if src_idx == dst_idx: return
|
||||
new_tickets = list(self.active_tickets)
|
||||
ticket = new_tickets.pop(src_idx)
|
||||
@@ -3999,6 +4044,9 @@ def hello():
|
||||
self._push_mma_state_update()
|
||||
|
||||
def _render_ticket_queue(self) -> None:
|
||||
"""
|
||||
[C: tests/test_gui_kill_button.py:test_render_ticket_queue_table_columns]
|
||||
"""
|
||||
imgui.text("Ticket Queue Management")
|
||||
if not self.active_track:
|
||||
imgui.text_disabled("No active track.")
|
||||
@@ -4126,6 +4174,9 @@ def hello():
|
||||
imgui.end_table()
|
||||
|
||||
def _render_mma_dashboard(self) -> None:
|
||||
"""
|
||||
[C: tests/test_gui_progress.py:test_render_mma_dashboard_progress, tests/test_mma_approval_indicators.py:TestMMAApprovalIndicators.test_approval_badge_shown_when_ask_dialog_pending, tests/test_mma_approval_indicators.py:TestMMAApprovalIndicators.test_approval_badge_shown_when_mma_approval_pending, tests/test_mma_approval_indicators.py:TestMMAApprovalIndicators.test_approval_badge_shown_when_spawn_pending, tests/test_mma_approval_indicators.py:TestMMAApprovalIndicators.test_no_approval_badge_when_idle]
|
||||
"""
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_mma_dashboard")
|
||||
|
||||
# Focus Agent dropdown
|
||||
@@ -4734,6 +4785,9 @@ def hello():
|
||||
imgui.text_colored(imgui.ImVec4(1, 0, 0, 1), f"Error loading beads: {e}")
|
||||
|
||||
def _render_tier_stream_panel(self, tier_key: str, stream_key: str | None) -> None:
|
||||
"""
|
||||
[C: tests/test_mma_dashboard_streams.py:TestMMADashboardStreams.test_tier1_renders_stream_content, tests/test_mma_dashboard_streams.py:TestMMADashboardStreams.test_tier3_renders_worker_subheaders]
|
||||
"""
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_tier_stream_panel")
|
||||
if self.is_viewing_prior_session:
|
||||
imgui.text_colored(vec4(255, 200, 100), "HISTORICAL VIEW - READ ONLY")
|
||||
@@ -5135,7 +5189,10 @@ def hello():
|
||||
theme.apply_current()
|
||||
|
||||
def run(self) -> None:
|
||||
"""Initializes the ImGui runner and starts the main application loop."""
|
||||
"""
|
||||
Initializes the ImGui runner and starts the main application loop.
|
||||
[C: simulation/sim_base.py:run_sim, src/mcp_client.py:get_git_diff, src/project_manager.py:get_git_commit, src/project_manager.py:get_git_log, src/rag_engine.py:RAGEngine._search_mcp, src/shell_runner.py:run_powershell, tests/conftest.py:kill_process_tree, tests/conftest.py:live_gui, tests/test_conductor_abort_event.py:test_conductor_abort_event_populated, tests/test_conductor_engine_v2.py:test_conductor_engine_dynamic_parsing_and_execution, tests/test_conductor_engine_v2.py:test_conductor_engine_run_executes_tickets_in_order, tests/test_extended_sims.py:test_ai_settings_sim_live, tests/test_extended_sims.py:test_context_sim_live, tests/test_extended_sims.py:test_execution_sim_live, tests/test_extended_sims.py:test_tools_sim_live, tests/test_external_editor_gui.py:get_vscode_processes, tests/test_external_editor_gui.py:test_vscode_launches_with_diff_view, tests/test_gui_custom_window.py:test_app_window_is_borderless, tests/test_headless_simulation.py:module, tests/test_headless_verification.py:test_headless_verification_error_and_qa_interceptor, tests/test_headless_verification.py:test_headless_verification_full_run, tests/test_mock_gemini_cli.py:run_mock, tests/test_orchestration_logic.py:test_conductor_engine_run, tests/test_parallel_execution.py:test_conductor_engine_pool_integration, tests/test_sim_ai_settings.py:test_ai_settings_simulation_run, tests/test_sim_context.py:test_context_simulation_run, tests/test_sim_execution.py:test_execution_simulation_run, tests/test_sim_tools.py:test_tools_simulation_run]
|
||||
"""
|
||||
if "--headless" in sys.argv:
|
||||
print("Headless mode active")
|
||||
self._fetch_models(self.current_provider)
|
||||
@@ -5202,4 +5259,3 @@ def main() -> None:
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user