diff --git a/MMA_UX_SPEC.md b/MMA_UX_SPEC.md new file mode 100644 index 0000000..4299f8f --- /dev/null +++ b/MMA_UX_SPEC.md @@ -0,0 +1,36 @@ +# 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. diff --git a/conductor/tracks.md b/conductor/tracks.md index 39fbffb..c719cd0 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -30,7 +30,7 @@ This file tracks all major tracks for the project. Each track has its own detail --- -- [x] **Track: MMA Core Engine Implementation** +- [~] **Track: MMA Core Engine Implementation** *Link: [./tracks/mma_core_engine_20260224/](./tracks/mma_core_engine_20260224/)* --- diff --git a/conductor/tracks/mma_core_engine_20260224/plan.md b/conductor/tracks/mma_core_engine_20260224/plan.md index cb78248..4b1edc6 100644 --- a/conductor/tracks/mma_core_engine_20260224/plan.md +++ b/conductor/tracks/mma_core_engine_20260224/plan.md @@ -56,4 +56,17 @@ - [x] Confirm UI updates and async event handling during multi-model generation. - [x] Task: Comprehensive Regression Suite - [x] Run all tests in `tests/` related to MMA, Conductor, and Async Events. - - [x] Verify that no regressions were introduced in existing functionality. \ No newline at end of file + - [x] Verify that no regressions were introduced in existing functionality. + +## Phase 7: MMA Observability & UX +- [ ] Task: MMA Dashboard Implementation + - [ ] Create a new dockable panel in `gui_2.py` for "MMA Dashboard". + - [ ] Display active `Track` and `Ticket` queue status. +- [ ] Task: Execution Clutch UI + - [ ] Implement Step Mode toggle and Pause Points logic in the GUI. + - [ ] Add `[Approve]`, `[Edit Payload]`, and `[Abort]` buttons for tool execution. +- [ ] Task: Memory Mutator Modal + - [ ] Create a modal for editing raw JSON conversation history of paused workers. +- [ ] Task: Tiered Metrics & Log Links + - [ ] Add visual indicators for the active model Tier. + - [ ] Provide clickable links to sub-agent logs. \ No newline at end of file