# Implementation Plan: Advanced Workspace Docking & Layout Profiles ## Phase 1: Data Model & Persistence Engine - [ ] Task: Create a `WorkspaceProfile` dataclass in `src/models.py` to store INI string, `show_windows` dict, and panel states. - [ ] Task: Implement `WorkspaceManager` (similar to `PresetManager`) to handle saving/loading profiles from `config.toml` and `project.toml`. - [ ] Task: Write Tests: Verify the manager correctly merges global and project profiles and serializes the ImGui INI string properly. - [ ] Task: Conductor - User Manual Verification 'Phase 1: Data Model & Persistence Engine' (Protocol in workflow.md) ## Phase 2: ImGui State Extraction & Restoration - [ ] Task: Implement methods in `src/gui_2.py` (or a helper module) to safely capture the current ImGui layout (`imgui.save_ini_settings_to_memory()`). - [ ] Task: Implement methods to safely restore layout (`imgui.load_ini_settings_from_memory()`) and apply the associated `show_windows` state. - [ ] Task: Write Tests: Verify using `live_gui` that saving a layout and loading it back does not cause crashes or assertion failures in the ImGui render loop. - [ ] Task: Conductor - User Manual Verification 'Phase 2: ImGui State Extraction & Restoration' (Protocol in workflow.md) ## Phase 3: GUI Menu Integration - [ ] Task: Add a "Layout Profiles" menu under the main "Windows" or "View" menu bar in `src/gui_2.py`. - [ ] Task: Implement "Save Current Layout" modal (prompting for name and scope: Global/Project). - [ ] Task: Populate the menu with a dynamically generated list of available profiles to load. - [ ] Task: Conductor - User Manual Verification 'Phase 3: GUI Menu Integration' (Protocol in workflow.md) ## Phase 4: Contextual Auto-Switch (Experimental) - [ ] Task: Add UI in "AI Settings" or "Operations Hub" to enable "Experimental: Auto-switch layout by Tier". - [ ] Task: Add UI to bind specific profiles to Tiers 1 through 4. - [ ] Task: Implement the event hook in `AppController` so that when the `active_tier` changes, the bound profile is automatically loaded if the feature is enabled. - [ ] Task: Conductor - User Manual Verification 'Phase 4: Contextual Auto-Switch (Experimental)' (Protocol in workflow.md)