# Implementation Plan: Hot Reload Python Codebase ## Phase 1: Registration & Trigger Integration Focus: Register src.gui_2 module, add keyboard and GUI triggers - [x] Task 1.1: Add `_hot_reload_error` state to `App.__init__` (gui_2.py:101-251) [671654d] - [x] Task 1.2: Add `_trigger_hot_reload()` method to `App` (gui_2.py) [671654d] - [x] Task 1.3: Add `Ctrl+Alt+R` capture in `App.run()` main loop (gui_2.py:268-332) [671654d] - [x] Task 1.4: Register `src.gui_2` in `AppController.__init__` with full state_keys and delegation_targets [671654d] - [x] Task 1.5: Add "Hot Reload" button in `_render_mma_dashboard` (gui_2.py:4664-4695) [671654d] - [x] Task 1.N: Write tests for trigger integration [671654d] - [ ] Task 1.X: Conductor - User Manual Verification ## Phase 2: Delegation Pattern Refactor Focus: Extract App._render_xxx methods to module-level functions in gui_2.py - [ ] Task 2.1: Refactor `_render_main_interface` — extract to module-level `render_main_interface(app: App)` and convert App method to thin delegation wrapper - [ ] Task 2.2: Refactor `_render_discussion_hub` and discussion panel methods - [ ] Task 2.3: Refactor `_render_files_and_media`, `_render_files_panel`, `_render_screenshots_panel` - [ ] Task 2.4: Refactor `_render_ai_settings_hub`, `_render_provider_panel`, `_render_persona_selector_panel` - [ ] Task 2.5: Refactor `_render_agent_tools_panel`, `_render_rag_panel`, `_render_system_prompts_panel` - [ ] Task 2.6: Refactor `_render_preset_manager_content`, `_render_persona_editor_window`, `_render_tool_preset_manager_content` - [ ] Task 2.7: Refactor `_render_operations_hub`, `_render_tool_calls_panel`, `_render_comms_history_panel` - [ ] Task 2.8: Refactor `_render_mma_dashboard`, `_render_mma_modals`, `_render_ticket_queue`, `_render_task_dag_panel` - [ ] Task 2.9: Refactor `_render_approve_script_modal`, `_render_patch_modal` - [ ] Task 2.10: Write tests verifying module-level functions exist and accept `app: App` as first parameter - [ ] Task 2.X: Conductor - User Manual Verification ## Phase 3: Visual Error Tint Focus: Render error overlay when HotReloader.is_error_state is True - [ ] Task 3.1: Add `_render_error_tint(app: App)` module-level function in gui_2.py - [ ] Task 3.2: Call `_render_error_tint(app)` at start of `render_main_interface` - [ ] Task 3.3: Write test for error tint rendering - [ ] Task 3.X: Conductor - User Manual Verification ## Phase 4: Integration & Verification Focus: End-to-end tests via live_gui fixture - [ ] Task 4.1: Write e2e test — trigger hot reload, verify GUI still renders - [ ] Task 4.2: Write e2e test — hot reload preserves state (active_discussion, show_windows, etc.) - [ ] Task 4.3: Run full batch test suite - [ ] Task 4.X: Conductor - User Manual Verification