Private
Public Access
Spec + plan + metadata + state for the ImGui Test Engine integration. Enables the test engine via --enable-test-engine flag, bridges it through the existing API hooks layer (4 new /api/test_engine/* endpoints + 4 new ApiHookClient methods), and proves the full bridge with a smoke test. The test engine enables high-fidelity simulation of docking, window focus, panel visibility, drag-and-drop, and keyboard input that the current Hook API cannot express. The API hooks remain the single communication boundary; the test engine is integrated behind it. This is Track 1 of a 3-track campaign: Track 1: bridge + smoke test (this track) Track 2: migrate docking/focus/panel tests Track 3: visual regression via screenshot capture Key risk: R1 (GIL-transfer crash) mitigated by Phase 1 Task 1.4 manual verification checkpoint. Parallel-safe against the running tier2 taxonomy branch and the enforcement_gap_closure track (zero file overlap).
64 lines
4.2 KiB
TOML
64 lines
4.2 KiB
TOML
# Track state for test_engine_integration_20260627
|
|
# Initialized by Tier 1 Orchestrator on 2026-06-27.
|
|
# Implementation delegated to Tier 2 (autonomous) or Tier 3 worker dispatch.
|
|
# This is Track 1 of 3 in the Test Engine Campaign.
|
|
|
|
[meta]
|
|
track_id = "test_engine_integration_20260627"
|
|
name = "ImGui Test Engine Integration (Bridge via API Hooks)"
|
|
status = "active"
|
|
current_phase = 0
|
|
last_updated = "2026-06-27"
|
|
|
|
[blocked_by]
|
|
# None. Parallel-safe against tier2/post_module_taxonomy_de_cruft_20260627
|
|
# (zero file overlap: this track touches sloppy.py, gui_2.py:641-700,
|
|
# api_hooks.py, api_hook_client.py, conftest.py — none of which Tier 2 touches)
|
|
# and enforcement_gap_closure_20260627 (scripts/audit_*, python.md — zero overlap).
|
|
|
|
[blocks]
|
|
test_engine_docking_tests = "planned (Track 2 of 3 campaign)"
|
|
test_engine_capture_regression = "planned (Track 3 of 3 campaign)"
|
|
|
|
[phases]
|
|
phase_1 = { status = "pending", checkpointsha = "", name = "Enable the Test Engine in the App (CLI flag + runner_params + register_tests callback)" }
|
|
phase_2 = { status = "pending", checkpointsha = "", name = "Build the API Hooks Bridge (4 endpoints + 4 client methods)" }
|
|
phase_3 = { status = "pending", checkpointsha = "", name = "Live_gui Fixture + Full Smoke Test" }
|
|
phase_4 = { status = "pending", checkpointsha = "", name = "End-of-Track Report + State Update + User Sign-off" }
|
|
|
|
[tasks]
|
|
# Phase 1: enable the engine
|
|
t1_1 = { status = "pending", commit_sha = "", description = "Write failing test for --enable-test-engine flag + engine activation (Red phase)" }
|
|
t1_2 = { status = "pending", commit_sha = "", description = "Add --enable-test-engine CLI flag to sloppy.py + test_engine_enabled field to AppController" }
|
|
t1_3 = { status = "pending", commit_sha = "", description = "Enable engine in App.run() (runner_params.use_imgui_test_engine = True + callbacks.register_tests = self._register_imgui_tests) + add _register_imgui_tests method with smoke test" }
|
|
t1_4 = { status = "pending", commit_sha = "", description = "Manual verification: run sloppy.py --enable-test-engine locally; confirm engine activates + no GIL-transfer crash" }
|
|
# Phase 2: build the bridge
|
|
t2_1 = { status = "pending", commit_sha = "", description = "Write failing tests for queue_test + wait_for_test_results + get_test_results (Red phase)" }
|
|
t2_2 = { status = "pending", commit_sha = "", description = "Add 4 /api/test_engine/* endpoints to HookServer (queue, status, results, abort)" }
|
|
t2_3 = { status = "pending", commit_sha = "", description = "Add 4 new methods to ApiHookClient (queue_test, get_test_status, get_test_results, wait_for_test_results)" }
|
|
t2_4 = { status = "pending", commit_sha = "", description = "Run Phase 2 tests (Green phase); verify all 3 smoke tests pass" }
|
|
# Phase 3: live_gui fixture + full smoke test
|
|
t3_1 = { status = "pending", commit_sha = "", description = "Update live_gui fixture (conftest.py:792) to pass --enable-test-engine" }
|
|
t3_2 = { status = "pending", commit_sha = "", description = "Run full smoke test + regression batch (Green phase)" }
|
|
# Phase 4: end-of-track
|
|
t4_1 = { status = "pending", commit_sha = "", description = "Write docs/reports/TRACK_COMPLETION_test_engine_integration_20260627.md" }
|
|
t4_2 = { status = "pending", commit_sha = "", description = "Update conductor/tracks.md + chronology.md + state.toml -> status='completed'" }
|
|
t4_3 = { status = "pending", commit_sha = "", description = "Conductor - User Manual Verification (PAUSE for user sign-off)" }
|
|
|
|
[verification]
|
|
phase_1_complete = false
|
|
phase_2_complete = false
|
|
phase_3_complete = false
|
|
phase_4_complete = false
|
|
engine_activates_without_crash = false
|
|
smoke_test_passes = false
|
|
no_live_gui_regression = false
|
|
|
|
[campaign_context]
|
|
# This is Track 1 of 3. The campaign enables high-fidelity UI simulation via the
|
|
# Dear ImGui Test Engine, bridged through the existing API hooks layer.
|
|
campaign_name = "Test Engine Campaign"
|
|
track_1 = "test_engine_integration_20260627 (THIS; bridge + smoke test)"
|
|
track_2 = "test_engine_docking_tests (migrate docking/focus/panel tests)"
|
|
track_3 = "test_engine_capture_regression (visual regression via screenshot capture)"
|
|
key_risk = "R1: GIL-transfer crash if the app's thread layout doesn't work with the engine's scenario thread (mitigated by Phase 1 Task 1.4 manual checkpoint)" |