adjustments + new tracks + tasks.md reduction of usage
This commit is contained in:
15
conductor/tracks/gui_path_config_20260308/metadata.json
Normal file
15
conductor/tracks/gui_path_config_20260308/metadata.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"track_id": "gui_path_config_20260308",
|
||||
"title": "GUI Path Configuration in Context Hub",
|
||||
"status": "pending",
|
||||
"created": "2026-03-08",
|
||||
"priority": "high",
|
||||
"owner": "tier2-tech-lead",
|
||||
"description": "Add path configuration UI to Context Hub. Allow users to view and edit configurable paths (conductor, logs, scripts) directly from the GUI.",
|
||||
"dependencies": ["conductor_path_configurable_20260306"],
|
||||
"out_of_scope": [
|
||||
"Per-project path configuration",
|
||||
"Runtime path switching without restart",
|
||||
"Path validation"
|
||||
]
|
||||
}
|
||||
88
conductor/tracks/gui_path_config_20260308/plan.md
Normal file
88
conductor/tracks/gui_path_config_20260308/plan.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Plan: GUI Path Configuration in Context Hub
|
||||
|
||||
## Phase 1: Path Info Display
|
||||
Focus: Show current path resolution in GUI
|
||||
|
||||
- [ ] Task 1.1: Add path info functions to paths.py
|
||||
- WHERE: src/paths.py
|
||||
- WHAT: Add functions to get path resolution source (default/env/config)
|
||||
- HOW: Return tuple of (resolved_path, source)
|
||||
- SAFETY: New functions, no modifications
|
||||
|
||||
- [ ] Task 1.2: Create path display helper
|
||||
- WHERE: src/paths.py
|
||||
- WHAT: Function to get all paths with resolution info
|
||||
- HOW: Returns dict of path_name -> (resolved, source)
|
||||
- SAFETY: New function
|
||||
|
||||
## Phase 2: Context Hub Panel
|
||||
Focus: Add Path Configuration panel to GUI
|
||||
|
||||
- [ ] Task 2.1: Add Paths tab to Context Hub
|
||||
- WHERE: src/gui_2.py (Context Hub section)
|
||||
- WHAT: New tab/section for path configuration
|
||||
- HOW: Add ImGui tab item, follow existing panel patterns
|
||||
- SAFETY: New panel, no modifications to existing
|
||||
|
||||
- [ ] Task 2.2: Display current paths
|
||||
- WHERE: src/gui_2.py (new paths panel)
|
||||
- WHAT: Show resolved paths and their sources
|
||||
- HOW: Call paths.py functions, display in read-only text
|
||||
- SAFETY: New code
|
||||
|
||||
- [ ] Task 2.3: Add path text inputs
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: Editable text inputs for each path
|
||||
- HOW: ImGui input_text for conductor_dir, logs_dir, scripts_dir
|
||||
- SAFETY: New code
|
||||
|
||||
- [ ] Task 2.4: Add browse buttons
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: File dialog buttons to browse for directories
|
||||
- HOW: Use existing file dialog patterns in gui_2.py
|
||||
- SAFETY: New code
|
||||
|
||||
## Phase 3: Persistence
|
||||
Focus: Save path changes to config.toml
|
||||
|
||||
- [ ] Task 3.1: Add config write function
|
||||
- WHERE: src/gui_2.py or new utility
|
||||
- WHAT: Write [paths] section to config.toml
|
||||
- HOW: Read existing config, update paths section, write back
|
||||
- SAFETY: Backup before write, handle errors
|
||||
|
||||
- [ ] Task 3.2: Add Apply button
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: Button to save changes
|
||||
- HOW: Call config write function, show success/error message
|
||||
- SAFETY: Confirmation dialog
|
||||
|
||||
- [ ] Task 3.3: Add Reset button
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: Reset paths to defaults
|
||||
- HOW: Clear custom values, show confirmation
|
||||
- SAFETY: Confirmation dialog
|
||||
|
||||
## Phase 4: UX Polish
|
||||
Focus: Improve user experience
|
||||
|
||||
- [ ] Task 4.1: Add restart warning
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: Show warning that changes require restart
|
||||
- HOW: Text label after Apply
|
||||
- SAFETY: New code
|
||||
|
||||
- [ ] Task 4.2: Add tooltips
|
||||
- WHERE: src/gui_2.py (paths panel)
|
||||
- WHAT: Explain each path and resolution order
|
||||
- HOW: ImGui set_tooltip on hover
|
||||
- SAFETY: New code
|
||||
|
||||
## Phase 5: Tests
|
||||
Focus: Verify GUI path configuration
|
||||
|
||||
- [ ] Task 5.1: Test path display
|
||||
- WHERE: tests/test_gui_paths.py (new file)
|
||||
- WHAT: Verify paths panel shows correct values
|
||||
- HOW: Mock paths.py, verify display
|
||||
- SAFETY: New test file
|
||||
72
conductor/tracks/gui_path_config_20260308/spec.md
Normal file
72
conductor/tracks/gui_path_config_20260308/spec.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Track Specification: GUI Path Configuration in Context Hub
|
||||
|
||||
## Overview
|
||||
|
||||
Add path configuration UI to the Context Hub in the GUI. Allow users to view and edit configurable paths (conductor, logs, scripts) directly from the application without manually editing config.toml or environment variables.
|
||||
|
||||
## Current State Audit
|
||||
|
||||
### Already Implemented
|
||||
- `src/paths.py`: Path resolution with env var and config.toml support
|
||||
- `config.toml [paths]` section: Global path configuration
|
||||
- Context Hub panel in GUI (`gui_2.py`)
|
||||
|
||||
### Gaps to Fill
|
||||
- No GUI to view/edit paths
|
||||
- Users must edit config.toml manually
|
||||
- No visibility into current path resolution
|
||||
|
||||
## Goals
|
||||
|
||||
1. Add Path Configuration panel to Context Hub
|
||||
2. Display current resolved paths (read-only)
|
||||
3. Allow editing paths via text inputs
|
||||
4. Persist changes to config.toml
|
||||
5. Show path resolution source (default/env/config)
|
||||
|
||||
## Functional Requirements
|
||||
|
||||
### UI Panel Location
|
||||
- Context Hub → "Paths" tab/section
|
||||
|
||||
### UI Elements
|
||||
| Element | Type | Description |
|
||||
|---------|------|-------------|
|
||||
| Conductor Dir | Text input + browse button | Path to conductor directory |
|
||||
| Logs Dir | Text input + browse button | Path to logs directory |
|
||||
| Scripts Dir | Text input + browse button | Path to scripts directory |
|
||||
| Resolution Info | Label | Shows source: "default" / "env:SLOP_*" / "config.toml" |
|
||||
| Apply Button | Button | Save changes to config.toml |
|
||||
| Reset Button | Button | Reset to defaults |
|
||||
|
||||
### Path Resolution Display
|
||||
Show how each path is resolved:
|
||||
```
|
||||
Conductor: /path/to/custom (config.toml)
|
||||
Logs: ./logs/sessions (default)
|
||||
Scripts: /env/path (env: SLOP_SCRIPTS_DIR)
|
||||
```
|
||||
|
||||
### Persistence
|
||||
- Changes written to `config.toml [paths]` section
|
||||
- App restart required for changes to take effect (show warning)
|
||||
- Backup existing config.toml before writing
|
||||
|
||||
## Architecture Reference
|
||||
|
||||
- **Paths module**: `src/paths.py` - path resolution functions
|
||||
- **Context Hub**: `gui_2.py` - existing Context Hub panel
|
||||
- **Config I/O**: `project_manager.py` - TOML read/write utilities
|
||||
- **Config location**: `paths.get_config_path()` - config file location
|
||||
|
||||
## Out of Scope
|
||||
- Per-project path configuration (separate track)
|
||||
- Runtime path switching without restart
|
||||
- Path validation/creation
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
- Follow existing GUI code style (ImGui/Dear PyGui patterns)
|
||||
- Show confirmation dialog before writing config
|
||||
- Display current resolved paths on panel open
|
||||
- Handle missing config.toml gracefully (create new section)
|
||||
Reference in New Issue
Block a user