WIP next tracks planing

This commit is contained in:
2026-03-06 14:52:10 -05:00
parent 3336959e02
commit 2c90020682
28 changed files with 482 additions and 540 deletions

134
TASKS.md
View File

@@ -6,85 +6,99 @@
*(none — all planned tracks queued below)* *(none — all planned tracks queued below)*
## Completed This Session ## Completed This Session
- `test_architecture_integrity_audit_20260304` — Comprehensive test architecture audit completed. Wrote exhaustive report_gemini.md detailing fixing the "Triple Bingo" streaming history explosion, Destructive IPC Read drops, and Asyncio deadlocks. Checkpoint: e3c6b9e. *(See archive: strict_execution_queue_completed_20260306)*
- `mma_agent_focus_ux_20260302` — Per-tier source_tier tagging on comms+tool entries; Focus Agent combo UI; filter logic in comms+tool panels; [tier] label per comms entry. 18 tests. Checkpoint: b30e563.
- `feature_bleed_cleanup_20260302` — Removed dead comms panel dup, dead menubar block, duplicate __init__ vars; added working Quit; fixed Token Budget layout. All phases verified. Checkpoint: 0d081a2.
--- ---
## Planned: The Strict Execution Queue ## Phase 3: Future Horizons (Tracks 1-19)
*All previously loose backlog items have been rigorously spec'd and initialized as Conductor Tracks. They MUST be executed in this exact order.* *Initialized: 2026-03-06*
> [!WARNING] TEST ARCHITECTURE DEBT NOTICE (2026-03-05) ### Architecture & Backend
> The `gui_decoupling` track exposed deep flaws in the test architecture (asyncio event loop exhaustion, IPC polling race conditions, phantom Windows subprocesses).
> **Current Testing Policy:**
> - Full-suite integration tests (`live_gui` / extended sims) are currently considered **"flaky by design"**.
> - Do NOT write new `live_gui` simulations until Track #1, #2, and #3 are complete.
> - If unit tests pass but `test_extended_sims.py` hangs or fails locally, you may manually verify the GUI behavior and proceed.
### 1. `hook_api_ui_state_verification_20260302` (Active/Next) #### 1. \ rue_parallel_worker_execution_20260306- **Status:** Planned
- **Status:** Initialized
- **Priority:** High - **Priority:** High
- **Goal:** Add a `/api/gui/state` GET endpoint. Wire UI state into `_settable_fields` to enable programmatic `live_gui` testing without user confirmation. - **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.
- **Fixes Test Debt:** Replaces brittle `time.sleep()` and string-matching assertions in simulations with deterministic API queries.
### 2. `asyncio_decoupling_refactor_20260306` #### 2. \deep_ast_context_pruning_20260306- **Status:** Planned
- **Status:** Initialized
- **Priority:** High - **Priority:** High
- **Goal:** Resolve deep asyncio/threading deadlocks. Replace `asyncio.Queue` in `AppController` with a standard `queue.Queue`. Ensure phantom subprocesses are killed. - **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.
- **Fixes Test Debt:** Eliminates `RuntimeError: Event loop is closed` and zombie port 8999 hijacking. Restores full-suite reliability.
### 3. `mock_provider_hardening_20260305` #### 3. \ isual_dag_ticket_editing_20260306- **Status:** Planned
- **Status:** Initialized
- **Priority:** Medium - **Priority:** Medium
- **Goal:** Introduce negative testing paths (malformed JSON, timeouts) into the mock AI provider. - **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.
- **Fixes Test Debt:** Allows the test suite to verify error handling flows that were previously masked by a mock provider that only ever returned success.
### 4. `robust_json_parsing_tech_lead_20260302` #### 4. \ ier4_auto_patching_20260306- **Status:** Planned
- **Status:** Initialized
- **Priority:** Medium - **Priority:** Medium
- **Goal:** Implement an auto-retry loop that catches `JSONDecodeError` and feeds the traceback to the Tier 2 model for self-correction. - **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.
- **Test Debt Note:** Rely strictly on in-process `unittest.mock` to verify the retry logic until stabilization tracks are done.
### 5. `concurrent_tier_source_tier_20260302` #### 5. ative_orchestrator_20260306- **Status:** Planned
- **Status:** Initialized
- **Priority:** Low - **Priority:** Low
- **Goal:** Replace global state with `threading.local()` or explicit context passing to guarantee thread-safe logging when multiple Tier 3 workers process tickets in parallel. - **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).
- **Test Debt Note:** Use in-process mocks to verify concurrency.
### 6. `manual_ux_validation_20260302`
- **Status:** Initialized
- **Priority:** Medium
- **Goal:** Highly interactive human-in-the-loop track to review and adjust GUI UX, animations, popups, and layout structures based on slow-interval simulation feedback.
- **Test Debt Note:** Naturally bypasses automated testing debt as it is purely human-in-the-loop.
### 7. `async_tool_execution_20260303`
- **Status:** Initialized
- **Priority:** Medium
- **Goal:** Refactor MCP tool execution to utilize `asyncio.gather` or thread pools to run multiple tools concurrently within a single AI loop.
- **Test Debt Note:** Use in-process mocks to verify concurrency.
### 8. `simulation_fidelity_enhancement_20260305`
- **Status:** Initialized
- **Priority:** Low
- **Goal:** Add human-like jitter, hesitation, and reading latency to the UserSimAgent.
--- ---
## Phase 3: Future Horizons (Post-Hardening Backlog) ### GUI Overhauls & Visualizations
*To be evaluated in a future Tier 1 session once the Strict Execution Queue is cleared and the architectural foundation is stabilized.*
### 1. True Parallel Worker Execution (The DAG Realization) #### 6. \cost_token_analytics_20260306- **Status:** Planned
**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. - **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.
### 2. Deep AST-Driven Context Pruning (RAG for Code) #### 7. \performance_dashboard_20260306- **Status:** Planned
**Goal:** Before dispatching a Tier 3 worker, use `tree_sitter` to automatically parse the target file's AST, strip out unrelated function bodies, and inject a surgically condensed skeleton into the worker's prompt. Guarantees the AI only "sees" what it needs to edit, drastically reducing token burn. - **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.
### 3. Visual DAG & Interactive Ticket Editing #### 8. \mma_multiworker_viz_20260306- **Status:** Planned
**Goal:** Replace the linear ticket list in the GUI with an interactive Node Graph using ImGui Bundle's node editor. Allow the user to visually drag dependency lines, split nodes, or delete tasks before clicking "Execute Pipeline." - **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.
### 4. Advanced Tier 4 QA Auto-Patching #### 9. \cache_analytics_20260306- **Status:** Planned
**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. - **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.
### 5. Transitioning to a Native Orchestrator #### 10. \ ool_usage_analytics_20260306- **Status:** Planned
**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`). - **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
- **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
- **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
- **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.
#### 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.
---
### Manual UX Controls
#### 15. \ icket_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.
#### 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.
#### 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
- **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
- **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.

View File

@@ -4,84 +4,109 @@ This file tracks all major tracks for the project. Each track has its own detail
--- ---
## Current Tracks (Strict Execution Queue) ## Phase 3: Future Horizons (Tracks 1-20)
*Initialized: 2026-03-06*
*The following tracks MUST be executed in this exact order to safely resolve tech debt before feature development.* ### Architecture & Backend
1. [x] **Track: Hook API UI State Verification** 1. [ ] **Track: True Parallel Worker Execution (The DAG Realization)**
*Link: [./tracks/hook_api_ui_state_verification_20260302/](./tracks/hook_api_ui_state_verification_20260302/)* *Link: [./tracks/true_parallel_worker_execution_20260306/](./tracks/true_parallel_worker_execution_20260306/)*
2. [x] **Track: Asyncio Decoupling & Queue Refactor** 2. [ ] **Track: Deep AST-Driven Context Pruning (RAG for Code)**
*Link: [./tracks/asyncio_decoupling_refactor_20260306/](./tracks/asyncio_decoupling_refactor_20260306/)* *Link: [./tracks/deep_ast_context_pruning_20260306/](./tracks/deep_ast_context_pruning_20260306/)*
3. [x] **Track: Mock Provider Hardening** 3. [ ] **Track: Visual DAG & Interactive Ticket Editing**
*Link: [./tracks/mock_provider_hardening_20260305/](./tracks/mock_provider_hardening_20260305/)* *Link: [./tracks/visual_dag_ticket_editing_20260306/](./tracks/visual_dag_ticket_editing_20260306/)*
4. [x] **Track: Robust JSON Parsing for Tech Lead** 4. [ ] **Track: Advanced Tier 4 QA Auto-Patching**
*Link: [./tracks/robust_json_parsing_tech_lead_20260302/](./tracks/robust_json_parsing_tech_lead_20260302/)* *Link: [./tracks/tier4_auto_patching_20260306/](./tracks/tier4_auto_patching_20260306/)*
5. [x] **Track: Concurrent Tier Source Isolation** 5. [ ] **Track: Transitioning to Native Orchestrator**
*Link: [./tracks/concurrent_tier_source_tier_20260302/](./tracks/concurrent_tier_source_tier_20260302/)* *Link: [./tracks/native_orchestrator_20260306/](./tracks/native_orchestrator_20260306/)*
6. [x] **Track: Asynchronous Tool Execution Engine** ---
*Link: [./tracks/async_tool_execution_20260303/](./tracks/async_tool_execution_20260303/)*
7. [x] **Track: Simulation Fidelity Enhancement** ### GUI Overhauls & Visualizations
*Link: [./tracks/simulation_fidelity_enhancement_20260305/](./tracks/simulation_fidelity_enhancement_20260305/)*
## Plan for later. 6. [ ] **Track: Cost & Token Analytics Panel**
*Link: [./tracks/cost_token_analytics_20260306/](./tracks/cost_token_analytics_20260306/)*
1. [ ] **Track: Manual UX Validation & Polish** 7. [ ] **Track: Performance Dashboard**
*Link: [./tracks/manual_ux_validation_20260302/](./tracks/manual_ux_validation_20260302/)* *Link: [./tracks/performance_dashboard_20260306/](./tracks/performance_dashboard_20260306/)*
8. [ ] **Track: MMA Multi-Worker Visualization**
*Link: [./tracks/mma_multiworker_viz_20260306/](./tracks/mma_multiworker_viz_20260306/)*
9. [ ] **Track: Cache Analytics Display**
*Link: [./tracks/cache_analytics_20260306/](./tracks/cache_analytics_20260306/)*
10. [ ] **Track: Tool Usage Analytics**
*Link: [./tracks/tool_usage_analytics_20260306/](./tracks/tool_usage_analytics_20260306/)*
11. [ ] **Track: Session Insights & Efficiency Scores**
*Link: [./tracks/session_insights_20260306/](./tracks/session_insights_20260306/)*
12. [ ] **Track: Track Progress Visualization**
*Link: [./tracks/track_progress_viz_20260306/](./tracks/track_progress_viz_20260306/)*
13. [ ] **Track: Manual Skeleton Context Injection**
*Link: [./tracks/manual_skeleton_injection_20260306/](./tracks/manual_skeleton_injection_20260306/)*
14. [ ] **Track: On-Demand Definition Lookup**
*Link: [./tracks/on_demand_def_lookup_20260306/](./tracks/on_demand_def_lookup_20260306/)*
---
### Manual UX Controls
15. [ ] **Track: Manual Ticket Queue Management**
*Link: [./tracks/ticket_queue_mgmt_20260306/](./tracks/ticket_queue_mgmt_20260306/)*
16. [ ] **Track: Kill/Abort Running Workers**
*Link: [./tracks/kill_abort_workers_20260306/](./tracks/kill_abort_workers_20260306/)*
17. [ ] **Track: Manual Block/Unblock Control**
*Link: [./tracks/manual_block_control_20260306/](./tracks/manual_block_control_20260306/)*
18. [ ] **Track: Pipeline Pause/Resume**
*Link: [./tracks/pipeline_pause_resume_20260306/](./tracks/pipeline_pause_resume_20260306/)*
19. [ ] **Track: Per-Ticket Model Override**
*Link: [./tracks/per_ticket_model_20260306/](./tracks/per_ticket_model_20260306/)*
20. [ ] **Track: Manual UX Validation & Review**
*Link: [./tracks/manual_ux_validation_20260302/](./tracks/manual_ux_validation_20260302/)*
--- ---
## Completed / Archived ## Completed / Archived
### Phase 2: Strict Execution Queue (Completed 2026-03-06)
*See: [./archive/strict_execution_queue_completed_20260306/](./archive/strict_execution_queue_completed_20260306/)*
- [x] **Track: Hook API UI State Verification**
- [x] **Track: Asyncio Decoupling & Queue Refactor**
- [x] **Track: Mock Provider Hardening**
- [x] **Track: Robust JSON Parsing for Tech Lead**
- [x] **Track: Concurrent Tier Source Isolation**
- [x] **Track: Asynchronous Tool Execution Engine**
- [x] **Track: Simulation Fidelity Enhancement**
### Earlier Archives
- [x] **Track: Test Architecture Integrity Audit** - [x] **Track: Test Architecture Integrity Audit**
*Link: [./archive/test_architecture_integrity_audit_20260304/](./archive/test_architecture_integrity_audit_20260304/)* - [x] **Track: Codebase Migration to src & Cleanup**
- [x] **Track: Codebase Migration to `src` & Cleanup**
*Link: [./archive/codebase_migration_20260302/](./archive/codebase_migration_20260302/)*
- [x] **Track: GUI Decoupling & Controller Architecture** - [x] **Track: GUI Decoupling & Controller Architecture**
*Link: [./archive/gui_decoupling_controller_20260302/](./archive/gui_decoupling_controller_20260302/)*
- [x] **Track: Strict Static Analysis & Type Safety** - [x] **Track: Strict Static Analysis & Type Safety**
*Link: [./archive/strict_static_analysis_and_typing_20260302/](./archive/strict_static_analysis_and_typing_20260302/)*
- [x] **Track: Test Suite Stabilization & Consolidation** - [x] **Track: Test Suite Stabilization & Consolidation**
*Link: [./archive/test_stabilization_20260302/](./archive/test_stabilization_20260302/)*
- [x] **Track: Tech Debt & Test Discipline Cleanup** - [x] **Track: Tech Debt & Test Discipline Cleanup**
*Link: [./archive/tech_debt_and_test_cleanup_20260302/](./archive/tech_debt_and_test_cleanup_20260302/)*
- [x] **Track: Conductor Workflow Improvements** - [x] **Track: Conductor Workflow Improvements**
*Link: [./archive/conductor_workflow_improvements_20260302/](./archive/conductor_workflow_improvements_20260302/)*
- [x] **Track: MMA Agent Focus UX** - [x] **Track: MMA Agent Focus UX**
*Link: [./archive/mma_agent_focus_ux_20260302/](./archive/mma_agent_focus_ux_20260302/)*
- [x] **Track: Architecture Boundary Hardening** - [x] **Track: Architecture Boundary Hardening**
*Link: [./archive/architecture_boundary_hardening_20260302/](./archive/architecture_boundary_hardening_20260302/)*
- [x] **Track: Feature Bleed Cleanup** - [x] **Track: Feature Bleed Cleanup**
*Link: [./archive/feature_bleed_cleanup_20260302/](./archive/feature_bleed_cleanup_20260302/)*
- [x] **Track: Context & Token Visualization** - [x] **Track: Context & Token Visualization**
*Link: [./archive/context_token_viz_20260301/](./archive/context_token_viz_20260301/)*
- [x] **Track: Comprehensive Conductor & MMA GUI UX** - [x] **Track: Comprehensive Conductor & MMA GUI UX**
*Link: [./archive/comprehensive_gui_ux_20260228/](./archive/comprehensive_gui_ux_20260228/)*
- [x] **Track: MMA Pipeline Fix & Worker Stream Verification** - [x] **Track: MMA Pipeline Fix & Worker Stream Verification**
*Link: [./archive/mma_pipeline_fix_20260301/](./archive/mma_pipeline_fix_20260301/)*
- [x] **Track: Simulation Hardening** - [x] **Track: Simulation Hardening**
*Link: [./archive/simulation_hardening_20260301/](./archive/simulation_hardening_20260301/)*
- [x] **Track: Deep Architectural Documentation Refresh** - [x] **Track: Deep Architectural Documentation Refresh**
*Link: [./archive/documentation_refresh_20260224/](./archive/documentation_refresh_20260224/)*
- [x] **Track: Robust Live Simulation Verification** - [x] **Track: Robust Live Simulation Verification**
*Link: [./archive/robust_live_simulation_verification/](./archive/robust_live_simulation_verification/)*

View File

@@ -1,33 +1,26 @@
# Track Specification: Cache Analytics Display # Track Specification: Cache Analytics Display
## Overview ## Overview
Implement cache analytics display for Manual Slop application. Gemini cache hit/miss visualization and TTL status.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - get_gemini_cache_stats() in ai_client.py
- Test coverage for core features - Cache creation/deletion
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No GUI display
- No hit/miss tracking
## Goals ## Goals
- Implement cache analytics display - Cache status panel
- Ensure test coverage - Hit/miss ratio
- Follow existing code patterns - TTL countdown
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Cache size display
- Integration with existing backend - TTL visualization
- Manual cache clear
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Non-blocking UI updates
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,28 @@
# Track Specification: Cost & Token Analytics Panel # Track Specification: Cost & Token Analytics Panel
## Overview ## Overview
Implement cost & token analytics panel for Manual Slop application. Real-time cost tracking panel for API usage by model and tier.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - cost_tracker.py with MODEL_PRICING
- Test coverage for core features - estimate_cost() function
- Token tracking in ai_client.py
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No GUI panel for cost display
- No session totals
## Goals ## Goals
- Implement cost & token analytics panel - Cost per model display
- Ensure test coverage - Session totals
- Follow existing code patterns - Breakdown by tier
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Real-time cost updates
- Integration with existing backend - Per-model breakdown
- Tier breakdown
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - <10ms update latency
- Tests: >80% coverage for new code - Clear visual formatting
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,28 @@
# Track Specification: Deep AST-Driven Context Pruning (RAG for Code) # Track Specification: Deep AST-Driven Context Pruning
## Overview ## Overview
Implement deep ast-driven context pruning (rag for code) for Manual Slop application. Use tree_sitter to parse target file AST and inject condensed skeletons into worker prompts.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - file_cache.py with skeleton generation
- Test coverage for core features - outline_tool.py for code outlines
- AST-based file analysis
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No automatic AST pruning based on edit target
- Skeletons not customizable by user
## Goals ## Goals
- Implement deep ast-driven context pruning (rag for code) - Parse target file AST before worker dispatch
- Ensure test coverage - Strip unrelated function bodies
- Follow existing code patterns - Inject surgical skeleton to reduce tokens
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - tree_sitter integration
- Integration with existing backend - Target function/method detection
- Configurable skeleton depth
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - <100ms parsing time per file
- Tests: >80% coverage for new code - >50% token reduction target
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Kill/Abort Running Workers # Track Specification: Kill/Abort Running Workers
## Overview ## Overview
Implement kill/abort running workers for Manual Slop application. Add ability to kill/abort running Tier 3 workers mid-execution.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Worker lifecycle in multi_agent_conductor.py
- Test coverage for core features - Thread-based execution
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No kill mechanism
- Workers run to completion
## Goals ## Goals
- Implement kill/abort running workers - Kill button per worker
- Ensure test coverage - Forced termination
- Follow existing code patterns - Graceful abort option
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Thread termination
- Integration with existing backend - Cleanup handlers
- Confirmation dialog
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Clean resource release
- Tests: >80% coverage for new code - No zombie processes
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,26 @@
# Track Specification: Manual Block/Unblock Control # Track Specification: Manual Block/Unblock Control
## Overview ## Overview
Implement manual block/unblock control for Manual Slop application. Manually block/unblock tickets with custom reasons.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Ticket blocked status
- Test coverage for core features - Dependency-based blocking
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No manual override
- No custom reasons
## Goals ## Goals
- Implement manual block/unblock control - Manual block with reason
- Ensure test coverage - Unblock button
- Follow existing code patterns - Block reason display
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Block/unblock actions
- Integration with existing backend - Reason field
- Visual blocked indicator
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Clear block indication
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,26 @@
# Track Specification: Manual Skeleton Context Injection # Track Specification: Manual Skeleton Context Injection
## Overview ## Overview
Implement manual skeleton context injection for Manual Slop application. UI controls to manually flag files for skeleton injection.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Auto-generated skeletons for workers
- Test coverage for core features - file_cache skeleton generation
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No manual file selection
- No def-level control
## Goals ## Goals
- Implement manual skeleton context injection - File picker for skeleton injection
- Ensure test coverage - Manual skeleton refresh
- Follow existing code patterns - Def-level granularity
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - File browser integration
- Integration with existing backend - Skeleton regeneration trigger
- Context preview
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Fast skeleton generation
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,28 @@
# Track Specification: MMA Multi-Worker Visualization # Track Specification: MMA Multi-Worker Visualization
## Overview ## Overview
Implement mma multi-worker visualization for Manual Slop application. Split-view GUI for parallel worker streams per tier.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - mma_streams in app_controller.py
- Test coverage for core features - Tier source tagging
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - Single stream display only
- No per-worker status
- No kill/restart controls
## Goals ## Goals
- Implement mma multi-worker visualization - Split view per worker
- Ensure test coverage - Individual status/output tabs
- Follow existing code patterns - Kill/restart per worker
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Multi-pane layout
- Integration with existing backend - Worker lifecycle controls
- Output streaming per worker
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Handle 4+ concurrent workers
- Tests: >80% coverage for new code - Graceful termination
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Transitioning to Native Orchestrator # Track Specification: Native Orchestrator
## Overview ## Overview
Implement transitioning to native orchestrator for Manual Slop application. Absorb mma_exec.py into core app for pure Python MMA orchestration.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - mma_exec.py for tier delegation
- Test coverage for core features - ConductorEngine in multi_agent_conductor.py
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - External CLI dependency
- No native plan.md management
## Goals ## Goals
- Implement transitioning to native orchestrator - Read/write plan.md natively
- Ensure test coverage - Manage metadata.json in Python
- Follow existing code patterns - Remove mma_exec.py dependency
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Plan file CRUD operations
- Integration with existing backend - Metadata management
- Tier delegation in-process
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Backward compatible with existing tracks
- Tests: >80% coverage for new code - No breaking changes to API
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,26 @@
# Track Specification: On-Demand Definition Lookup # Track Specification: On-Demand Definition Lookup
## Overview ## Overview
Implement on-demand definition lookup for Manual Slop application. Agent can request specific class/function definitions during discussion.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - outline_tool.py for definitions
- Test coverage for core features - py_get_definition tool
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No @mention syntax
- No inline display
## Goals ## Goals
- Implement on-demand definition lookup - @symbol lookup syntax
- Ensure test coverage - Inline definition display
- Follow existing code patterns - Auto-fetch on unknown symbols
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Symbol parsing
- Integration with existing backend - Definition retrieval
- Inline rendering
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Quick lookup (<100ms)
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Per-Ticket Model Override # Track Specification: Per-Ticket Model Override
## Overview ## Overview
Implement per-ticket model override for Manual Slop application. Allow manual model selection per ticket.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Model selection per tier
- Test coverage for core features - Ticket model field
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No per-ticket override UI
- No model picker
## Goals ## Goals
- Implement per-ticket model override - Model dropdown per ticket
- Ensure test coverage - Override default tier model
- Follow existing code patterns - Clear override indication
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Model picker UI
- Integration with existing backend - Override flag
- Model validation
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Valid model list
- Tests: >80% coverage for new code - Clear indication of override
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,29 @@
# Track Specification: Performance Dashboard # Track Specification: Performance Dashboard
## Overview ## Overview
Implement performance dashboard for Manual Slop application. Expand performance metrics with CPU/RAM, frame time, input lag graphs.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - performance_monitor.py
- Test coverage for core features - get_metrics() method
- Basic FPS display
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No historical graphs
- No input lag tracking
- No CPU/RAM visualization
## Goals ## Goals
- Implement performance dashboard - Historical performance graphs
- Ensure test coverage - CPU/RAM usage display
- Follow existing code patterns - Input lag metrics
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Rolling metrics history
- Integration with existing backend - Graph rendering
- Alert thresholds
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - 60fps UI during metrics collection
- Tests: >80% coverage for new code - Configurable history length
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Pipeline Pause/Resume # Track Specification: Pipeline Pause/Resume
## Overview ## Overview
Implement pipeline pause/resume for Manual Slop application. Global pause/resume for entire DAG execution pipeline.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - DAG engine execution
- Test coverage for core features - auto_queue mode
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No pause mechanism
- No resume capability
## Goals ## Goals
- Implement pipeline pause/resume - Global pause button
- Ensure test coverage - Resume button
- Follow existing code patterns - Frozen state visualization
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Pause all workers
- Integration with existing backend - Resume from paused state
- State persistence
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Worker state preservation
- Tests: >80% coverage for new code - Clean resume
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Session Insights & Efficiency Scores # Track Specification: Session Insights & Efficiency Scores
## Overview ## Overview
Implement session insights & efficiency scores for Manual Slop application. Token usage over time, cost projections, efficiency metrics.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - session_logger.py
- Test coverage for core features - Token counting
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No visualization
- No efficiency scoring
## Goals ## Goals
- Implement session insights & efficiency scores - Token usage graphs
- Ensure test coverage - Cost projections
- Follow existing code patterns - Efficiency scores
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Rolling token history
- Integration with existing backend - Cost calculation
- Efficiency algorithm
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Session comparison
- Tests: >80% coverage for new code - Export capability
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,28 @@
# Track Specification: Manual Ticket Queue Management # Track Specification: Manual Ticket Queue Management
## Overview ## Overview
Implement manual ticket queue management for Manual Slop application. Reorder, prioritize, and requeue tickets with drag-drop UI.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Ticket system in models.py
- Test coverage for core features - DAG dependency resolution
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No drag-drop reordering
- No priority tags
- No bulk operations
## Goals ## Goals
- Implement manual ticket queue management - Drag-drop ticket reordering
- Ensure test coverage - Priority tags (high/med/low)
- Follow existing code patterns - Bulk select and execute/skip/block
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Drag-drop handlers
- Integration with existing backend - Priority field on tickets
- Bulk action buttons
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Maintain DAG validity
- Tests: >80% coverage for new code - Undo capability
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Advanced Tier 4 QA Auto-Patching # Track Specification: Advanced Tier 4 QA Auto-Patching
## Overview ## Overview
Implement advanced tier 4 qa auto-patching for Manual Slop application. Elevate Tier 4 to auto-patcher with .patch file generation and diff viewer.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Tier 4 log analysis
- Test coverage for core features - Error detection in tests
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No .patch generation
- No GUI diff viewer
## Goals ## Goals
- Implement advanced tier 4 qa auto-patching - Tier 4 generates .patch on test failure
- Ensure test coverage - Side-by-side diff viewer in GUI
- Follow existing code patterns - Apply patch button
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - .patch file generation
- Integration with existing backend - Diff computation
- Patch application
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Safe patch preview before apply
- Tests: >80% coverage for new code - Rollback capability
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,26 @@
# Track Specification: Tool Usage Analytics # Track Specification: Tool Usage Analytics
## Overview ## Overview
Implement tool usage analytics for Manual Slop application. Analytics panel for tool usage patterns.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - tool_log_callback
- Test coverage for core features - Tool execution tracking
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No analytics UI
- No aggregation
## Goals ## Goals
- Implement tool usage analytics - Most-used tools ranking
- Ensure test coverage - Average execution time
- Follow existing code patterns - Failure rate tracking
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Usage histograms
- Integration with existing backend - Time series data
- Failure logging
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Efficient data aggregation
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,26 @@
# Track Specification: Track Progress Visualization # Track Specification: Track Progress Visualization
## Overview ## Overview
Implement track progress visualization for Manual Slop application. Progress bars and completion percentage for tracks/tickets.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Track/ticket status tracking
- Test coverage for core features - DAG execution state
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No progress bars
- No completion %
## Goals ## Goals
- Implement track progress visualization - Visual progress bars
- Ensure test coverage - % completion
- Follow existing code patterns - Time estimates
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Progress calculation
- Integration with existing backend - Bar rendering
- ETA estimation
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Accurate state sync
- Tests: >80% coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,28 @@
# Track Specification: True Parallel Worker Execution (The DAG Realization) # Track Specification: True Parallel Worker Execution
## Overview ## Overview
Implement true parallel worker execution (the dag realization) for Manual Slop application. Implement true concurrency for the DAG engine to spawn parallel Tier 3 workers.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - threading.local() for tier isolation (Track 5)
- Test coverage for core features - DAG engine in dag_engine.py
- Worker spawning in multi_agent_conductor.py
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - No parallel worker spawning
- No file locking for concurrent file access
## Goals ## Goals
- Implement true parallel worker execution (the dag realization) - Spawn 4 independent Tier 3 workers in parallel
- Ensure test coverage - Implement file locking or Git-based diff-merging
- Follow existing code patterns - Thread-safe ticket status updates
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - Worker pool with configurable size
- Integration with existing backend - File locking mechanism
- Status tracking for each worker
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - No race conditions on file access
- Tests: >80% coverage for new code - >80% test coverage for new code
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -1,33 +1,27 @@
# Track Specification: Visual DAG & Interactive Ticket Editing # Track Specification: Visual DAG & Interactive Ticket Editing
## Overview ## Overview
Implement visual dag & interactive ticket editing for Manual Slop application. Replace linear ticket list with interactive node graph using ImGui Bundle.
## Current State Audit ## Current State Audit
### Already Implemented (DO NOT re-implement) ### Already Implemented
- Existing backend functionality in src/ modules - Ticket/DAG display in gui_2.py
- Test coverage for core features - DAG engine for dependency resolution
### Gaps to Fill (This Track Scope) ### Gaps to Fill
This track addresses the gap between backend implementation and user-facing GUI/control. - Linear ticket list only
- No drag-drop dependency editing
## Goals ## Goals
- Implement visual dag & interactive ticket editing - Interactive node graph visualization
- Ensure test coverage - Drag dependency lines
- Follow existing code patterns - Split/delete nodes visually
## Functional Requirements ## Functional Requirements
- User-facing functionality as described in TASKS.md - ImGui Bundle node editor integration
- Integration with existing backend - Click-drag node positioning
- Visual dependency lines
## Non-Functional Requirements ## Non-Functional Requirements
- Performance: Maintain UI responsiveness - Maintain DAG validity on edit
- Tests: >80% coverage for new code - Smooth 60fps rendering
## Architecture Reference
- docs/guide_architecture.md
- docs/guide_mma.md
- docs/guide_tools.md
## Out of Scope
- Major refactoring of unrelated systems

View File

@@ -90,7 +90,7 @@ Collapsed=0
[Window][Diagnostics] [Window][Diagnostics]
Pos=454,17 Pos=454,17
Size=268,794 Size=257,794
Collapsed=0 Collapsed=0
DockId=0x00000010,1 DockId=0x00000010,1
@@ -107,14 +107,14 @@ Collapsed=0
DockId=0x0000000D,0 DockId=0x0000000D,0
[Window][Discussion Hub] [Window][Discussion Hub]
Pos=724,17 Pos=713,17
Size=716,592 Size=727,1082
Collapsed=0 Collapsed=0
DockId=0x00000012,0 DockId=0x00000012,0
[Window][Operations Hub] [Window][Operations Hub]
Pos=454,17 Pos=454,17
Size=268,794 Size=257,794
Collapsed=0 Collapsed=0
DockId=0x00000010,0 DockId=0x00000010,0
@@ -136,14 +136,14 @@ Size=416,325
Collapsed=0 Collapsed=0
[Window][MMA Dashboard] [Window][MMA Dashboard]
Pos=724,611 Pos=713,1101
Size=716,589 Size=727,99
Collapsed=0 Collapsed=0
DockId=0x00000013,0 DockId=0x00000013,0
[Window][Log Management] [Window][Log Management]
Pos=724,17 Pos=713,17
Size=716,592 Size=727,1082
Collapsed=0 Collapsed=0
DockId=0x00000012,1 DockId=0x00000012,1
@@ -153,26 +153,26 @@ Size=262,209
Collapsed=0 Collapsed=0
[Window][Tier 1: Strategy] [Window][Tier 1: Strategy]
Pos=724,611 Pos=713,1101
Size=716,589 Size=727,99
Collapsed=0 Collapsed=0
DockId=0x00000013,1 DockId=0x00000013,1
[Window][Tier 2: Tech Lead] [Window][Tier 2: Tech Lead]
Pos=724,611 Pos=713,1101
Size=716,589 Size=727,99
Collapsed=0 Collapsed=0
DockId=0x00000013,2 DockId=0x00000013,2
[Window][Tier 4: QA] [Window][Tier 4: QA]
Pos=454,813 Pos=454,813
Size=268,387 Size=257,387
Collapsed=0 Collapsed=0
DockId=0x00000011,1 DockId=0x00000011,1
[Window][Tier 3: Workers] [Window][Tier 3: Workers]
Pos=454,813 Pos=454,813
Size=268,387 Size=257,387
Collapsed=0 Collapsed=0
DockId=0x00000011,0 DockId=0x00000011,0
@@ -214,20 +214,20 @@ DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02 DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=1440,1183 Split=Y DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=1440,1183 Split=Y
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=1658,1183 Split=X DockNode ID=0x00000003 Parent=0x0000000C SizeRef=711,1183 Split=X
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=Y Selected=0xF4139CA2 DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=Y Selected=0xF4139CA2
DockNode ID=0x00000002 Parent=0x0000000B SizeRef=1029,1119 Split=X Selected=0xF4139CA2 DockNode ID=0x00000002 Parent=0x0000000B SizeRef=1029,1119 Split=X Selected=0xF4139CA2
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=452,858 Split=Y Selected=0x8CA2375C DockNode ID=0x00000007 Parent=0x00000002 SizeRef=452,858 Split=Y Selected=0x8CA2375C
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,824 Selected=0xF4139CA2 DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,824 Selected=0xF4139CA2
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,995 CentralNode=1 Selected=0x7BD57D6A DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,995 CentralNode=1 Selected=0x7BD57D6A
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=268,858 Split=Y Selected=0x418C7449 DockNode ID=0x0000000E Parent=0x00000002 SizeRef=257,858 Split=Y Selected=0x418C7449
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,1065 Selected=0x418C7449 DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,1065 Selected=0x418C7449
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,520 Selected=0x5CDB7A4B DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,520 Selected=0x5CDB7A4B
DockNode ID=0x00000001 Parent=0x0000000B SizeRef=1029,775 Selected=0x8B4EBFA6 DockNode ID=0x00000001 Parent=0x0000000B SizeRef=1029,775 Selected=0x8B4EBFA6
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6 DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=716,1183 Split=Y Selected=0x2C0206CE DockNode ID=0x00000004 Parent=0x0000000C SizeRef=727,1183 Split=Y Selected=0x2C0206CE
DockNode ID=0x00000012 Parent=0x00000004 SizeRef=905,794 Selected=0x6F2B5B04 DockNode ID=0x00000012 Parent=0x00000004 SizeRef=905,1082 Selected=0x6F2B5B04
DockNode ID=0x00000013 Parent=0x00000004 SizeRef=905,791 Selected=0x3AEC3498 DockNode ID=0x00000013 Parent=0x00000004 SizeRef=905,99 Selected=0xBB346584
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
;;;<<<Layout_655921752_Default>>>;;; ;;;<<<Layout_655921752_Default>>>;;;

View File

@@ -664,9 +664,25 @@ class AppController:
self._set_status(f"viewing prior session: {Path(path).name} ({len(entries)} entries)") self._set_status(f"viewing prior session: {Path(path).name} ({len(entries)} entries)")
def cb_prune_logs(self) -> None: def cb_prune_logs(self) -> None:
"""Manually triggers the log pruning process.""" """Manually triggers the log pruning process with aggressive thresholds."""
self._set_status("Pruning logs...") self._set_status("Manual prune started (Age > 0d, Size < 100KB)...")
self._prune_old_logs()
def run_manual_prune() -> None:
try:
from src import log_registry
from src import log_pruner
registry = log_registry.LogRegistry("logs/sessions/log_registry.toml")
pruner = log_pruner.LogPruner(registry, "logs/sessions")
# Aggressive: Prune anything not whitelisted, even if just created, if under 100KB
# Note: max_age_days=0 means cutoff is NOW.
pruner.prune(max_age_days=0, min_size_kb=100)
self._set_status("Manual prune complete.")
except Exception as e:
self._set_status(f"Manual prune error: {e}")
print(f"Error during manual log pruning: {e}")
thread = threading.Thread(target=run_manual_prune, daemon=True)
thread.start()
def _load_active_project(self) -> None: def _load_active_project(self) -> None:
"""Loads the active project configuration, with fallbacks.""" """Loads the active project configuration, with fallbacks."""

View File

@@ -21,14 +21,14 @@ class LogPruner:
self.log_registry = log_registry self.log_registry = log_registry
self.logs_dir = logs_dir self.logs_dir = logs_dir
def prune(self, max_age_days: int = 1) -> None: def prune(self, max_age_days: int = 1, min_size_kb: int = 2) -> None:
""" """
Prunes old and small session directories from the logs directory. Prunes old and small session directories from the logs directory.
Deletes session directories that meet the following criteria: Deletes session directories that meet the following criteria:
1. The session start time is older than max_age_days. 1. The session start time is older than max_age_days.
2. The session name is NOT in the whitelist provided by the LogRegistry. 2. The session name is NOT in the whitelist provided by the LogRegistry.
3. The total size of all files within the session directory is less than 2KB (2048 bytes). 3. The total size of all files within the session directory is less than min_size_kb.
""" """
now = datetime.now() now = datetime.now()
cutoff_time = now - timedelta(days=max_age_days) cutoff_time = now - timedelta(days=max_age_days)
@@ -37,7 +37,7 @@ class LogPruner:
return return
# Get sessions that are old and not whitelisted from the registry # Get sessions that are old and not whitelisted from the registry
old_sessions_to_check = self.log_registry.get_old_non_whitelisted_sessions(cutoff_time) old_sessions_to_check = self.log_registry.get_old_non_whitelisted_sessions(cutoff_time)
# Prune sessions if their size is less than 2048 bytes # Prune sessions if their size is less than threshold
for session_info in old_sessions_to_check: for session_info in old_sessions_to_check:
session_id = session_info['session_id'] session_id = session_info['session_id']
session_path = session_info['path'] session_path = session_info['path']
@@ -51,8 +51,8 @@ class LogPruner:
total_size += entry.stat().st_size total_size += entry.stat().st_size
except OSError: except OSError:
continue continue
# Prune if the total size is less than 2KB (2048 bytes) # Prune if the total size is less than threshold
if total_size < 2048: # 2KB if total_size < (min_size_kb * 1024):
try: try:
shutil.rmtree(session_path) shutil.rmtree(session_path)
# Also remove from registry to keep it in sync # Also remove from registry to keep it in sync