# MMA Observability & UX Specification ## 1. Goal Implement the visible surface area of the 4-Tier Hierarchical Multi-Model Architecture within `gui_2.py`. This ensures the user can monitor, control, and debug the multi-agent execution flow. ## 2. Core Components ### 2.1 MMA Dashboard Panel - **Visibility:** A new dockable panel named "MMA Dashboard". - **Track Status:** Display the current active `Track` ID and overall progress (e.g., "3/10 Tickets Complete"). - **Ticket DAG Visualization:** A list or simple graph representing the `Ticket` queue. - Each ticket shows: `ID`, `Target`, `Status` (Pending, Running, Paused, Complete, Blocked). - Visual indicators for dependencies (e.g., indented or linked). ### 2.2 The Execution Clutch (HITL) - **Step Mode Toggle:** A global or per-track checkbox to enable "Step Mode". - **Pause Points:** - **Pre-Execution:** When a Tier 3 worker generates a tool call (e.g., `write_file`), the engine pauses. - **UI Interaction:** The GUI displays the proposed script/change and provides: - `[Approve]`: Proceed with execution. - `[Edit Payload]`: Open the Memory Mutator. - `[Abort]`: Mark the ticket as Blocked/Cancelled. - **Visual Feedback:** Tactile/Arcade-style blinking or color changes when the engine is "Paused for HITL". ### 2.3 Memory Mutator (The "Debug" Superpower) - **Functionality:** A modal or dedicated text area that allows the user to edit the raw JSON conversation history of a paused worker. - **Use Case:** Fixing AI hallucinations or providing specific guidance mid-turn without restarting the context window. - **Integration:** After editing, the "Approve" button sends the *modified* history back to the engine. ### 2.4 Tiered Metrics & Logs - **Observability:** Show which model (Tier 1, 2, 3, or 4) is currently active. - **Sub-Agent Logs:** Provide quick links to open the timestamped log files generated by `mma_exec.py`. ## 3. Technical Integration - **Event Bus:** Use the existing `AsyncEventQueue` to push `StateUpdateEvents` from the `ConductorEngine` to the GUI. - **Non-Blocking:** Ensure the UI remains responsive (FPS > 60) even when multiple tickets are processing or the engine is waiting for user input.