# 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