# Specification: GUI 2.0 Feature Parity and Migration

## Overview
The project is transitioning from `gui.py` (Dear PyGui-based) to `gui_2.py` (ImGui Bundle-based) to leverage advanced multi-viewport and docking features not natively supported by Dear PyGui. This track focuses on achieving full visual, functional, and performance parity between the two implementations, ultimately enabling the decommissioning of the original `gui.py`.

## Functional Requirements
1.  **Visual Parity:**
    -   Ensure all panels, layouts, and interactive elements in `gui_2.py` match the established UX of `gui.py`.
    -   Address nuances in UX, such as text panel sizing and font rendering, to ensure a seamless transition for existing users.
2.  **Functional Parity:**
    -   Verify that all backend hooks (API metrics, context management, MCP tools, shell execution) work identically in `gui_2.py`.
    -   Ensure all interactive controls (buttons, inputs, dropdowns) trigger the correct application state changes.
3.  **Performance Parity:**
    -   Benchmark `gui_2.py` against `gui.py` for FPS, frame time, and CPU/memory usage.
    -   Optimize `gui_2.py` to meet or exceed the performance metrics of the original implementation.

## Non-Functional Requirements
-   **Multi-Viewport Stability:** Ensure the ImGui-bundle implementation is stable across multiple windows and docking configurations.
-   **Deprecation Workflow:** Establish a clear path for renaming `gui.py` to `gui_legacy.py` for a transition period.

## Acceptance Criteria
-   [ ] `gui_2.py` successfully passes the full suite of GUI automated verification tests (e.g., `test_gui2_events.py`, `test_gui2_layout.py`).
-   [ ] A side-by-side audit confirms visual and functional parity for all core Hub panels.
-   [ ] Performance benchmarks show `gui_2.py` is within +/- 5% of `gui.py` metrics.
-   [ ] `gui.py` is renamed to `gui_legacy.py`.

## Out of Scope
-   Introducing new UI features or backend capabilities not present in `gui.py`.
-   Modifying the core `EventEmitter` or `AiClient` logic (unless required for GUI hook integration).
