conductor(state): default_layout_install_followup_20260629 all phases complete + tracks.md row + parent state errata ref

This commit is contained in:
ed
2026-06-29 19:55:45 -04:00
parent 5e53d477fc
commit 4bf5ecd618
4 changed files with 56 additions and 89 deletions
+2 -1
View File
@@ -919,4 +919,5 @@ The 3-step convention is documented here because this is where the existing "Edi
| # | Priority | Track | Status | Scope |
|---|----------|-------|--------|-------|
| 36 | A (UX / bugfix) | [Default Layout Install + Hardcoded Path Cleanup + layouts/ Stack](#track-default-layout-install-2026-06-29) | spec ✓, plan ✓, metadata ✓, state ✓, **shipped 2026-06-29** by Tier 2 autonomous mode; 4 phases, 32 tasks, 9 atomic commits; G1-G8 + VC_no_production_path_to_test_fixtures + VC_no_configs_in_src all PASS (17/17 tests); empirical desktop verification (Task 2.9) deferred to post-merge interactive session; deferred follow-ups: (a) `panel_defs_fleury_migration` to declarative `PanelDef` records per Fleury raddbg "type view" pattern, (b) visual-regression via `test_engine_integration_20260627`, (c) additional bundled `layouts/*.ini` variants | (none — independent) | (**NEW 2026-06-29**; bundle of three coupled changes: (1) Phase 1: relocate `tests/artifacts/manualslop_layout_default.ini``layouts/default.ini` (git mv preserves history), add `src/layouts.py` loader module mirroring `src/theme_models.py` + `src/theme_2.py`, add `layouts: Path` field + `SLOP_GLOBAL_LAYOUTS` env override + `get_layouts_dir()` accessor to `src/paths.py` (mirror themes at line 60/83/150/210+), update `tests/conftest.py:709` to read from `layouts/default.ini`; (2) Phase 2: install helper `_install_default_layout_if_empty(src, dst)` + drain `_install_default_layout_if_empty_result` wired into `App._post_init` (runs BEFORE HelloImGui loads the INI), `tests/test_default_layout_install.py` with 3 subprocess-Popen tests covering missing-INI, empty-INI, and custom-preserved-INI scenarios; (3) Phase 3: remove dead `os.path.join("tests", "artifacts", "live_gui_workspace", ...)` path from `src/commands.py:reset_layout` + simplify docstring, `tests/test_reset_layout.py` uses `inspect.getsource` to verify the dead path is gone; sets up the parallel-to-themes home so the eventual Fleury-style PanelDef migration has a home to land; user directive 2026-06-29: "I don't want the codebase ./src to have configuration files" so `.ini` assets stay at repo root not under `src/`; failures observed during execution: Tier 2 working tree inherited forbidden-files-modified state from prior sandbox session (auto-stripped by `pre-commit` hook + bypassed via `git commit <pathspec>` targeted form to commit only intended files) |
| 36 | A (UX / bugfix) | [Default Layout Install + Hardcoded Path Cleanup + layouts/ Stack](#track-default-layout-install-2026-06-29) | spec ✓, plan ✓, metadata ✓, state ✓, **shipped 2026-06-29** by Tier 2 autonomous mode; 4 phases, 32 tasks, 9 atomic commits; G1-G8 + VC_no_production_path_to_test_fixtures + VC_no_configs_in_src all PASS (17/17 tests); empirical desktop verification (Task 2.9) deferred to post-merge interactive session; deferred follow-ups: (a) `panel_defs_fleury_migration` to declarative `PanelDef` records per Fleury raddbg "type view" pattern, (b) visual-regression via `test_engine_integration_20260627`, (c) additional bundled `layouts/*.ini` variants | (none — independent) | (**NEW 2026-06-29**; bundle of three coupled changes: (1) Phase 1: relocate `tests/artifacts/manualslop_layout_default.ini``layouts/default.ini` (git mv preserves history), add `src/layouts.py` loader module mirroring `src/theme_models.py` + `src/theme_2.py`, add `layouts: Path` field + `SLOP_GLOBAL_LAYOUTS` env override + `get_layouts_dir()` accessor to `src/paths.py` (mirror themes at line 60/83/150/210+), update `tests/conftest.py:709` to read from `layouts/default.ini`; (2) Phase 2: install helper `_install_default_layout_if_empty(src, dst)` + drain `_install_default_layout_if_empty_result` wired into `App._post_init` (runs BEFORE HelloImGui loads the INI), `tests/test_default_layout_install.py` with 3 subprocess-Popen tests covering missing-INI, empty-INI, and custom-preserved-INI scenarios; (3) Phase 3: remove dead `os.path.join("tests", "artifacts", "live_gui_workspace", ...)` path from `src/commands.py:reset_layout` + simplify docstring, `tests/test_reset_layout.py` uses `inspect.getsource` to verify the dead path is gone; sets up the parallel-to-themes home so the eventual Fleury-style PanelDef migration has a home to land; user directive 2026-06-29: "I don't want the codebase ./src to have configuration files" so `.ini` assets stay at repo root not under `src/`; failures observed during execution: Tier 2 working tree inherited forbidden-files-modified state from prior sandbox session (auto-stripped by `pre-commit` hook + bypassed via `git commit <pathspec>` targeted form to commit only intended files)
| 37 | A (bugfix) | [Default Layout Install Followup (Restore Docking Structure + Pre-run Install Timing)](#track-default-layout-install-followup-2026-06-29) | spec ✓, plan ✓, metadata ✓, state ✓, **shipped 2026-06-29**; 4 phases, 22 tasks, 3 atomic commits (2afb0126 + 79c25a32 + 5e53d477); fixes Tier 2's `e9654518` follow-up which (a) wrongly stripped the `[Docking][Data]` block + per-window `DockId=` references from `layouts/default.ini` on the false theory that HelloImgui would auto-dock, and (b) put the install call inside `App._post_init` which fires AFTER HelloImgui has already done its INI load (silently discarded the literal DockNode IDs); the 2afb0126 commit restored the full docking structure (DockSpace ID=0xAFC85805 matching runtime-generated MainDockSpace=2949142533, 2 DockNode children 0x00000001 + 0x00000002, per-window DockId lines, SplitIds line, no `_STALE_WINDOW_NAMES` entries), and the 79c25a32 commit moved the install to `App.run` BEFORE `_run_immapp_result` so HelloImgui loads my bundled INI as its initial state; TRACK_COMPLETION FOLLOWUP note added in 5e53d477; 17/17 tests pass; merged commits: `2afb0126`, `79c25a32`, `5e53d477` | (none — independent) | (**NEW 2026-06-29**; 4 atomic commits on top of track 36; 22 tasks; replaces Tier 2's two-step broken fix with a three-step working fix; reset Tier 2's e9654518 follow-up that broke the bundled INI | |