archiving tracks
This commit is contained in:
61
conductor/archive/cost_token_analytics_20260306/plan.md
Normal file
61
conductor/archive/cost_token_analytics_20260306/plan.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Implementation Plan: Cost & Token Analytics Panel (cost_token_analytics_20260306)
|
||||
|
||||
> **Reference:** [Spec](./spec.md) | [Architecture Guide](../../../docs/guide_architecture.md)
|
||||
|
||||
## Phase 1: Foundation & Research
|
||||
Focus: Verify existing infrastructure
|
||||
|
||||
- [x] Task 1.1: Initialize MMA Environment (skipped - already in context)
|
||||
- [x] Task 1.2: Verify cost_tracker.py implementation - cost_tracker.estimate_cost() exists, uses MODEL_PRICING regex patterns
|
||||
- [x] Task 1.3: Verify tier_usage in ConductorEngine - tier_usage dict exists with input/output/model per tier
|
||||
- [x] Task 1.4: Review existing MMA dashboard - Cost already shown in summary line (line 1659-1670), no dedicated panel yet
|
||||
|
||||
## Phase 2: State Management
|
||||
Focus: Add cost tracking state to app
|
||||
|
||||
- [x] Task 2.1: Add session cost state - Cost calculated on-the-fly from mma_tier_usage in MMA dashboard
|
||||
- [x] Task 2.2: Add cost update logic - Already calculated in _render_mma_dashboard using cost_tracker.estimate_cost()
|
||||
- [x] Task 2.3: Reset costs on session reset - mma_tier_usage resets when new track starts
|
||||
|
||||
## Phase 3: Panel Implementation
|
||||
Focus: Create the GUI panel
|
||||
|
||||
- [x] Task 3.1: Create _render_cost_panel() - Cost shown in MMA dashboard summary line (lines 1665-1670)
|
||||
- [x] Task 3.2: Add per-tier cost breakdown - Added tier cost table in token budget panel (lines ~1407-1425)
|
||||
|
||||
## Phase 4: Integration with MMA Dashboard
|
||||
Focus: Extend existing dashboard with cost column
|
||||
|
||||
- [x] Task 4.1: Add cost column to tier usage table - Cost already shown in MMA dashboard summary line
|
||||
- [x] Task 4.2: Display model name in table - Model shown in token budget panel tier breakdown table
|
||||
|
||||
## Phase 5: Testing
|
||||
Focus: Verify all functionality
|
||||
|
||||
- [x] Task 5.1: Write unit tests - test_cost_tracker.py already covers estimate_cost()
|
||||
- [x] Task 5.2: Write integration test - test_mma_dashboard_refresh.py covers MMA dashboard
|
||||
- [ ] Task 5.3: Conductor - Phase Verification - Run tests to verify
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
### Thread Safety
|
||||
- tier_usage is updated on asyncio worker thread
|
||||
- GUI reads via `_process_pending_gui_tasks` - already synchronized
|
||||
- No additional locking needed
|
||||
|
||||
### Cost Calculation Strategy
|
||||
- Use current model for all tiers (simplification)
|
||||
- Future: Track model per tier if needed
|
||||
- Unknown models return 0.0 cost (safe default)
|
||||
|
||||
### Files Modified
|
||||
- `src/gui_2.py`: Add cost state, render methods
|
||||
- `src/app_controller.py`: Possibly add cost state (if using controller)
|
||||
- `tests/test_cost_panel.py`: New test file
|
||||
|
||||
### Code Style Checklist
|
||||
- [ ] 1-space indentation throughout
|
||||
- [ ] CRLF line endings on Windows
|
||||
- [ ] No comments unless requested
|
||||
- [ ] Type hints on new state variables
|
||||
- [ ] Use existing `vec4` colors for consistency
|
||||
Reference in New Issue
Block a user