diff --git a/TASKS.md b/TASKS.md index 7960ca1..458f26f 100644 --- a/TASKS.md +++ b/TASKS.md @@ -10,28 +10,33 @@ --- -## Phase 3: Future Horizons (Tracks 1-19) +## Phase 3: Future Horizons (Tracks 1-20) *Initialized: 2026-03-06* ### Architecture & Backend -#### 1. \ rue_parallel_worker_execution_20260306- **Status:** Planned +#### 1. true_parallel_worker_execution_20260306 +- **Status:** Planned - **Priority:** High - **Goal:** Implement true concurrency for the DAG engine. Once threading.local() is in place, the ExecutionEngine should spawn independent Tier 3 workers in parallel (e.g., 4 workers handling 4 isolated tests simultaneously). Requires strict file-locking or a Git-based diff-merging strategy to prevent AST collision. -#### 2. \deep_ast_context_pruning_20260306- **Status:** Planned +#### 2. deep_ast_context_pruning_20260306 +- **Status:** Planned - **Priority:** High - **Goal:** Before dispatching a Tier 3 worker, use tree_sitter to automatically parse the target file AST, strip out unrelated function bodies, and inject a surgically condensed skeleton into the worker prompt. Guarantees the AI only sees what it needs to edit, drastically reducing token burn. -#### 3. \ isual_dag_ticket_editing_20260306- **Status:** Planned +#### 3. visual_dag_ticket_editing_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Replace the linear ticket list in the GUI with an interactive Node Graph using ImGui Bundle node editor. Allow the user to visually drag dependency lines, split nodes, or delete tasks before clicking Execute Pipeline. -#### 4. \ ier4_auto_patching_20260306- **Status:** Planned +#### 4. tier4_auto_patching_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Elevate Tier 4 from a log summarizer to an auto-patcher. When a verification test fails, Tier 4 generates a .patch file. The GUI intercepts this and presents a side-by-side Diff Viewer. The user clicks Apply Patch to instantly resume the pipeline. -#### 5. ative_orchestrator_20260306- **Status:** Planned +#### 5. native_orchestrator_20260306 +- **Status:** Planned - **Priority:** Low - **Goal:** Absorb the Conductor extension entirely into the core application. Manual Slop should natively read/write plan.md, manage the metadata.json, and orchestrate the MMA tiers in pure Python, removing the dependency on external CLI shell executions (mma_exec.py). @@ -39,66 +44,81 @@ ### GUI Overhauls & Visualizations -#### 6. \cost_token_analytics_20260306- **Status:** Planned +#### 6. cost_token_analytics_20260306 +- **Status:** Planned - **Priority:** High - **Goal:** Real-time cost tracking panel displaying cost per model, session totals, and breakdown by tier. Uses existing cost_tracker.py which is implemented but has no GUI. -#### 7. \performance_dashboard_20260306- **Status:** Planned +#### 7. performance_dashboard_20260306 +- **Status:** Planned - **Priority:** High - **Goal:** Expand performance metrics panel with CPU/RAM usage, frame time, input lag with historical graphs. Uses existing performance_monitor.py which has basic metrics but no detailed visualization. -#### 8. \mma_multiworker_viz_20260306- **Status:** Planned +#### 8. mma_multiworker_viz_20260306 +- **Status:** Planned - **Priority:** High - **Goal:** Split-view GUI for parallel worker streams per tier. Visualize multiple concurrent workers with individual status, output tabs, and resource usage. Enable kill/restart per worker. -#### 9. \cache_analytics_20260306- **Status:** Planned +#### 9. cache_analytics_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Gemini cache hit/miss visualization, memory usage, TTL status display. Uses existing ai_client.get_gemini_cache_stats() which is not displayed in GUI. -#### 10. \ ool_usage_analytics_20260306- **Status:** Planned +#### 10. tool_usage_analytics_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Analytics panel showing most-used tools, average execution time, and failure rates. Uses existing tool_log_callback data. -#### 11. \session_insights_20260306- **Status:** Planned +#### 11. session_insights_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Token usage over time, cost projections, session summary with efficiency scores. Visualize session_logger data. -#### 12. \ rack_progress_viz_20260306- **Status:** Planned +#### 12. track_progress_viz_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Progress bars and percentage completion for active tracks and tickets. Better visualization of DAG execution state. -#### 13. \manual_skeleton_injection_20260306- **Status:** Planned +#### 13. manual_skeleton_injection_20260306 +- **Status:** Planned - **Priority:** Medium -- **Goal:** Add UI controls to manually flag files for skeleton injection in discussions. Allow agent to request full file reads or specific def/class definitions on-demand. Currently skeletons are auto-generated for workers only; extend to manual discussions with user-controlled file selection and def-level retrieval. +- **Goal:** Add UI controls to manually flag files for skeleton injection in discussions. Allow agent to request full file reads or specific def/class definitions on-demand. -#### 14. \on_demand_def_lookup_20260306- **Status:** Planned +#### 14. on_demand_def_lookup_20260306 +- **Status:** Planned - **Priority:** Medium -- **Goal:** Add ability for agent to request specific class/function definitions during discussion. - -#### 15. \manual_ux_validation_20260302- **Status:** Planned -- **Priority:** Medium -- **Goal:** Interactive human-in-the-loop track to review and adjust GUI UX, animations, popups, and layout structures. User can @mention a symbol and get its full definition inline, or allow the AI to auto-fetch definitions when it encounters unknown symbols. Complements skeleton injection by providing deep-dive capability. +- **Goal:** Add ability for agent to request specific class/function definitions during discussion. User can @mention a symbol and get its full definition inline. --- ### Manual UX Controls -#### 15. \ icket_queue_mgmt_20260306- **Status:** Planned +#### 15. ticket_queue_mgmt_20260306 +- **Status:** Planned - **Priority:** High -- **Goal:** Allow user to manually reorder, prioritize, or requeue tickets in the DAG. Add drag-drop reordering, priority tags, and bulk selection for execute/skip/block. +- **Goal:** Allow user to manually reorder, prioritize, or requeue tickets in the DAG. Add drag-drop reordering, priority tags, and bulk selection. -#### 16. \kill_abort_workers_20260306- **Status:** Planned +#### 16. kill_abort_workers_20260306 +- **Status:** Planned - **Priority:** High -- **Goal:** Add ability to kill/abort a running Tier 3 worker mid-execution. Currently workers run to completion; add cancel button with forced termination option. +- **Goal:** Add ability to kill/abort a running Tier 3 worker mid-execution. Currently workers run to completion; add cancel button. -#### 17. \manual_block_control_20260306- **Status:** Planned +#### 17. manual_block_control_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Allow user to manually block or unblock tickets with custom reasons. Currently blocked tickets rely on dependency resolution; add manual override. -#### 18. \pipeline_pause_resume_20260306- **Status:** Planned +#### 18. pipeline_pause_resume_20260306 +- **Status:** Planned - **Priority:** Medium - **Goal:** Add global pause/resume for the entire DAG execution pipeline. Allow user to freeze all worker activity and resume later. -#### 19. \per_ticket_model_20260306- **Status:** Planned +#### 19. per_ticket_model_20260306 +- **Status:** Planned - **Priority:** Low -- **Goal:** Allow user to manually select which model to use for a specific ticket, overriding the default tier model. Useful for forcing a smarter model on hard tickets. +- **Goal:** Allow user to manually select which model to use for a specific ticket, overriding the default tier model. + +#### 20. manual_ux_validation_20260302 +- **Status:** Planned +- **Priority:** Medium +- **Goal:** Interactive human-in-the-loop track to review and adjust GUI UX, animations, popups, and layout structures. diff --git a/conductor/tracks/cache_analytics_20260306/index.md b/conductor/tracks/cache_analytics_20260306/index.md new file mode 100644 index 0000000..8b08a96 --- /dev/null +++ b/conductor/tracks/cache_analytics_20260306/index.md @@ -0,0 +1,9 @@ +# Cache Analytics Display + +**Track ID:** cache_analytics_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/cache_analytics_20260306/metadata.json b/conductor/tracks/cache_analytics_20260306/metadata.json new file mode 100644 index 0000000..8458289 --- /dev/null +++ b/conductor/tracks/cache_analytics_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "cache_analytics_20260306", + "name": "Cache Analytics Display", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/cache_analytics_20260306/plan.md b/conductor/tracks/cache_analytics_20260306/plan.md index be225fe..725f920 100644 --- a/conductor/tracks/cache_analytics_20260306/plan.md +++ b/conductor/tracks/cache_analytics_20260306/plan.md @@ -1,16 +1,29 @@ -# Implementation Plan: Cache Analytics Display (cache_analytics) +# Implementation Plan: Cache Analytics Display (cache_analytics_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Cache Stats Integration +- [ ] Task: Initialize MMA Environment +- [ ] Task: Verify get_gemini_cache_stats + - WHERE: src/ai_client.py + - WHAT: Check existing function + - HOW: Review implementation -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Panel Implementation +- [ ] Task: Create cache panel + - WHERE: src/gui_2.py + - WHAT: Display cache stats + - HOW: imgui widgets + - SAFETY: Handle no cache -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: TTL & Controls +- [ ] Task: Display TTL countdown + - WHERE: src/gui_2.py + - WHAT: Time until cache rebuild + - HOW: Calculate from cache_created_at +- [ ] Task: Add clear button + - WHERE: src/gui_2.py + - WHAT: Manual cache clear + - HOW: Call ai_client.cleanup() + +## Phase 4: Verification +- [ ] Task: Test cache display +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/cache_analytics_20260306/spec.md b/conductor/tracks/cache_analytics_20260306/spec.md index 6f7ddea..722d5b1 100644 --- a/conductor/tracks/cache_analytics_20260306/spec.md +++ b/conductor/tracks/cache_analytics_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: Cache Analytics Display +# Track Specification: Cache Analytics Display (cache_analytics_20260306) ## Overview -Gemini cache hit/miss visualization and TTL status. +Gemini cache hit/miss visualization, memory usage, TTL status display. Uses existing ai_client.get_gemini_cache_stats() which is not displayed in GUI. -## Current State Audit -### Already Implemented -- get_gemini_cache_stats() in ai_client.py -- Cache creation/deletion - -### Gaps to Fill -- No GUI display -- No hit/miss tracking - -## Goals -- Cache status panel -- Hit/miss ratio -- TTL countdown +## Architectural Constraints +- **Non-Blocking**: Cache queries MUST NOT block UI. +- **Efficient Polling**: Cache stats SHOULD be polled, not pushed. ## Functional Requirements -- Cache size display -- TTL visualization -- Manual cache clear +- **Cache Status**: Display active cache count and size. +- **Hit/Miss Ratio**: Calculate and display cache efficiency. +- **TTL Countdown**: Show time until next cache rebuild. +- **Manual Clear**: Button to manually clear cache. -## Non-Functional Requirements -- Non-blocking UI updates +## Acceptance Criteria +- [ ] Cache panel displays in GUI. +- [ ] Hit/miss ratio calculated correctly. +- [ ] TTL countdown visible. +- [ ] Manual clear button works. +- [ ] Uses existing get_gemini_cache_stats(). diff --git a/conductor/tracks/cost_token_analytics_20260306/index.md b/conductor/tracks/cost_token_analytics_20260306/index.md new file mode 100644 index 0000000..5e2813d --- /dev/null +++ b/conductor/tracks/cost_token_analytics_20260306/index.md @@ -0,0 +1,9 @@ +# Cost & Token Analytics Panel + +**Track ID:** cost_token_analytics_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/cost_token_analytics_20260306/metadata.json b/conductor/tracks/cost_token_analytics_20260306/metadata.json new file mode 100644 index 0000000..c256a0d --- /dev/null +++ b/conductor/tracks/cost_token_analytics_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "cost_token_analytics_20260306", + "name": "Cost & Token Analytics Panel", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/cost_token_analytics_20260306/plan.md b/conductor/tracks/cost_token_analytics_20260306/plan.md index b3b3e4c..909bbe8 100644 --- a/conductor/tracks/cost_token_analytics_20260306/plan.md +++ b/conductor/tracks/cost_token_analytics_20260306/plan.md @@ -1,16 +1,32 @@ -# Implementation Plan: Cost & Token Analytics Panel (cost_token_analytics) +# Implementation Plan: Cost & Token Analytics Panel (cost_token_analytics_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Panel Setup +- [ ] Task: Initialize MMA Environment +- [ ] Task: Create cost panel structure + - WHERE: src/gui_2.py + - WHAT: New panel for cost display + - HOW: Add _render_cost_panel method + - SAFETY: Non-blocking updates -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Cost Calculations +- [ ] Task: Integrate cost_tracker + - WHERE: src/gui_2.py + - WHAT: Use cost_tracker.estimate_cost + - HOW: Call with model and token counts + - SAFETY: Cache expensive calculations +- [ ] Task: Track session totals + - WHERE: src/gui_2.py or app_controller + - WHAT: Accumulate cost over session + - HOW: Maintain running total + - SAFETY: Thread-safe updates -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: UI Implementation +- [ ] Task: Render cost breakdown + - WHERE: src/gui_2.py + - WHAT: Show per-model and per-tier costs + - HOW: imgui tables + - SAFETY: Handle zero/empty states + +## Phase 4: Verification +- [ ] Task: Test cost calculations +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/cost_token_analytics_20260306/spec.md b/conductor/tracks/cost_token_analytics_20260306/spec.md index 7d7f4d4..d5a6d2c 100644 --- a/conductor/tracks/cost_token_analytics_20260306/spec.md +++ b/conductor/tracks/cost_token_analytics_20260306/spec.md @@ -1,28 +1,21 @@ -# Track Specification: Cost & Token Analytics Panel +# Track Specification: Cost & Token Analytics Panel (cost_token_analytics_20260306) ## Overview -Real-time cost tracking panel for API usage by model and tier. +Real-time cost tracking panel displaying cost per model, session totals, and breakdown by tier. Uses existing cost_tracker.py which is implemented but has no GUI. -## Current State Audit -### Already Implemented -- cost_tracker.py with MODEL_PRICING -- estimate_cost() function -- Token tracking in ai_client.py - -### Gaps to Fill -- No GUI panel for cost display -- No session totals - -## Goals -- Cost per model display -- Session totals -- Breakdown by tier +## Architectural Constraints +- **Non-Blocking**: Cost calculations MUST NOT block UI thread. +- **Efficient Updates**: Updates SHOULD be throttled to <10ms latency. ## Functional Requirements -- Real-time cost updates -- Per-model breakdown -- Tier breakdown +- **Cost Display**: Show real-time cost for current session. +- **Per-Model Breakdown**: Display cost grouped by model (Gemini, Anthropic, DeepSeek). +- **Tier Breakdown**: Show cost grouped by tier (Tier 1-4). +- **Session Totals**: Accumulate and display total session cost. -## Non-Functional Requirements -- <10ms update latency -- Clear visual formatting +## Acceptance Criteria +- [ ] Cost panel displays in GUI. +- [ ] Per-model cost shown correctly. +- [ ] Tier breakdown accurate. +- [ ] Total accumulates correctly. +- [ ] Uses existing cost_tracker.py functions. diff --git a/conductor/tracks/deep_ast_context_pruning_20260306/index.md b/conductor/tracks/deep_ast_context_pruning_20260306/index.md new file mode 100644 index 0000000..bdfb5d8 --- /dev/null +++ b/conductor/tracks/deep_ast_context_pruning_20260306/index.md @@ -0,0 +1,9 @@ +# Deep AST-Driven Context Pruning + +**Track ID:** deep_ast_context_pruning_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/deep_ast_context_pruning_20260306/metadata.json b/conductor/tracks/deep_ast_context_pruning_20260306/metadata.json new file mode 100644 index 0000000..1efc1c2 --- /dev/null +++ b/conductor/tracks/deep_ast_context_pruning_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "deep_ast_context_pruning_20260306", + "name": "Deep AST-Driven Context Pruning", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/deep_ast_context_pruning_20260306/plan.md b/conductor/tracks/deep_ast_context_pruning_20260306/plan.md index 51a5cd0..ea62567 100644 --- a/conductor/tracks/deep_ast_context_pruning_20260306/plan.md +++ b/conductor/tracks/deep_ast_context_pruning_20260306/plan.md @@ -1,16 +1,30 @@ -# Implementation Plan: Deep AST-Driven Context Pruning (RAG for Code) (deep_ast_context_pruning) +# Implementation Plan: Deep AST Context Pruning (deep_ast_context_pruning_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: AST Integration +- [ ] Task: Initialize MMA Environment +- [ ] Task: Verify tree_sitter availability + - WHERE: requirements.txt, imports + - WHAT: Ensure tree_sitter installed and importable + - HOW: pip install tree_sitter -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Skeleton Generation +- [ ] Task: Implement AST parser + - WHERE: src/file_cache.py or new module + - WHAT: Parse Python AST using tree_sitter + - HOW: tree_sitter.Language + Parser + - SAFETY: Exception handling for parse errors +- [ ] Task: Implement skeleton generator + - WHERE: src/file_cache.py + - WHAT: Extract function signatures and docstrings + - HOW: Walk AST, collect Def nodes + - SAFETY: Handle large files gracefully +- [ ] Task: Integrate with worker dispatch + - WHERE: src/multi_agent_conductor.py + - WHAT: Inject skeleton into worker prompt + - HOW: Modify context generation + - SAFETY: Verify tokens reduced -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Tests & Verification +- [ ] Task: Write AST parsing tests +- [ ] Task: Verify token reduction +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/deep_ast_context_pruning_20260306/spec.md b/conductor/tracks/deep_ast_context_pruning_20260306/spec.md index b8549bb..c598081 100644 --- a/conductor/tracks/deep_ast_context_pruning_20260306/spec.md +++ b/conductor/tracks/deep_ast_context_pruning_20260306/spec.md @@ -1,28 +1,22 @@ -# Track Specification: Deep AST-Driven Context Pruning +# Track Specification: Deep AST-Driven Context Pruning (deep_ast_context_pruning_20260306) ## Overview -Use tree_sitter to parse target file AST and inject condensed skeletons into worker prompts. +Use tree_sitter to parse target file AST and inject condensed skeletons into worker prompts. Currently workers receive full file context; this track reduces token burn by injecting only relevant function/method signatures. -## Current State Audit -### Already Implemented -- file_cache.py with skeleton generation -- outline_tool.py for code outlines -- AST-based file analysis - -### Gaps to Fill -- No automatic AST pruning based on edit target -- Skeletons not customizable by user - -## Goals -- Parse target file AST before worker dispatch -- Strip unrelated function bodies -- Inject surgical skeleton to reduce tokens +## Architectural Constraints +- **Parsing Performance**: AST parsing MUST complete in <100ms per file. +- **Caching**: Parsed AST trees SHOULD be cached to avoid re-parsing. +- **Selective Exposure**: Only target functions/classes related to the ticket's target_file should be included. ## Functional Requirements -- tree_sitter integration -- Target function/method detection -- Configurable skeleton depth +- **AST Parser**: Integrate tree_sitter to parse Python files. +- **Target Detection**: Identify which functions/methods to include based on ticket target_file. +- **Skeleton Generation**: Generate condensed skeletons with signatures and docstrings only. +- **Worker Integration**: Inject skeleton into worker prompt instead of full file content. -## Non-Functional Requirements -- <100ms parsing time per file -- >50% token reduction target +## Acceptance Criteria +- [ ] tree_sitter successfully parses Python AST. +- [ ] Skeleton includes only target function/class with signature and docstring. +- [ ] Token count reduced by >50% for typical worker prompts. +- [ ] Workers can still complete tickets with skeleton-only context. +- [ ] >80% test coverage. diff --git a/conductor/tracks/kill_abort_workers_20260306/index.md b/conductor/tracks/kill_abort_workers_20260306/index.md new file mode 100644 index 0000000..708ed25 --- /dev/null +++ b/conductor/tracks/kill_abort_workers_20260306/index.md @@ -0,0 +1,9 @@ +# Kill/Abort Running Workers + +**Track ID:** kill_abort_workers_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/kill_abort_workers_20260306/metadata.json b/conductor/tracks/kill_abort_workers_20260306/metadata.json new file mode 100644 index 0000000..c38e348 --- /dev/null +++ b/conductor/tracks/kill_abort_workers_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "kill_abort_workers_20260306", + "name": "Kill/Abort Running Workers", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/kill_abort_workers_20260306/plan.md b/conductor/tracks/kill_abort_workers_20260306/plan.md index 701422e..0760c0c 100644 --- a/conductor/tracks/kill_abort_workers_20260306/plan.md +++ b/conductor/tracks/kill_abort_workers_20260306/plan.md @@ -1,16 +1,29 @@ -# Implementation Plan: Kill/Abort Running Workers (kill_abort_workers) +# Implementation Plan: Kill/Abort Workers (kill_abort_workers_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Kill Mechanism +- [ ] Task: Initialize MMA Environment +- [ ] Task: Add thread termination + - WHERE: src/multi_agent_conductor.py + - WHAT: Kill specific worker thread + - HOW: threading.Event or similar + - SAFETY: Clean resource release -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: UI Integration +- [ ] Task: Add kill buttons + - WHERE: src/gui_2.py + - WHAT: Button per worker + - HOW: In worker panel +- [ ] Task: Add confirmation dialog + - WHERE: src/gui_2.py + - WHAT: Confirm before kill + - HOW: imgui popup -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Status Updates +- [ ] Task: Update worker status + - WHERE: src/gui_2.py + - WHAT: Reflect killed state + - HOW: Status variable + +## Phase 4: Verification +- [ ] Task: Test kill functionality +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/kill_abort_workers_20260306/spec.md b/conductor/tracks/kill_abort_workers_20260306/spec.md index 5e3307e..443b25d 100644 --- a/conductor/tracks/kill_abort_workers_20260306/spec.md +++ b/conductor/tracks/kill_abort_workers_20260306/spec.md @@ -1,27 +1,21 @@ -# Track Specification: Kill/Abort Running Workers +# Track Specification: Kill/Abort Running Workers (kill_abort_workers_20260306) ## Overview -Add ability to kill/abort running Tier 3 workers mid-execution. +Add ability to kill/abort a running Tier 3 worker mid-execution. Currently workers run to completion; add cancel button with forced termination option. -## Current State Audit -### Already Implemented -- Worker lifecycle in multi_agent_conductor.py -- Thread-based execution - -### Gaps to Fill -- No kill mechanism -- Workers run to completion - -## Goals -- Kill button per worker -- Forced termination -- Graceful abort option +## Architectural Constraints +- **Clean Termination**: Resources MUST be released properly. +- **No Zombies**: Terminated workers MUST not become zombie processes. ## Functional Requirements -- Thread termination -- Cleanup handlers -- Confirmation dialog +- **Kill Button**: Button to immediately terminate worker. +- **Graceful Abort**: Option to send abort signal and wait. +- **Confirmation**: Confirm dialog before kill. +- **Status Update**: Worker status updates to killed/failed. -## Non-Functional Requirements -- Clean resource release -- No zombie processes +## Acceptance Criteria +- [ ] Kill button visible per worker. +- [ ] Confirmation dialog appears. +- [ ] Worker terminates immediately. +- [ ] Resources cleaned up. +- [ ] Status reflects termination. diff --git a/conductor/tracks/manual_block_control_20260306/index.md b/conductor/tracks/manual_block_control_20260306/index.md new file mode 100644 index 0000000..be09199 --- /dev/null +++ b/conductor/tracks/manual_block_control_20260306/index.md @@ -0,0 +1,9 @@ +# Manual Block/Unblock Control + +**Track ID:** manual_block_control_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/manual_block_control_20260306/metadata.json b/conductor/tracks/manual_block_control_20260306/metadata.json new file mode 100644 index 0000000..8d13f56 --- /dev/null +++ b/conductor/tracks/manual_block_control_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "manual_block_control_20260306", + "name": "Manual Block/Unblock Control", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/manual_block_control_20260306/plan.md b/conductor/tracks/manual_block_control_20260306/plan.md index d8ec5ff..4dda82b 100644 --- a/conductor/tracks/manual_block_control_20260306/plan.md +++ b/conductor/tracks/manual_block_control_20260306/plan.md @@ -1,16 +1,32 @@ -# Implementation Plan: Manual Block/Unblock Control (manual_block_control) +# Implementation Plan: Manual Block/Unblock Control (manual_block_control_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Block Mechanism +- [ ] Task: Initialize MMA Environment +- [ ] Task: Add manual block field + - WHERE: src/models.py + - WHAT: Add manual_block_reason to Ticket + - HOW: Optional[str] +- [ ] Task: Add block/unblock methods + - WHERE: src/models.py + - WHAT: mark_blocked, mark_unblocked + - HOW: Set/unset flag -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: UI Controls +- [ ] Task: Add block button + - WHERE: src/gui_2.py + - WHAT: Block selected ticket + - HOW: Button with input +- [ ] Task: Add unblock button + - WHERE: src/gui_2.py + - WHAT: Remove block + - HOW: Button -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Visualization +- [ ] Task: Show block status + - WHERE: src/gui_2.py + - WHAT: Visual indicator for blocked + - HOW: Different color/icon + +## Phase 4: Verification +- [ ] Test block/unblock +- [ ] Conductor - Phase Verification diff --git a/conductor/tracks/manual_block_control_20260306/spec.md b/conductor/tracks/manual_block_control_20260306/spec.md index d53ea00..4facf9b 100644 --- a/conductor/tracks/manual_block_control_20260306/spec.md +++ b/conductor/tracks/manual_block_control_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: Manual Block/Unblock Control +# Track Specification: Manual Block/Unblock Control (manual_block_control_20260306) ## Overview -Manually block/unblock tickets with custom reasons. +Allow user to manually block or unblock tickets with custom reasons. Currently blocked tickets rely on dependency resolution; add manual override. -## Current State Audit -### Already Implemented -- Ticket blocked status -- Dependency-based blocking - -### Gaps to Fill -- No manual override -- No custom reasons - -## Goals -- Manual block with reason -- Unblock button -- Block reason display +## Architectural Constraints +- **Clear Indication**: Manual blocks MUST be visually distinct. +- **Audit Trail**: Block reason MUST be logged. ## Functional Requirements -- Block/unblock actions -- Reason field -- Visual blocked indicator +- **Block Button**: Manually block selected ticket. +- **Unblock Button**: Remove manual block. +- **Reason Field**: Enter custom block reason. +- **Visual Indicator**: Blocked tickets clearly marked. -## Non-Functional Requirements -- Clear block indication +## Acceptance Criteria +- [ ] Block button works. +- [ ] Unblock button works. +- [ ] Reason field saves. +- [ ] Visual indicator shows blocked status. +- [ ] Reason displayed in UI. diff --git a/conductor/tracks/manual_skeleton_injection_20260306/index.md b/conductor/tracks/manual_skeleton_injection_20260306/index.md new file mode 100644 index 0000000..7ebdb48 --- /dev/null +++ b/conductor/tracks/manual_skeleton_injection_20260306/index.md @@ -0,0 +1,9 @@ +# Manual Skeleton Context Injection + +**Track ID:** manual_skeleton_injection_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/manual_skeleton_injection_20260306/metadata.json b/conductor/tracks/manual_skeleton_injection_20260306/metadata.json new file mode 100644 index 0000000..ae07479 --- /dev/null +++ b/conductor/tracks/manual_skeleton_injection_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "manual_skeleton_injection_20260306", + "name": "Manual Skeleton Context Injection", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/manual_skeleton_injection_20260306/plan.md b/conductor/tracks/manual_skeleton_injection_20260306/plan.md index 06fba7b..a90c8a2 100644 --- a/conductor/tracks/manual_skeleton_injection_20260306/plan.md +++ b/conductor/tracks/manual_skeleton_injection_20260306/plan.md @@ -1,16 +1,30 @@ -# Implementation Plan: Manual Skeleton Context Injection (manual_skeleton_injection) +# Implementation Plan: Manual Skeleton Context Injection (manual_skeleton_injection_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: File Selection UI +- [ ] Task: Initialize MMA Environment +- [ ] Task: Implement file picker + - WHERE: src/gui_2.py + - WHAT: Browse files for skeleton + - HOW: imgui.file_picker or custom + - SAFETY: Path validation -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Skeleton Preview +- [ ] Task: Generate preview + - WHERE: src/gui_2.py + - WHAT: Show skeleton before inject + - HOW: Call skeleton generation + - SAFETY: Handle large files +- [ ] Task: Implement inject button + - WHERE: src/gui_2.py + - WHAT: Inject into discussion + - HOW: Append to context -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Full Read Option +- [ ] Task: Add full read toggle + - WHERE: src/gui_2.py + - WHAT: Option for full file + - HOW: Checkbox/switch + +## Phase 4: Verification +- [ ] Task: Test injection flow +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/manual_skeleton_injection_20260306/spec.md b/conductor/tracks/manual_skeleton_injection_20260306/spec.md index 21e9685..c2f3595 100644 --- a/conductor/tracks/manual_skeleton_injection_20260306/spec.md +++ b/conductor/tracks/manual_skeleton_injection_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: Manual Skeleton Context Injection +# Track Specification: Manual Skeleton Context Injection (manual_skeleton_injection_20260306) ## Overview -UI controls to manually flag files for skeleton injection. +Add UI controls to manually flag files for skeleton injection in discussions. Allow agent to request full file reads or specific def/class definitions on-demand. -## Current State Audit -### Already Implemented -- Auto-generated skeletons for workers -- file_cache skeleton generation - -### Gaps to Fill -- No manual file selection -- No def-level control - -## Goals -- File picker for skeleton injection -- Manual skeleton refresh -- Def-level granularity +## Architectural Constraints +- **Fast Generation**: Skeletons MUST generate in <500ms. +- **Non-Blocking**: Generation MUST NOT block UI. ## Functional Requirements -- File browser integration -- Skeleton regeneration trigger -- Context preview +- **File Picker**: Browse and select files for skeleton injection. +- **Skeleton Preview**: Show generated skeleton before injection. +- **Manual Trigger**: Button to manually refresh skeleton. +- **Full Read Option**: Option to inject full file content instead. -## Non-Functional Requirements -- Fast skeleton generation +## Acceptance Criteria +- [ ] File picker UI functional. +- [ ] Skeleton preview displays. +- [ ] Manual refresh button works. +- [ ] Full read option available. +- [ ] Uses existing skeleton generation. diff --git a/conductor/tracks/mma_multiworker_viz_20260306/index.md b/conductor/tracks/mma_multiworker_viz_20260306/index.md new file mode 100644 index 0000000..d2e8dc6 --- /dev/null +++ b/conductor/tracks/mma_multiworker_viz_20260306/index.md @@ -0,0 +1,9 @@ +# MMA Multi-Worker Visualization + +**Track ID:** mma_multiworker_viz_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/mma_multiworker_viz_20260306/metadata.json b/conductor/tracks/mma_multiworker_viz_20260306/metadata.json new file mode 100644 index 0000000..b3e0b53 --- /dev/null +++ b/conductor/tracks/mma_multiworker_viz_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "mma_multiworker_viz_20260306", + "name": "MMA Multi-Worker Visualization", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/mma_multiworker_viz_20260306/plan.md b/conductor/tracks/mma_multiworker_viz_20260306/plan.md index 6ff4249..1a1ee13 100644 --- a/conductor/tracks/mma_multiworker_viz_20260306/plan.md +++ b/conductor/tracks/mma_multiworker_viz_20260306/plan.md @@ -1,16 +1,31 @@ -# Implementation Plan: MMA Multi-Worker Visualization (mma_multiworker_viz) +# Implementation Plan: MMA Multi-Worker Visualization (mma_multiworker_viz_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Layout Design +- [ ] Task: Initialize MMA Environment +- [ ] Task: Design multi-pane layout + - WHERE: src/gui_2.py + - WHAT: Split view for workers + - HOW: imgui.columns or child windows + - SAFETY: Handle 0 workers -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Worker Tracking +- [ ] Task: Track worker status + - WHERE: src/multi_agent_conductor.py + - WHAT: Per-worker status + - HOW: Dictionary of worker states + - SAFETY: Thread-safe updates -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Controls +- [ ] Task: Add kill buttons + - WHERE: src/gui_2.py + - WHAT: Button per worker to kill + - HOW: Signal worker thread + - SAFETY: Graceful termination +- [ ] Task: Add restart buttons + - WHERE: src/gui_2.py + - WHAT: Respawn killed worker + - HOW: Re-submit ticket + +## Phase 4: Verification +- [ ] Task: Test multi-worker display +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/mma_multiworker_viz_20260306/spec.md b/conductor/tracks/mma_multiworker_viz_20260306/spec.md index 57b1f63..2965cd9 100644 --- a/conductor/tracks/mma_multiworker_viz_20260306/spec.md +++ b/conductor/tracks/mma_multiworker_viz_20260306/spec.md @@ -1,28 +1,21 @@ -# Track Specification: MMA Multi-Worker Visualization +# Track Specification: MMA Multi-Worker Visualization (mma_multiworker_viz_20260306) ## Overview -Split-view GUI for parallel worker streams per tier. +Split-view GUI for parallel worker streams per tier. Visualize multiple concurrent workers with individual status, output tabs, and resource usage. Enable kill/restart per worker. -## Current State Audit -### Already Implemented -- mma_streams in app_controller.py -- Tier source tagging - -### Gaps to Fill -- Single stream display only -- No per-worker status -- No kill/restart controls - -## Goals -- Split view per worker -- Individual status/output tabs -- Kill/restart per worker +## Architectural Constraints +- **Stream Performance**: Multiple concurrent streams MUST NOT degrade UI performance. +- **Memory Efficiency**: Old stream data MUST be pruned to prevent memory bloat. ## Functional Requirements -- Multi-pane layout -- Worker lifecycle controls -- Output streaming per worker +- **Multi-Pane Layout**: Split view showing all active workers. +- **Per-Worker Status**: Display running/complete/blocked/failed per worker. +- **Output Tabs**: Each worker has scrollable output tab. +- **Kill/Restart**: Buttons to kill or restart individual workers. -## Non-Functional Requirements -- Handle 4+ concurrent workers -- Graceful termination +## Acceptance Criteria +- [ ] 4+ concurrent workers displayed simultaneously. +- [ ] Each worker shows individual status. +- [ ] Output streams scroll independently. +- [ ] Kill button terminates specific worker. +- [ ] Restart button re-spawns worker. diff --git a/conductor/tracks/native_orchestrator_20260306/index.md b/conductor/tracks/native_orchestrator_20260306/index.md new file mode 100644 index 0000000..8118d77 --- /dev/null +++ b/conductor/tracks/native_orchestrator_20260306/index.md @@ -0,0 +1,9 @@ +# Native Orchestrator + +**Track ID:** native_orchestrator_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/native_orchestrator_20260306/metadata.json b/conductor/tracks/native_orchestrator_20260306/metadata.json new file mode 100644 index 0000000..57ed551 --- /dev/null +++ b/conductor/tracks/native_orchestrator_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "native_orchestrator_20260306", + "name": "Native Orchestrator", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/native_orchestrator_20260306/plan.md b/conductor/tracks/native_orchestrator_20260306/plan.md index 4e50716..682e28e 100644 --- a/conductor/tracks/native_orchestrator_20260306/plan.md +++ b/conductor/tracks/native_orchestrator_20260306/plan.md @@ -1,16 +1,27 @@ -# Implementation Plan: Transitioning to Native Orchestrator (native_orchestrator) +# Implementation Plan: Native Orchestrator (native_orchestrator_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Plan File Operations +- [ ] Task: Initialize MMA Environment +- [ ] Task: Implement plan.md read/write + - WHERE: src/orchestrator_pm.py or new module + - WHAT: Parse and write plan.md + - HOW: toml/tomllib for parsing + - SAFETY: Preserve formatting -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Metadata Management +- [ ] Task: Implement metadata.json operations + - WHERE: src/orchestrator_pm.py + - WHAT: Read/write track metadata + - HOW: json load/dump + - SAFETY: Atomic writes -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Tier Delegation +- [ ] Task: Implement in-process delegation + - WHERE: src/multi_agent_conductor.py + - WHAT: Replace subprocess calls with direct function calls + - HOW: Import and call tier functions directly + - SAFETY: Proper error propagation + +## Phase 4: Verification +- [ ] Task: Test plan operations +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/native_orchestrator_20260306/spec.md b/conductor/tracks/native_orchestrator_20260306/spec.md index 3049564..fb3f247 100644 --- a/conductor/tracks/native_orchestrator_20260306/spec.md +++ b/conductor/tracks/native_orchestrator_20260306/spec.md @@ -1,27 +1,21 @@ -# Track Specification: Native Orchestrator +# Track Specification: Native Orchestrator (native_orchestrator_20260306) ## Overview -Absorb mma_exec.py into core app for pure Python MMA orchestration. +Absorb mma_exec.py into core application. Manual Slop natively reads/writes plan.md, manages metadata.json, and orchestrates MMA tiers in pure Python without external CLI. -## Current State Audit -### Already Implemented -- mma_exec.py for tier delegation -- ConductorEngine in multi_agent_conductor.py - -### Gaps to Fill -- External CLI dependency -- No native plan.md management - -## Goals -- Read/write plan.md natively -- Manage metadata.json in Python -- Remove mma_exec.py dependency +## Architectural Constraints +- **Backward Compatibility**: Existing track files MUST remain compatible. +- **No Breaking Changes**: API and CLI interfaces MUST remain functional. ## Functional Requirements -- Plan file CRUD operations -- Metadata management -- Tier delegation in-process +- **Plan CRUD**: Native read/write of plan.md files. +- **Metadata Management**: Native management of metadata.json. +- **Tier Delegation**: In-process Tier 1-4 delegation without subprocess. +- **CLI Fallback**: Optional mma_exec.py wrapper for backward compatibility. -## Non-Functional Requirements -- Backward compatible with existing tracks -- No breaking changes to API +## Acceptance Criteria +- [ ] plan.md read/write works natively. +- [ ] metadata.json managed in Python. +- [ ] Tier delegation executes in-process. +- [ ] No external CLI required for orchestration. +- [ ] Existing tracks remain loadable. diff --git a/conductor/tracks/on_demand_def_lookup_20260306/index.md b/conductor/tracks/on_demand_def_lookup_20260306/index.md new file mode 100644 index 0000000..6c3cb5c --- /dev/null +++ b/conductor/tracks/on_demand_def_lookup_20260306/index.md @@ -0,0 +1,9 @@ +# On-Demand Definition Lookup + +**Track ID:** on_demand_def_lookup_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/on_demand_def_lookup_20260306/metadata.json b/conductor/tracks/on_demand_def_lookup_20260306/metadata.json new file mode 100644 index 0000000..1d53a8b --- /dev/null +++ b/conductor/tracks/on_demand_def_lookup_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "on_demand_def_lookup_20260306", + "name": "On-Demand Definition Lookup", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/on_demand_def_lookup_20260306/plan.md b/conductor/tracks/on_demand_def_lookup_20260306/plan.md index dee893e..7ea3fb1 100644 --- a/conductor/tracks/on_demand_def_lookup_20260306/plan.md +++ b/conductor/tracks/on_demand_def_lookup_20260306/plan.md @@ -1,16 +1,30 @@ -# Implementation Plan: On-Demand Definition Lookup (on_demand_def_lookup) +# Implementation Plan: On-Demand Definition Lookup (on_demand_def_lookup_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Symbol Parsing +- [ ] Task: Initialize MMA Environment +- [ ] Task: Implement @syntax parsing + - WHERE: src/gui_2.py + - WHAT: Detect @symbol in input + - HOW: Regex or string match + - SAFETY: Handle edge cases -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Definition Retrieval +- [ ] Task: Integrate py_get_definition + - WHERE: src/gui_2.py + - WHAT: Get definition from outline_tool + - HOW: Call existing function + - SAFETY: Handle not found -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Inline Display +- [ ] Task: Render inline + - WHERE: src/gui_2.py + - WHAT: Show definition in discussion + - HOW: imgui.text with formatting +- [ ] Task: Implement navigation + - WHERE: src/gui_2.py + - WHAT: Click to jump to source + - HOW: Store file/line refs + +## Phase 4: Verification +- [ ] Task: Test lookup flow +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/on_demand_def_lookup_20260306/spec.md b/conductor/tracks/on_demand_def_lookup_20260306/spec.md index ce342c9..6d9335d 100644 --- a/conductor/tracks/on_demand_def_lookup_20260306/spec.md +++ b/conductor/tracks/on_demand_def_lookup_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: On-Demand Definition Lookup +# Track Specification: On-Demand Definition Lookup (on_demand_def_lookup_20260306) ## Overview -Agent can request specific class/function definitions during discussion. +Add ability for agent to request specific class/function definitions during discussion. User @mentions symbol for inline definition, or AI auto-fetches on unknown symbols. -## Current State Audit -### Already Implemented -- outline_tool.py for definitions -- py_get_definition tool - -### Gaps to Fill -- No @mention syntax -- No inline display - -## Goals -- @symbol lookup syntax -- Inline definition display -- Auto-fetch on unknown symbols +## Architectural Constraints +- **Fast Lookup**: Definition lookup MUST complete in <100ms. +- **Accurate Parsing**: Symbol parsing MUST handle edge cases. ## Functional Requirements -- Symbol parsing -- Definition retrieval -- Inline rendering +- **@Syntax**: Parse @symbol to trigger lookup. +- **Inline Display**: Show definition inline in discussion. +- **Auto-Fetch**: Option for AI to auto-fetch on unknown symbols. +- **Navigation**: Click definition to jump to source. -## Non-Functional Requirements -- Quick lookup (<100ms) +## Acceptance Criteria +- [ ] @symbol triggers lookup. +- [ ] Definition displays inline. +- [ ] Auto-fetch option works. +- [ ] Click navigation functional. +- [ ] Uses existing py_get_definition. diff --git a/conductor/tracks/per_ticket_model_20260306/index.md b/conductor/tracks/per_ticket_model_20260306/index.md new file mode 100644 index 0000000..1ae8557 --- /dev/null +++ b/conductor/tracks/per_ticket_model_20260306/index.md @@ -0,0 +1,9 @@ +# Per-Ticket Model Override + +**Track ID:** per_ticket_model_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/per_ticket_model_20260306/metadata.json b/conductor/tracks/per_ticket_model_20260306/metadata.json new file mode 100644 index 0000000..76dea9a --- /dev/null +++ b/conductor/tracks/per_ticket_model_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "per_ticket_model_20260306", + "name": "Per-Ticket Model Override", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/per_ticket_model_20260306/plan.md b/conductor/tracks/per_ticket_model_20260306/plan.md index 39b47b8..6c38d49 100644 --- a/conductor/tracks/per_ticket_model_20260306/plan.md +++ b/conductor/tracks/per_ticket_model_20260306/plan.md @@ -1,16 +1,32 @@ -# Implementation Plan: Per-Ticket Model Override (per_ticket_model) +# Implementation Plan: Per-Ticket Model Override (per_ticket_model_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Model Field +- [ ] Task: Initialize MMA Environment +- [ ] Task: Add override field + - WHERE: src/models.py + - WHAT: model_override on Ticket + - HOW: Optional[str] +- [ ] Task: Update ticket creation + - WHERE: src/conductor_tech_lead.py + - WHAT: Pass override to ticket + - HOW: Include in ticket dict -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: UI Controls +- [ ] Task: Add model dropdown + - WHERE: src/gui_2.py + - WHAT: Select model per ticket + - HOW: imgui.combo with model list +- [ ] Task: Add override indicator + - WHERE: src/gui_2.py + - WHAT: Show override is active + - HOW: Different style -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Execution Integration +- [ ] Task: Use override at runtime + - WHERE: src/multi_agent_conductor.py + - WHAT: Use ticket.model_override if set + - HOW: Check and apply + +## Phase 4: Verification +- [ ] Test override works +- [ ] Conductor - Phase Verification diff --git a/conductor/tracks/per_ticket_model_20260306/spec.md b/conductor/tracks/per_ticket_model_20260306/spec.md index 403b0c7..0c243da 100644 --- a/conductor/tracks/per_ticket_model_20260306/spec.md +++ b/conductor/tracks/per_ticket_model_20260306/spec.md @@ -1,27 +1,21 @@ -# Track Specification: Per-Ticket Model Override +# Track Specification: Per-Ticket Model Override (per_ticket_model_20260306) ## Overview -Allow manual model selection per ticket. +Allow user to manually select which model to use for a specific ticket, overriding the default tier model. Useful for forcing smarter model on hard tickets. -## Current State Audit -### Already Implemented -- Model selection per tier -- Ticket model field - -### Gaps to Fill -- No per-ticket override UI -- No model picker - -## Goals -- Model dropdown per ticket -- Override default tier model -- Clear override indication +## Architectural Constraints +- **Validation**: Selected model MUST be valid and available. +- **Clear Override**: Override MUST be visually distinct. ## Functional Requirements -- Model picker UI -- Override flag -- Model validation +- **Model Dropdown**: Select model per ticket. +- **Override Flag**: Mark ticket as using override. +- **Clear Indicator**: Visual show override is active. +- **Reset Option**: Remove override and revert to tier default. -## Non-Functional Requirements -- Valid model list -- Clear indication of override +## Acceptance Criteria +- [ ] Model dropdown works. +- [ ] Override saves correctly. +- [ ] Visual indicator shows override. +- [ ] Reset returns to default. +- [ ] Override used during execution. diff --git a/conductor/tracks/performance_dashboard_20260306/index.md b/conductor/tracks/performance_dashboard_20260306/index.md new file mode 100644 index 0000000..4aeb428 --- /dev/null +++ b/conductor/tracks/performance_dashboard_20260306/index.md @@ -0,0 +1,9 @@ +# Performance Dashboard + +**Track ID:** performance_dashboard_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/performance_dashboard_20260306/metadata.json b/conductor/tracks/performance_dashboard_20260306/metadata.json new file mode 100644 index 0000000..81827cf --- /dev/null +++ b/conductor/tracks/performance_dashboard_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "performance_dashboard_20260306", + "name": "Performance Dashboard", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/performance_dashboard_20260306/plan.md b/conductor/tracks/performance_dashboard_20260306/plan.md index 90cc3ad..2c74fe3 100644 --- a/conductor/tracks/performance_dashboard_20260306/plan.md +++ b/conductor/tracks/performance_dashboard_20260306/plan.md @@ -1,16 +1,26 @@ -# Implementation Plan: Performance Dashboard (performance_dashboard) +# Implementation Plan: Performance Dashboard (performance_dashboard_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Metrics Collection +- [ ] Task: Initialize MMA Environment +- [ ] Task: Verify performance_monitor + - WHERE: src/performance_monitor.py + - WHAT: Check existing metrics + - HOW: Review get_metrics() output -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Historical Data +- [ ] Task: Implement metrics history + - WHERE: src/performance_monitor.py + - WHAT: Rolling window of metrics + - HOW: deque with maxlen + - SAFETY: Memory bounded -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Visualization +- [ ] Task: Render graphs + - WHERE: src/gui_2.py + - WHAT: Line graphs for CPU/RAM/frame time + - HOW: imgui.plot_lines or custom + - SAFETY: 60fps during rendering + +## Phase 4: Verification +- [ ] Task: Test graph rendering +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/performance_dashboard_20260306/spec.md b/conductor/tracks/performance_dashboard_20260306/spec.md index 2de5ba5..a1aac0a 100644 --- a/conductor/tracks/performance_dashboard_20260306/spec.md +++ b/conductor/tracks/performance_dashboard_20260306/spec.md @@ -1,29 +1,21 @@ -# Track Specification: Performance Dashboard +# Track Specification: Performance Dashboard (performance_dashboard_20260306) ## Overview -Expand performance metrics with CPU/RAM, frame time, input lag graphs. +Expand performance metrics panel with CPU/RAM usage, frame time, input lag with historical graphs. Uses existing performance_monitor.py which has basic metrics but no visualization. -## Current State Audit -### Already Implemented -- performance_monitor.py -- get_metrics() method -- Basic FPS display - -### Gaps to Fill -- No historical graphs -- No input lag tracking -- No CPU/RAM visualization - -## Goals -- Historical performance graphs -- CPU/RAM usage display -- Input lag metrics +## Architectural Constraints +- **60fps Constraint**: Metrics collection MUST NOT impact frame rate. +- **Thread Safety**: Cross-thread metrics MUST use proper synchronization. ## Functional Requirements -- Rolling metrics history -- Graph rendering -- Alert thresholds +- **CPU/RAM Graphs**: Display rolling CPU and RAM usage over time. +- **Frame Time**: Show frame time histogram. +- **Input Lag**: Track and display input-to-response latency. +- **Historical Data**: Maintain rolling window of metrics history. -## Non-Functional Requirements -- 60fps UI during metrics collection -- Configurable history length +## Acceptance Criteria +- [ ] CPU graph shows rolling history. +- [ ] RAM graph shows rolling history. +- [ ] Frame time histogram displays. +- [ ] Input lag metrics tracked. +- [ ] Uses existing performance_monitor.py. diff --git a/conductor/tracks/pipeline_pause_resume_20260306/index.md b/conductor/tracks/pipeline_pause_resume_20260306/index.md new file mode 100644 index 0000000..5ca17ba --- /dev/null +++ b/conductor/tracks/pipeline_pause_resume_20260306/index.md @@ -0,0 +1,9 @@ +# Pipeline Pause/Resume + +**Track ID:** pipeline_pause_resume_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/pipeline_pause_resume_20260306/metadata.json b/conductor/tracks/pipeline_pause_resume_20260306/metadata.json new file mode 100644 index 0000000..eb92165 --- /dev/null +++ b/conductor/tracks/pipeline_pause_resume_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "pipeline_pause_resume_20260306", + "name": "Pipeline Pause/Resume", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/pipeline_pause_resume_20260306/plan.md b/conductor/tracks/pipeline_pause_resume_20260306/plan.md index ea2d88b..e1cf264 100644 --- a/conductor/tracks/pipeline_pause_resume_20260306/plan.md +++ b/conductor/tracks/pipeline_pause_resume_20260306/plan.md @@ -1,16 +1,32 @@ -# Implementation Plan: Pipeline Pause/Resume (pipeline_pause_resume) +# Implementation Plan: Pipeline Pause/Resume (pipeline_pause_resume_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Pause Mechanism +- [ ] Task: Initialize MMA Environment +- [ ] Task: Add pause state + - WHERE: src/multi_agent_conductor.py + - WHAT: Global pause flag + - HOW: threading.Event +- [ ] Task: Implement pause + - WHERE: src/multi_agent_conductor.py + - WHAT: Stop worker spawning + - HOW: Check pause flag -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Resume Mechanism +- [ ] Task: Implement resume + - WHERE: src/multi_agent_conductor.py + - WHAT: Continue from pause + - HOW: Clear flag, restart workers -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: UI +- [ ] Task: Add pause button + - WHERE: src/gui_2.py + - WHAT: Toggle pause state + - HOW: imgui.button +- [ ] Task: Add visual indicator + - WHERE: src/gui_2.py + - WHAT: Show paused status + - HOW: Banner or icon + +## Phase 4: Verification +- [ ] Test pause/resume +- [ ] Conductor - Phase Verification diff --git a/conductor/tracks/pipeline_pause_resume_20260306/spec.md b/conductor/tracks/pipeline_pause_resume_20260306/spec.md index 4cf09d3..3e4818b 100644 --- a/conductor/tracks/pipeline_pause_resume_20260306/spec.md +++ b/conductor/tracks/pipeline_pause_resume_20260306/spec.md @@ -1,27 +1,21 @@ -# Track Specification: Pipeline Pause/Resume +# Track Specification: Pipeline Pause/Resume (pipeline_pause_resume_20260306) ## Overview -Global pause/resume for entire DAG execution pipeline. +Add global pause/resume for entire DAG execution pipeline. Allow user to freeze all worker activity and resume later. -## Current State Audit -### Already Implemented -- DAG engine execution -- auto_queue mode - -### Gaps to Fill -- No pause mechanism -- No resume capability - -## Goals -- Global pause button -- Resume button -- Frozen state visualization +## Architectural Constraints +- **State Preservation**: Worker state MUST be preserved across pause. +- **Atomic Operation**: Pause/Resume MUST be atomic. ## Functional Requirements -- Pause all workers -- Resume from paused state -- State persistence +- **Pause Button**: Freeze all worker activity. +- **Resume Button**: Continue from paused state. +- **Visual Indicator**: Show pipeline is paused. +- **State Display**: Show which workers are paused. -## Non-Functional Requirements -- Worker state preservation -- Clean resume +## Acceptance Criteria +- [ ] Pause button freezes pipeline. +- [ ] Resume button continues execution. +- [ ] Visual indicator shows paused state. +- [ ] Worker states preserved. +- [ ] No data loss on resume. diff --git a/conductor/tracks/session_insights_20260306/index.md b/conductor/tracks/session_insights_20260306/index.md new file mode 100644 index 0000000..ec81726 --- /dev/null +++ b/conductor/tracks/session_insights_20260306/index.md @@ -0,0 +1,9 @@ +# Session Insights & Efficiency Scores + +**Track ID:** session_insights_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/session_insights_20260306/metadata.json b/conductor/tracks/session_insights_20260306/metadata.json new file mode 100644 index 0000000..851c034 --- /dev/null +++ b/conductor/tracks/session_insights_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "session_insights_20260306", + "name": "Session Insights & Efficiency Scores", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/session_insights_20260306/plan.md b/conductor/tracks/session_insights_20260306/plan.md index e67a5e2..e666a10 100644 --- a/conductor/tracks/session_insights_20260306/plan.md +++ b/conductor/tracks/session_insights_20260306/plan.md @@ -1,16 +1,28 @@ -# Implementation Plan: Session Insights & Efficiency Scores (session_insights) +# Implementation Plan: Session Insights (session_insights_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Session Data +- [ ] Task: Initialize MMA Environment +- [ ] Task: Review session_logger + - WHERE: src/session_logger.py + - WHAT: Check existing data -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Metrics Calculation +- [ ] Task: Implement token timeline + - WHERE: src/gui_2.py + - WHAT: Token usage over time + - HOW: Graph from history +- [ ] Task: Implement cost projection + - WHERE: src/gui_2.py + - WHAT: Estimate remaining budget + - HOW: Linear extrapolation -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: UI +- [ ] Task: Render insights panel + - WHERE: src/gui_2.py + - WHAT: Timeline, projection, summary + - HOW: imgui widgets + - SAFETY: Handle zero session + +## Phase 4: Verification +- [ ] Task: Test insights +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/session_insights_20260306/spec.md b/conductor/tracks/session_insights_20260306/spec.md index 869da8e..5e92dcb 100644 --- a/conductor/tracks/session_insights_20260306/spec.md +++ b/conductor/tracks/session_insights_20260306/spec.md @@ -1,27 +1,21 @@ -# Track Specification: Session Insights & Efficiency Scores +# Track Specification: Session Insights & Efficiency Scores (session_insights_20260306) ## Overview -Token usage over time, cost projections, efficiency metrics. +Token usage over time, cost projections, session summary with efficiency scores. Visualize session_logger data. -## Current State Audit -### Already Implemented -- session_logger.py -- Token counting - -### Gaps to Fill -- No visualization -- No efficiency scoring - -## Goals -- Token usage graphs -- Cost projections -- Efficiency scores +## Architectural Constraints +- **Efficient Calculation**: Metrics MUST be calculated incrementally. +- **Real-Time**: Updates SHOULD reflect current session state. ## Functional Requirements -- Rolling token history -- Cost calculation -- Efficiency algorithm +- **Token Timeline**: Graph of token usage over session. +- **Cost Projection**: Estimate remaining budget based on usage. +- **Efficiency Score**: Calculate tokens-per-useful-change ratio. +- **Session Summary**: Text summary of session metrics. -## Non-Functional Requirements -- Session comparison -- Export capability +## Acceptance Criteria +- [ ] Token timeline renders. +- [ ] Cost projection accurate. +- [ ] Efficiency score calculated. +- [ ] Summary displays key metrics. +- [ ] Uses existing session_logger. diff --git a/conductor/tracks/ticket_queue_mgmt_20260306/index.md b/conductor/tracks/ticket_queue_mgmt_20260306/index.md new file mode 100644 index 0000000..0ccc04f --- /dev/null +++ b/conductor/tracks/ticket_queue_mgmt_20260306/index.md @@ -0,0 +1,9 @@ +# Manual Ticket Queue Management + +**Track ID:** ticket_queue_mgmt_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/ticket_queue_mgmt_20260306/metadata.json b/conductor/tracks/ticket_queue_mgmt_20260306/metadata.json new file mode 100644 index 0000000..ba9091d --- /dev/null +++ b/conductor/tracks/ticket_queue_mgmt_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "ticket_queue_mgmt_20260306", + "name": "Manual Ticket Queue Management", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/ticket_queue_mgmt_20260306/plan.md b/conductor/tracks/ticket_queue_mgmt_20260306/plan.md index dd1c3b3..908ffe4 100644 --- a/conductor/tracks/ticket_queue_mgmt_20260306/plan.md +++ b/conductor/tracks/ticket_queue_mgmt_20260306/plan.md @@ -1,16 +1,33 @@ -# Implementation Plan: Manual Ticket Queue Management (ticket_queue_mgmt) +# Implementation Plan: Manual Ticket Queue Management (ticket_queue_mgmt_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: UI Framework +- [ ] Task: Initialize MMA Environment +- [ ] Task: Add drag-drop support + - WHERE: src/gui_2.py + - WHAT: Enable ticket reordering via drag + - HOW: imgui drag-drop or custom handling + - SAFETY: Validate after drop -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Priority System +- [ ] Task: Add priority field + - WHERE: src/models.py + - WHAT: Add priority to Ticket + - HOW: Enum (high/med/low) +- [ ] Task: Add priority UI + - WHERE: src/gui_2.py + - WHAT: Dropdown or buttons + - HOW: imgui.combo -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Bulk Operations +- [ ] Task: Implement multi-select + - WHERE: src/gui_2.py + - WHAT: Checkbox per ticket + - HOW: imgui.checkbox +- [ ] Task: Implement bulk actions + - WHERE: src/gui_2.py + - WHAT: Execute/skip/block buttons + - HOW: Apply to selected + +## Phase 4: Verification +- [ ] Task: Test operations +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/ticket_queue_mgmt_20260306/spec.md b/conductor/tracks/ticket_queue_mgmt_20260306/spec.md index 8a27acc..8349da2 100644 --- a/conductor/tracks/ticket_queue_mgmt_20260306/spec.md +++ b/conductor/tracks/ticket_queue_mgmt_20260306/spec.md @@ -1,28 +1,21 @@ -# Track Specification: Manual Ticket Queue Management +# Track Specification: Manual Ticket Queue Management (ticket_queue_mgmt_20260306) ## Overview -Reorder, prioritize, and requeue tickets with drag-drop UI. +Allow user to manually reorder, prioritize, or requeue tickets in the DAG. Add drag-drop reordering, priority tags, and bulk selection for execute/skip/block. -## Current State Audit -### Already Implemented -- Ticket system in models.py -- DAG dependency resolution - -### Gaps to Fill -- No drag-drop reordering -- No priority tags -- No bulk operations - -## Goals -- Drag-drop ticket reordering -- Priority tags (high/med/low) -- Bulk select and execute/skip/block +## Architectural Constraints +- **DAG Validity**: Reordering MUST maintain valid dependencies. +- **Atomic Operations**: Bulk operations MUST be atomic. ## Functional Requirements -- Drag-drop handlers -- Priority field on tickets -- Bulk action buttons +- **Drag-Drop**: Reorder tickets via drag-drop. +- **Priority Tags**: Set priority (high/med/low) on tickets. +- **Bulk Select**: Multi-select tickets. +- **Bulk Actions**: Execute/skip/block selected tickets. -## Non-Functional Requirements -- Maintain DAG validity -- Undo capability +## Acceptance Criteria +- [ ] Drag-drop reordering works. +- [ ] Priority tags display and save. +- [ ] Multi-select functional. +- [ ] Bulk actions apply correctly. +- [ ] DAG validity maintained. diff --git a/conductor/tracks/tier4_auto_patching_20260306/index.md b/conductor/tracks/tier4_auto_patching_20260306/index.md new file mode 100644 index 0000000..f7f274d --- /dev/null +++ b/conductor/tracks/tier4_auto_patching_20260306/index.md @@ -0,0 +1,9 @@ +# Advanced Tier 4 QA Auto-Patching + +**Track ID:** tier4_auto_patching_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/tier4_auto_patching_20260306/metadata.json b/conductor/tracks/tier4_auto_patching_20260306/metadata.json new file mode 100644 index 0000000..b371f84 --- /dev/null +++ b/conductor/tracks/tier4_auto_patching_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "tier4_auto_patching_20260306", + "name": "Advanced Tier 4 QA Auto-Patching", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/tier4_auto_patching_20260306/plan.md b/conductor/tracks/tier4_auto_patching_20260306/plan.md index ea58ab1..6d720c5 100644 --- a/conductor/tracks/tier4_auto_patching_20260306/plan.md +++ b/conductor/tracks/tier4_auto_patching_20260306/plan.md @@ -1,16 +1,25 @@ -# Implementation Plan: Advanced Tier 4 QA Auto-Patching (tier4_auto_patching) +# Implementation Plan: Tier 4 Auto-Patching (tier4_auto_patching_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Patch Generation +- [ ] Task: Initialize MMA Environment +- [ ] Task: Extend Tier 4 to generate patches + - WHERE: src/multi_agent_conductor.py + - WHAT: Add patch generation on test failure + - HOW: Use difflib to generate unified diff + - SAFETY: Only generate, don't apply -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Diff Viewer +- [ ] Task: Implement GUI diff viewer + - WHERE: src/gui_2.py + - WHAT: Side-by-side diff display + - HOW: Custom ImGui rendering or third-party + - SAFETY: Read-only preview +- [ ] Task: Implement apply button + - WHERE: src/gui_2.py + - WHAT: Apply patch to working directory + - HOW: subprocess.run(['patch', '-p1']) + - SAFETY: Backup before apply -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Tests & Verification +- [ ] Task: Write patch tests +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/tier4_auto_patching_20260306/spec.md b/conductor/tracks/tier4_auto_patching_20260306/spec.md index a1697a8..8ed7c3e 100644 --- a/conductor/tracks/tier4_auto_patching_20260306/spec.md +++ b/conductor/tracks/tier4_auto_patching_20260306/spec.md @@ -1,27 +1,22 @@ -# Track Specification: Advanced Tier 4 QA Auto-Patching +# Track Specification: Advanced Tier 4 QA Auto-Patching (tier4_auto_patching_20260306) ## Overview -Elevate Tier 4 to auto-patcher with .patch file generation and diff viewer. +Elevate Tier 4 from log summarizer to auto-patcher. When verification tests fail, Tier 4 generates a .patch file. GUI displays side-by-side diff; user clicks Apply Patch to resume pipeline. -## Current State Audit -### Already Implemented -- Tier 4 log analysis -- Error detection in tests - -### Gaps to Fill -- No .patch generation -- No GUI diff viewer - -## Goals -- Tier 4 generates .patch on test failure -- Side-by-side diff viewer in GUI -- Apply patch button +## Architectural Constraints +- **Safe Preview**: Patches MUST be previewed before application. +- **Rollback**: Failed patches MUST be revertable. +- **Atomic Application**: Patch application MUST be atomic (all-or-nothing). ## Functional Requirements -- .patch file generation -- Diff computation -- Patch application +- **Patch Generation**: Tier 4 generates .patch file on test failure. +- **Diff Viewer**: GUI shows side-by-side diff of proposed changes. +- **Apply Button**: User confirms patch application. +- **Patch Application**: Apply patch to working directory and verify. -## Non-Functional Requirements -- Safe patch preview before apply -- Rollback capability +## Acceptance Criteria +- [ ] Tier 4 generates valid .patch file. +- [ ] GUI displays readable side-by-side diff. +- [ ] User can approve/reject patch. +- [ ] Approved patches applied correctly. +- [ ] Rollback available on failure. diff --git a/conductor/tracks/tool_usage_analytics_20260306/index.md b/conductor/tracks/tool_usage_analytics_20260306/index.md new file mode 100644 index 0000000..0256abd --- /dev/null +++ b/conductor/tracks/tool_usage_analytics_20260306/index.md @@ -0,0 +1,9 @@ +# Tool Usage Analytics + +**Track ID:** tool_usage_analytics_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/tool_usage_analytics_20260306/metadata.json b/conductor/tracks/tool_usage_analytics_20260306/metadata.json new file mode 100644 index 0000000..85a0256 --- /dev/null +++ b/conductor/tracks/tool_usage_analytics_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "tool_usage_analytics_20260306", + "name": "Tool Usage Analytics", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/tool_usage_analytics_20260306/plan.md b/conductor/tracks/tool_usage_analytics_20260306/plan.md index 762ec7b..dc3e3c4 100644 --- a/conductor/tracks/tool_usage_analytics_20260306/plan.md +++ b/conductor/tracks/tool_usage_analytics_20260306/plan.md @@ -1,16 +1,25 @@ -# Implementation Plan: Tool Usage Analytics (tool_usage_analytics) +# Implementation Plan: Tool Usage Analytics (tool_usage_analytics_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Data Collection +- [ ] Task: Initialize MMA Environment +- [ ] Task: Verify tool_log_callback + - WHERE: src/ai_client.py + - WHAT: Check existing logging -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Aggregation +- [ ] Task: Implement usage aggregation + - WHERE: src/gui_2.py or new module + - WHAT: Count tools, avg times, failures + - HOW: Process tool_log entries + - SAFETY: Efficient data structures -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Visualization +- [ ] Task: Render analytics + - WHERE: src/gui_2.py + - WHAT: Charts and tables + - HOW: imgui tables, plot_lines + - SAFETY: Handle empty data + +## Phase 4: Verification +- [ ] Task: Test analytics +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/tool_usage_analytics_20260306/spec.md b/conductor/tracks/tool_usage_analytics_20260306/spec.md index 568d17c..ad06650 100644 --- a/conductor/tracks/tool_usage_analytics_20260306/spec.md +++ b/conductor/tracks/tool_usage_analytics_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: Tool Usage Analytics +# Track Specification: Tool Usage Analytics (tool_usage_analytics_20260306) ## Overview -Analytics panel for tool usage patterns. +Analytics panel showing most-used tools, average execution time, and failure rates. Uses existing tool_log_callback data. -## Current State Audit -### Already Implemented -- tool_log_callback -- Tool execution tracking - -### Gaps to Fill -- No analytics UI -- No aggregation - -## Goals -- Most-used tools ranking -- Average execution time -- Failure rate tracking +## Architectural Constraints +- **Efficient Aggregation**: Analytics MUST use efficient data structures. +- **Memory Bounds**: History MUST be bounded to prevent growth. ## Functional Requirements -- Usage histograms -- Time series data -- Failure logging +- **Usage Ranking**: Show most-used tools ranked by count. +- **Avg Time**: Display average execution time per tool. +- **Failure Rate**: Track and display failure percentage per tool. +- **Time Series**: Show usage over time. -## Non-Functional Requirements -- Efficient data aggregation +## Acceptance Criteria +- [ ] Tool ranking displayed. +- [ ] Average times accurate. +- [ ] Failure rates tracked. +- [ ] Time series visualization works. +- [ ] Uses existing tool_log_callback. diff --git a/conductor/tracks/track_progress_viz_20260306/index.md b/conductor/tracks/track_progress_viz_20260306/index.md new file mode 100644 index 0000000..012c00c --- /dev/null +++ b/conductor/tracks/track_progress_viz_20260306/index.md @@ -0,0 +1,9 @@ +# Track Progress Visualization + +**Track ID:** track_progress_viz_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/track_progress_viz_20260306/metadata.json b/conductor/tracks/track_progress_viz_20260306/metadata.json new file mode 100644 index 0000000..f881e93 --- /dev/null +++ b/conductor/tracks/track_progress_viz_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "track_progress_viz_20260306", + "name": "Track Progress Visualization", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/track_progress_viz_20260306/plan.md b/conductor/tracks/track_progress_viz_20260306/plan.md index 6e23ad4..a795f57 100644 --- a/conductor/tracks/track_progress_viz_20260306/plan.md +++ b/conductor/tracks/track_progress_viz_20260306/plan.md @@ -1,16 +1,32 @@ -# Implementation Plan: Track Progress Visualization (track_progress_viz) +# Implementation Plan: Track Progress Visualization (track_progress_viz_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Progress Calculation +- [ ] Task: Initialize MMA Environment +- [ ] Task: Implement progress calculation + - WHERE: src/gui_2.py or app_controller + - WHAT: Calculate % from ticket states + - HOW: Count completed vs total -## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +## Phase 2: Visualization +- [ ] Task: Render progress bar + - WHERE: src/gui_2.py + - WHAT: Visual progress bar + - HOW: imgui.progress_bar +- [ ] Task: Render percentage text + - WHERE: src/gui_2.py + - WHAT: Numeric % display + - HOW: imgui.text -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Additional Features +- [ ] Task: Implement ticket counts + - WHERE: src/gui_2.py + - WHAT: Completed/remaining counts + - HOW: Text display +- [ ] Task: Implement ETA + - WHERE: src/gui_2.py + - WHAT: Time estimate + - HOW: Average time per ticket + +## Phase 4: Verification +- [ ] Task: Test progress display +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/track_progress_viz_20260306/spec.md b/conductor/tracks/track_progress_viz_20260306/spec.md index 54d9df7..0897c21 100644 --- a/conductor/tracks/track_progress_viz_20260306/spec.md +++ b/conductor/tracks/track_progress_viz_20260306/spec.md @@ -1,26 +1,21 @@ -# Track Specification: Track Progress Visualization +# Track Specification: Track Progress Visualization (track_progress_viz_20260306) ## Overview -Progress bars and completion percentage for tracks/tickets. +Progress bars and percentage completion for active tracks and tickets. Better visualization of DAG execution state. -## Current State Audit -### Already Implemented -- Track/ticket status tracking -- DAG execution state - -### Gaps to Fill -- No progress bars -- No completion % - -## Goals -- Visual progress bars -- % completion -- Time estimates +## Architectural Constraints +- **Accurate State**: Progress MUST reflect actual ticket status. +- **Efficient Updates**: Status changes MUST trigger efficient UI updates. ## Functional Requirements -- Progress calculation -- Bar rendering -- ETA estimation +- **Progress Bar**: Visual bar showing % complete. +- **Percentage Text**: Display numeric % completion. +- **Ticket Breakdown**: Show completed/remaining counts. +- **ETA Estimate**: Calculate approximate completion time. -## Non-Functional Requirements -- Accurate state sync +## Acceptance Criteria +- [ ] Progress bar renders. +- [ ] Percentage accurate. +- [ ] Counts match actual tickets. +- [ ] ETA calculation works. +- [ ] Updates reflect state changes. diff --git a/conductor/tracks/true_parallel_worker_execution_20260306/index.md b/conductor/tracks/true_parallel_worker_execution_20260306/index.md new file mode 100644 index 0000000..d5cca7e --- /dev/null +++ b/conductor/tracks/true_parallel_worker_execution_20260306/index.md @@ -0,0 +1,9 @@ +# True Parallel Worker Execution + +**Track ID:** true_parallel_worker_execution_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/true_parallel_worker_execution_20260306/metadata.json b/conductor/tracks/true_parallel_worker_execution_20260306/metadata.json new file mode 100644 index 0000000..5880940 --- /dev/null +++ b/conductor/tracks/true_parallel_worker_execution_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "true_parallel_worker_execution_20260306", + "name": "True Parallel Worker Execution", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/true_parallel_worker_execution_20260306/plan.md b/conductor/tracks/true_parallel_worker_execution_20260306/plan.md index 4269a87..b1abbaa 100644 --- a/conductor/tracks/true_parallel_worker_execution_20260306/plan.md +++ b/conductor/tracks/true_parallel_worker_execution_20260306/plan.md @@ -1,16 +1,33 @@ -# Implementation Plan: True Parallel Worker Execution (The DAG Realization) (true_parallel_worker_execution) +# Implementation Plan: True Parallel Worker Execution (true_parallel_worker_execution_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Worker Pool Architecture +- [ ] Task: Initialize MMA Environment +- [ ] Task: Design worker pool architecture + - WHERE: src/dag_engine.py, src/multi_agent_conductor.py + - WHAT: Define WorkerPool class with configurable size + - HOW: Use threading.Thread with queue-based task distribution + - SAFETY: Thread-safe queue for ticket distribution ## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +- [ ] Task: Implement WorkerPool class + - WHERE: src/dag_engine.py + - WHAT: Create worker pool with configurable worker count + - HOW: threading.Thread pool with queue + - SAFETY: Use Lock for shared state +- [ ] Task: Add file locking mechanism + - WHERE: src/shell_runner.py or new locking module + - WHAT: Implement file locks for concurrent access + - HOW: fcntl.flock or equivalent + - SAFETY: Deadlock prevention with timeout +- [ ] Task: Update DAG engine to use pool + - WHERE: src/dag_engine.py + - WHAT: Replace sequential execution with pool-based + - HOW: Submit ready tickets to worker pool + - SAFETY: Atomic status updates -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Tests & Verification +- [ ] Task: Write worker pool tests + - WHERE: tests/test_dag_engine.py + - WHAT: Test concurrent execution + - HOW: Mock workers, verify parallel execution +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/true_parallel_worker_execution_20260306/spec.md b/conductor/tracks/true_parallel_worker_execution_20260306/spec.md index b874594..90b3df9 100644 --- a/conductor/tracks/true_parallel_worker_execution_20260306/spec.md +++ b/conductor/tracks/true_parallel_worker_execution_20260306/spec.md @@ -1,28 +1,22 @@ -# Track Specification: True Parallel Worker Execution +# Track Specification: True Parallel Worker Execution (true_parallel_worker_execution_20260306) ## Overview -Implement true concurrency for the DAG engine to spawn parallel Tier 3 workers. +Implement true concurrency for the DAG engine to spawn parallel Tier 3 workers. Currently workers execute sequentially; this track enables 4+ workers to process independent tickets simultaneously, dramatically reducing total pipeline execution time. -## Current State Audit -### Already Implemented -- threading.local() for tier isolation (Track 5) -- DAG engine in dag_engine.py -- Worker spawning in multi_agent_conductor.py - -### Gaps to Fill -- No parallel worker spawning -- No file locking for concurrent file access - -## Goals -- Spawn 4 independent Tier 3 workers in parallel -- Implement file locking or Git-based diff-merging -- Thread-safe ticket status updates +## Architectural Constraints +- **Thread Safety**: All shared state (ticket status, file access) MUST use threading.Lock or equivalent synchronization. +- **File Locking**: Concurrent file access MUST be protected via file locks or Git-based diff-merging to prevent AST collision. +- **Idempotent Status Updates**: Worker status updates MUST be atomic to prevent race conditions. ## Functional Requirements -- Worker pool with configurable size -- File locking mechanism -- Status tracking for each worker +- **Worker Pool**: Implement configurable worker pool (default 4 workers) in DAG engine. +- **Parallel Spawning**: Workers MUST be spawned as independent threads handling ready tickets concurrently. +- **Status Tracking**: Each worker MUST report individual status (running, complete, blocked, failed). +- **Resource Limits**: Pool MUST respect configurable max concurrent workers. -## Non-Functional Requirements -- No race conditions on file access -- >80% test coverage for new code +## Acceptance Criteria +- [ ] Worker pool spawns 4 concurrent workers for 4+ independent tickets. +- [ ] No race conditions on ticket status updates. +- [ ] File locking prevents concurrent edits to same file. +- [ ] Workers report individual status to GUI. +- [ ] >80% test coverage for new concurrency code. diff --git a/conductor/tracks/visual_dag_ticket_editing_20260306/index.md b/conductor/tracks/visual_dag_ticket_editing_20260306/index.md new file mode 100644 index 0000000..f0269c9 --- /dev/null +++ b/conductor/tracks/visual_dag_ticket_editing_20260306/index.md @@ -0,0 +1,9 @@ +# Visual DAG & Interactive Ticket Editing + +**Track ID:** visual_dag_ticket_editing_20260306 + +**Status:** Planned + +**See Also:** +- [Spec](./spec.md) +- [Plan](./plan.md) diff --git a/conductor/tracks/visual_dag_ticket_editing_20260306/metadata.json b/conductor/tracks/visual_dag_ticket_editing_20260306/metadata.json new file mode 100644 index 0000000..0f25fa1 --- /dev/null +++ b/conductor/tracks/visual_dag_ticket_editing_20260306/metadata.json @@ -0,0 +1,9 @@ +{ + "id": "visual_dag_ticket_editing_20260306", + "name": "Visual DAG & Interactive Ticket Editing", + "status": "planned", + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z", + "type": "feature", + "priority": "medium" +} \ No newline at end of file diff --git a/conductor/tracks/visual_dag_ticket_editing_20260306/plan.md b/conductor/tracks/visual_dag_ticket_editing_20260306/plan.md index 59444e1..ec58e12 100644 --- a/conductor/tracks/visual_dag_ticket_editing_20260306/plan.md +++ b/conductor/tracks/visual_dag_ticket_editing_20260306/plan.md @@ -1,16 +1,29 @@ -# Implementation Plan: Visual DAG & Interactive Ticket Editing (visual_dag_ticket_editing) +# Implementation Plan: Visual DAG Ticket Editing (visual_dag_ticket_editing_20260306) -## Phase 1: Research & Design -- [ ] Task: Analyze existing backend implementation -- [ ] Task: Design GUI/UX approach -- [ ] Task: Conductor - User Manual Verification +## Phase 1: Node Editor Setup +- [ ] Task: Initialize MMA Environment +- [ ] Task: Verify ImGui Bundle node editor available + - WHERE: requirements.txt + - WHAT: Ensure imgui-bundle with node editor + - HOW: pip install ## Phase 2: Implementation -- [ ] Task: Implement feature -- [ ] Task: Write tests -- [ ] Task: Conductor - User Manual Verification +- [ ] Task: Implement ticket node rendering + - WHERE: src/gui_2.py + - WHAT: Render tickets as nodes + - HOW: imgui.node_editor with custom drawing + - SAFETY: 60fps target +- [ ] Task: Implement drag-drop + - WHERE: src/gui_2.py + - WHAT: Handle node drag and dependency lines + - HOW: Node editor callbacks + - SAFETY: Validate DAG after edit +- [ ] Task: Implement status display + - WHERE: src/gui_2.py + - WHAT: Color-coded status per node + - HOW: Node colors based on ticket status + - SAFETY: Sync with backend state -## Phase 3: Verification -- [ ] Task: Run test suite -- [ ] Task: Verify coverage -- [ ] Task: Conductor - Phase Completion Verification +## Phase 3: Tests & Verification +- [ ] Task: Write node editor tests +- [ ] Task: Conductor - Phase Verification diff --git a/conductor/tracks/visual_dag_ticket_editing_20260306/spec.md b/conductor/tracks/visual_dag_ticket_editing_20260306/spec.md index ae9a2dc..4e2d23c 100644 --- a/conductor/tracks/visual_dag_ticket_editing_20260306/spec.md +++ b/conductor/tracks/visual_dag_ticket_editing_20260306/spec.md @@ -1,27 +1,22 @@ -# Track Specification: Visual DAG & Interactive Ticket Editing +# Track Specification: Visual DAG & Interactive Ticket Editing (visual_dag_ticket_editing_20260306) ## Overview -Replace linear ticket list with interactive node graph using ImGui Bundle. +Replace the linear ticket list in the GUI with an interactive node graph using ImGui Bundle's node editor. Users can visually drag dependency lines, split nodes, or delete tasks before execution. -## Current State Audit -### Already Implemented -- Ticket/DAG display in gui_2.py -- DAG engine for dependency resolution - -### Gaps to Fill -- Linear ticket list only -- No drag-drop dependency editing - -## Goals -- Interactive node graph visualization -- Drag dependency lines -- Split/delete nodes visually +## Architectural Constraints +- **DAG Validity**: Any visual edit MUST maintain valid dependency graph (no cycles). +- **Performance**: Node rendering MUST maintain 60fps with 50+ nodes. +- **State Sync**: Visual state MUST stay synchronized with backend ticket state. ## Functional Requirements -- ImGui Bundle node editor integration -- Click-drag node positioning -- Visual dependency lines +- **Node Editor**: Integrate ImGui Bundle node editor for ticket visualization. +- **Drag-Drop**: Users can drag nodes to reorder and create dependency lines. +- **Visual Status**: Nodes display color-coded status (todo, running, blocked, done). +- **Edit Validation**: Changes MUST validate against DAG constraints before saving. -## Non-Functional Requirements -- Maintain DAG validity on edit -- Smooth 60fps rendering +## Acceptance Criteria +- [ ] Node editor displays all tickets as connected nodes. +- [ ] Users can drag nodes to create/remove dependencies. +- [ ] Visual changes sync to backend ticket state. +- [ ] DAG validity enforced (no cycles allowed). +- [ ] 60fps maintained with 50+ nodes.