From 8ba5ed4d90d58c6f26d36a14df6648125a7463e9 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 23 Feb 2026 15:43:32 -0500 Subject: [PATCH] chore(conductor): Add new track 'Live GUI Testing Infrastructure' --- conductor/tracks.md | 5 ++++ .../tracks/live_gui_testing_20260223/index.md | 5 ++++ .../live_gui_testing_20260223/metadata.json | 8 ++++++ .../tracks/live_gui_testing_20260223/plan.md | 24 ++++++++++++++++++ .../tracks/live_gui_testing_20260223/spec.md | 25 +++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 conductor/tracks/live_gui_testing_20260223/index.md create mode 100644 conductor/tracks/live_gui_testing_20260223/metadata.json create mode 100644 conductor/tracks/live_gui_testing_20260223/plan.md create mode 100644 conductor/tracks/live_gui_testing_20260223/spec.md diff --git a/conductor/tracks.md b/conductor/tracks.md index f8ecc38..26626db 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -12,5 +12,10 @@ This file tracks all major tracks for the project. Each track has its own detail - [x] **Track: Review vendor api usage in regards to conservative context handling** *Link: [./tracks/api_metrics_20260223/](./tracks/api_metrics_20260223/)* +--- + +- [ ] **Track: Live GUI Testing Infrastructure** +*Link: [./tracks/live_gui_testing_20260223/](./tracks/live_gui_testing_20260223/)* + diff --git a/conductor/tracks/live_gui_testing_20260223/index.md b/conductor/tracks/live_gui_testing_20260223/index.md new file mode 100644 index 0000000..f3d86a8 --- /dev/null +++ b/conductor/tracks/live_gui_testing_20260223/index.md @@ -0,0 +1,5 @@ +# Track live_gui_testing_20260223 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) diff --git a/conductor/tracks/live_gui_testing_20260223/metadata.json b/conductor/tracks/live_gui_testing_20260223/metadata.json new file mode 100644 index 0000000..62e4903 --- /dev/null +++ b/conductor/tracks/live_gui_testing_20260223/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "live_gui_testing_20260223", + "type": "chore", + "status": "new", + "created_at": "2026-02-23T15:43:00Z", + "updated_at": "2026-02-23T15:43:00Z", + "description": "Update all tests to use a live running gui.py with --enable-test-hooks for real-time state and metrics verification." +} diff --git a/conductor/tracks/live_gui_testing_20260223/plan.md b/conductor/tracks/live_gui_testing_20260223/plan.md new file mode 100644 index 0000000..5d78e97 --- /dev/null +++ b/conductor/tracks/live_gui_testing_20260223/plan.md @@ -0,0 +1,24 @@ +# Implementation Plan: Live GUI Testing Infrastructure + +## Phase 1: Infrastructure & Core Utilities +Establish the mechanism for managing the live GUI process and providing it to tests. + +- [ ] Task: Create `tests/conftest.py` with a session-scoped fixture to manage the `gui.py --enable-test-hooks` process. +- [ ] Task: Enhance `api_hook_client.py` with robust connection retries and health checks to handle GUI startup time. +- [ ] Task: Update `conductor/workflow.md` to formally document the "Live GUI Testing" requirement and the use of the `--enable-test-hooks` flag. +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Infrastructure & Core Utilities' (Protocol in workflow.md) + +## Phase 2: Test Suite Migration +Migrate existing tests to use the live GUI fixture and API hooks. + +- [ ] Task: Refactor `tests/test_api_hook_client.py` and `tests/test_conductor_api_hook_integration.py` to use the live GUI fixture. +- [ ] Task: Refactor GUI performance tests (`tests/test_gui_performance_requirements.py`, `tests/test_gui_stress_performance.py`) to verify real metrics (FPS, memory) via hooks. +- [ ] Task: Audit and update all remaining tests in `tests/` to ensure they either use the live server or are explicitly marked as pure unit tests. +- [ ] Task: Conductor - User Manual Verification 'Phase 2: Test Suite Migration' (Protocol in workflow.md) + +## Phase 3: Conductor Integration & Validation +Ensure the Conductor framework itself supports and enforces this new testing paradigm. + +- [ ] Task: Verify that new track creation generates plans that include specific API hook verification tasks. +- [ ] Task: Perform a full test run using `run_tests.py` (or equivalent) to ensure 100% pass rate in the new environment. +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Conductor Integration & Validation' (Protocol in workflow.md) diff --git a/conductor/tracks/live_gui_testing_20260223/spec.md b/conductor/tracks/live_gui_testing_20260223/spec.md new file mode 100644 index 0000000..6a5d60a --- /dev/null +++ b/conductor/tracks/live_gui_testing_20260223/spec.md @@ -0,0 +1,25 @@ +# Specification: Live GUI Testing Infrastructure + +## Overview +Update the testing suite to ensure all tests (especially GUI-related and integration tests) communicate with a live running instance of `gui.py` started with the `--enable-test-hooks` argument. This ensures that tests can verify the actual application state and metrics via the built-in API hooks. + +## Functional Requirements +- **Server-Based Testing:** All tests must be updated to interact with the application through its REST API hooks rather than mocking internal components where live verification is possible. +- **Automated GUI Management:** Implement a robust mechanism (preferably a pytest fixture) to start `gui.py --enable-test-hooks` before test execution and ensure it is cleanly terminated after tests complete. +- **Hook Client Integration:** Ensure `api_hook_client.py` is the primary interface for tests to communicate with the running GUI. +- **Documentation Alignment:** Update `conductor/workflow.md` to reflect the requirement for live testing and API hook verification. + +## Non-Functional Requirements +- **Reliability:** The process of starting and stopping the GUI must be stable and not leave orphaned processes. +- **Speed:** The setup/teardown of the live GUI should be optimized to minimize test suite overhead. +- **Observability:** Tests should log communication with the API hooks for easier debugging. + +## Acceptance Criteria +- [ ] All tests in the `tests/` directory pass when executed against a live `gui.py` instance. +- [ ] New track creation (e.g., via `/conductor:newTrack`) generates plans that include specific API hook verification tasks. +- [ ] `conductor/workflow.md` accurately describes the live testing protocol. +- [ ] Real-time UI metrics (FPS, CPU, etc.) are successfully retrieved and verified in at least one performance test. + +## Out of Scope +- Rewriting the entire GUI framework. +- Implementing new API hooks not required for existing test verification.