chore(conductor): Add new track 'GUI 2.0 Feature Parity and Migration'
This commit is contained in:
@@ -27,3 +27,8 @@ This file tracks all major tracks for the project. Each track has its own detail
|
|||||||
|
|
||||||
- [ ] **Track: Update ./docs/* & ./Readme.md, review ./MainContext.md significance (should we keep it..).**
|
- [ ] **Track: Update ./docs/* & ./Readme.md, review ./MainContext.md significance (should we keep it..).**
|
||||||
*Link: [./tracks/documentation_refresh_20260224/](./tracks/documentation_refresh_20260224/)*
|
*Link: [./tracks/documentation_refresh_20260224/](./tracks/documentation_refresh_20260224/)*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- [ ] **Track: Investigate differences left between gui.py and gui_2.py. Needs to reach full parity, so we can sunset guy.py**
|
||||||
|
*Link: [./tracks/gui2_parity_20260224/](./tracks/gui2_parity_20260224/)*
|
||||||
|
|||||||
5
conductor/tracks/gui2_parity_20260224/index.md
Normal file
5
conductor/tracks/gui2_parity_20260224/index.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Track gui2_parity_20260224 Context
|
||||||
|
|
||||||
|
- [Specification](./spec.md)
|
||||||
|
- [Implementation Plan](./plan.md)
|
||||||
|
- [Metadata](./metadata.json)
|
||||||
8
conductor/tracks/gui2_parity_20260224/metadata.json
Normal file
8
conductor/tracks/gui2_parity_20260224/metadata.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"track_id": "gui2_parity_20260224",
|
||||||
|
"type": "feature",
|
||||||
|
"status": "new",
|
||||||
|
"created_at": "2026-02-24T18:38:00Z",
|
||||||
|
"updated_at": "2026-02-24T18:38:00Z",
|
||||||
|
"description": "Investigate differences left between gui.py and gui_2.py. Needs to reach full parity, so we can sunset guy.py"
|
||||||
|
}
|
||||||
40
conductor/tracks/gui2_parity_20260224/plan.md
Normal file
40
conductor/tracks/gui2_parity_20260224/plan.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Implementation Plan: GUI 2.0 Feature Parity and Migration
|
||||||
|
|
||||||
|
This plan follows the project's standard task workflow to ensure full feature parity and a stable transition to the ImGui-based `gui_2.py`.
|
||||||
|
|
||||||
|
## Phase 1: Research and Gap Analysis
|
||||||
|
Identify and document the exact differences between `gui.py` and `gui_2.py`.
|
||||||
|
|
||||||
|
- [ ] Task: Audit `gui.py` and `gui_2.py` side-by-side to document specific visual and functional gaps.
|
||||||
|
- [ ] Task: Map existing `EventEmitter` and `ApiHookClient` integrations in `gui.py` to `gui_2.py`.
|
||||||
|
- [ ] Task: Write failing tests in `tests/test_gui2_parity.py` that identify missing UI components or broken hooks in `gui_2.py`.
|
||||||
|
- [ ] Task: Verify failing parity tests.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Research and Gap Analysis' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 2: Visual and Functional Parity Implementation
|
||||||
|
Address all identified gaps and ensure functional equivalence.
|
||||||
|
|
||||||
|
- [ ] Task: Implement missing panels and UX nuances (text sizing, font rendering) in `gui_2.py`.
|
||||||
|
- [ ] Task: Complete integration of all `EventEmitter` hooks in `gui_2.py` to match `gui.py`.
|
||||||
|
- [ ] Task: Verify functional parity by running `tests/test_gui2_events.py` and `tests/test_gui2_layout.py`.
|
||||||
|
- [ ] Task: Address any identified regressions or missing interactive elements.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Visual and Functional Parity Implementation' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 3: Performance Optimization and Final Validation
|
||||||
|
Ensure `gui_2.py` meets performance requirements and passes all quality gates.
|
||||||
|
|
||||||
|
- [ ] Task: Conduct performance benchmarking (FPS, CPU, Frame Time) for both `gui.py` and `gui_2.py`.
|
||||||
|
- [ ] Task: Optimize rendering and docking logic in `gui_2.py` if performance targets are not met.
|
||||||
|
- [ ] Task: Verify performance parity using `tests/test_gui2_performance.py`.
|
||||||
|
- [ ] Task: Run full suite of automated GUI tests with `live_gui` fixture on `gui_2.py`.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Performance Optimization and Final Validation' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 4: Deprecation and Cleanup
|
||||||
|
Finalize the migration and decommission the original `gui.py`.
|
||||||
|
|
||||||
|
- [ ] Task: Rename `gui.py` to `gui_legacy.py`.
|
||||||
|
- [ ] Task: Update project entry point or documentation to point to `gui_2.py` as the primary interface.
|
||||||
|
- [ ] Task: Final project-wide link validation and documentation update.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Deprecation and Cleanup' (Protocol in workflow.md)
|
||||||
|
---
|
||||||
|
[checkpoint: (SHA will be recorded here)]
|
||||||
29
conductor/tracks/gui2_parity_20260224/spec.md
Normal file
29
conductor/tracks/gui2_parity_20260224/spec.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Specification: GUI 2.0 Feature Parity and Migration
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
The project is transitioning from `gui.py` (Dear PyGui-based) to `gui_2.py` (ImGui Bundle-based) to leverage advanced multi-viewport and docking features not natively supported by Dear PyGui. This track focuses on achieving full visual, functional, and performance parity between the two implementations, ultimately enabling the decommissioning of the original `gui.py`.
|
||||||
|
|
||||||
|
## Functional Requirements
|
||||||
|
1. **Visual Parity:**
|
||||||
|
- Ensure all panels, layouts, and interactive elements in `gui_2.py` match the established UX of `gui.py`.
|
||||||
|
- Address nuances in UX, such as text panel sizing and font rendering, to ensure a seamless transition for existing users.
|
||||||
|
2. **Functional Parity:**
|
||||||
|
- Verify that all backend hooks (API metrics, context management, MCP tools, shell execution) work identically in `gui_2.py`.
|
||||||
|
- Ensure all interactive controls (buttons, inputs, dropdowns) trigger the correct application state changes.
|
||||||
|
3. **Performance Parity:**
|
||||||
|
- Benchmark `gui_2.py` against `gui.py` for FPS, frame time, and CPU/memory usage.
|
||||||
|
- Optimize `gui_2.py` to meet or exceed the performance metrics of the original implementation.
|
||||||
|
|
||||||
|
## Non-Functional Requirements
|
||||||
|
- **Multi-Viewport Stability:** Ensure the ImGui-bundle implementation is stable across multiple windows and docking configurations.
|
||||||
|
- **Deprecation Workflow:** Establish a clear path for renaming `gui.py` to `gui_legacy.py` for a transition period.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
- [ ] `gui_2.py` successfully passes the full suite of GUI automated verification tests (e.g., `test_gui2_events.py`, `test_gui2_layout.py`).
|
||||||
|
- [ ] A side-by-side audit confirms visual and functional parity for all core Hub panels.
|
||||||
|
- [ ] Performance benchmarks show `gui_2.py` is within +/- 5% of `gui.py` metrics.
|
||||||
|
- [ ] `gui.py` is renamed to `gui_legacy.py`.
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
- Introducing new UI features or backend capabilities not present in `gui.py`.
|
||||||
|
- Modifying the core `EventEmitter` or `AiClient` logic (unless required for GUI hook integration).
|
||||||
Reference in New Issue
Block a user