Scope
Tier 8 of the post-#784 test-suite overhaul. Covers test-running infrastructure under tools/devgui/:
tools/devgui/server.py — Dev GUI that auto-discovers test files and runs them via subprocess (port 9090, python tools/devgui/server.py)
tools/devgui/build_runner.py — wraps build_release.ps1
tools/devgui/test_registry.py — test-discovery helper
tools/devgui/spa/ — Dev GUI SPA assets
The Dev GUI lives next to the orchestrator; it's used to run individual test files and view results in a browser. Post-PR-7, the auto-discovered test list shrinks (multiple test files delete) and several files rename or migrate. The Dev GUI must reflect the new layout without manual config edits.
Architectural ground rules
- The Dev GUI auto-discovers test files via filesystem scan (
tests/test_*.py, tests/regression/*.py, tests/aim/test_*.py). After PR-7's deletions, the scan should automatically reflect the new state.
- If
test_registry.py carries a hardcoded test list (e.g. for grouping or labelling), entries pointing at deleted files must be removed.
- The Dev GUI also runs build commands (
build_release.ps1, etc.); those are independent of the aim/cal rewrite.
Inventory
KEEP
| File |
Concern |
PR gate |
Action |
tools/devgui/server.py |
Dev GUI HTTP server |
dependent on test_registry |
KEEP. Verify auto-discovery still works after PR-7 deletes ~25 cal-test files. |
tools/devgui/build_runner.py |
Build runner wrapper |
independent |
KEEP. |
tools/devgui/spa/ |
Dev GUI SPA assets |
independent |
KEEP. |
REWRITE
| File / subsection |
Old target |
New target |
New shape |
PR gate |
Action |
tools/devgui/test_registry.py § hardcoded test list (if any) |
List entries for test_coverage_math.py, test_mover_calibration.py, test_mover_inverted.py, test_sphere_model.py, test_sphere_model-DAVEBOOK-5.py, test_calibrate_aim.py, test_calibrate_flash.py, test_calibrate_live.py, test_calibration_synthetic.py, test_battleship_camera_visible.py, test_battleship_seed_grid.py, test_advanced_scan_recommend.py, test_realspace_cal.py, test_settle_sweep.py, test_surface_aware_cal.py, test_target_selection.py, test_live_scan_aim.py, test_calibration_lock.py (if rewritten — see Tier 1), test_cal_home_anchor.py, test_cal_orphan_recovery.py, test_cal_trace.py, test_cal_trace_v2.py |
New entries for tests/aim/test_park.py, tests/aim/test_save_home_persistence.py, tests/regression/test_sphere_corpus.py |
Updated registry |
PR-7 |
REWRITE the registry alongside PR-7 deletions. |
DELETE
None — no Dev GUI module is itself on the deletion track.
ADD
| New entry |
Purpose |
Suggested location |
PR gate |
| Self-test for the Dev GUI's auto-discovery |
Verify the registry rebuilds itself when test files are added/removed (smoke test against a fixture directory). |
tools/devgui/tests/test_discovery.py (NEW) |
independent |
| Sphere-corpus runner shortcut |
One-click run for tools/sphere_corpus_runner.py (Tier 7 deliverable) from the Dev GUI homepage. |
tools/devgui/spa/ UI button + handler in server.py |
PR-7 |
| Save-Home wizard end-to-end test runner shortcut |
One-click run for the new tests/test_save_home_wizard.py Playwright test. |
tools/devgui/spa/ |
PR-6 |
PR sequencing
- KEEP rows independent.
- REWRITE row lands in PR-7 alongside the cal-test deletions.
- ADD rows land with the corresponding new test files.
Acceptance
- After PR-7,
python tools/devgui/server.py starts cleanly, navigates to http://localhost:9090, and auto-discovers the post-deletion test set without errors or stale entries.
- The Dev GUI runs the new sphere-corpus runner via a one-click shortcut.
- No registry entry points at a deleted file.
Open questions for human review
- Does
tools/devgui/test_registry.py use auto-discovery (glob('tests/test_*.py')) or a hardcoded list? Determines whether REWRITE is a code edit or a no-op. Need a head -50 tools/devgui/test_registry.py during execution.
- Is the Dev GUI used in CI (e.g. headless test orchestration) or only for manual dev-time runs? Determines the urgency of the post-PR-7 verification.
Cross-references
Scope
Tier 8 of the post-#784 test-suite overhaul. Covers test-running infrastructure under
tools/devgui/:tools/devgui/server.py— Dev GUI that auto-discovers test files and runs them via subprocess (port 9090,python tools/devgui/server.py)tools/devgui/build_runner.py— wrapsbuild_release.ps1tools/devgui/test_registry.py— test-discovery helpertools/devgui/spa/— Dev GUI SPA assetsThe Dev GUI lives next to the orchestrator; it's used to run individual test files and view results in a browser. Post-PR-7, the auto-discovered test list shrinks (multiple test files delete) and several files rename or migrate. The Dev GUI must reflect the new layout without manual config edits.
Architectural ground rules
tests/test_*.py,tests/regression/*.py,tests/aim/test_*.py). After PR-7's deletions, the scan should automatically reflect the new state.test_registry.pycarries a hardcoded test list (e.g. for grouping or labelling), entries pointing at deleted files must be removed.build_release.ps1, etc.); those are independent of the aim/cal rewrite.Inventory
KEEP
tools/devgui/server.pytools/devgui/build_runner.pytools/devgui/spa/REWRITE
tools/devgui/test_registry.py§ hardcoded test list (if any)test_coverage_math.py,test_mover_calibration.py,test_mover_inverted.py,test_sphere_model.py,test_sphere_model-DAVEBOOK-5.py,test_calibrate_aim.py,test_calibrate_flash.py,test_calibrate_live.py,test_calibration_synthetic.py,test_battleship_camera_visible.py,test_battleship_seed_grid.py,test_advanced_scan_recommend.py,test_realspace_cal.py,test_settle_sweep.py,test_surface_aware_cal.py,test_target_selection.py,test_live_scan_aim.py,test_calibration_lock.py(if rewritten — see Tier 1),test_cal_home_anchor.py,test_cal_orphan_recovery.py,test_cal_trace.py,test_cal_trace_v2.pytests/aim/test_park.py,tests/aim/test_save_home_persistence.py,tests/regression/test_sphere_corpus.pyDELETE
None — no Dev GUI module is itself on the deletion track.
ADD
tools/devgui/tests/test_discovery.py(NEW)tools/sphere_corpus_runner.py(Tier 7 deliverable) from the Dev GUI homepage.tools/devgui/spa/UI button + handler inserver.pytests/test_save_home_wizard.pyPlaywright test.tools/devgui/spa/PR sequencing
Acceptance
python tools/devgui/server.pystarts cleanly, navigates tohttp://localhost:9090, and auto-discovers the post-deletion test set without errors or stale entries.Open questions for human review
tools/devgui/test_registry.pyuse auto-discovery (glob('tests/test_*.py')) or a hardcoded list? Determines whether REWRITE is a code edit or a no-op. Need ahead -50 tools/devgui/test_registry.pyduring execution.Cross-references
project_devgui.md.