# 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.
