Commit Graph
10 Commits
Author SHA1 Message Date
ed 4bf5ecd618 conductor(state): default_layout_install_followup_20260629 all phases complete + tracks.md row + parent state errata ref 2026-06-29 19:55:45 -04:00
ed 4acf8b15fa conductor(plan): Mark Phase 4 tasks 4.3-4.6 complete (checkpoint commit + tracks.md row + plan SHAs) 2026-06-29 16:58:56 -04:00
ed b80e5afb62 conductor(plan): Mark Phase 4 tasks 4.1 + 4.4 complete (17/17 tests PASSED, phase checkpoints appended) 2026-06-29 16:51:56 -04:00
ed 06476c569a conductor(plan): Mark Phase 3 tasks 3.1-3.7 complete [3b966288] 2026-06-29 16:48:54 -04:00
ed c42a759911 conductor(plan): Mark Phase 2 tasks complete (install helper + wire + GREEN + adjacent batch) — T2.9 deferred to post-merge user session 2026-06-29 16:42:04 -04:00
ed cf5244b116 conductor(plan): Mark Phase 2 tasks 2.3-2.6 + 2.8 complete (GREEN helpers + _post_init wiring + test path fix)
Tasks 2.3 + 2.5 [f3cd7bc2]: module-level installer + drain helper added in src/gui_2.py.
Task 2.4 [3d87f8e7]: wired into App._post_init before the warmup-complete registration block.
Task 2.6 [3d87f8e7]: all 3 RED tests now pass after absolute-path fix on _GUI_SCRIPT.
Task 2.8 [3d87f8e7]: phase-2 atomic commit landed.
Task 2.7 (adjacent test_gui* batch) remains pending for the orchestrator.
2026-06-29 16:36:32 -04:00
ed b1632f4602 conductor(plan): Mark Phase 2 tasks 2.1 + 2.2 complete (RED tests + verification) [35f22e4d] 2026-06-29 14:41:06 -04:00
ed 35f22e4dd3 test(layouts): RED phase tests for default layout install-on-empty-INI behavior
3 tests in tests/test_default_layout_install.py per spec G6/G7 acceptance:
- test_default_layout_installed_when_ini_missing
- test_default_layout_installed_when_ini_empty
- test_default_layout_NOT_installed_when_layout_present

Currently fail as expected (no install helper exists yet). Test 3 passes as
a positive control (custom user INI is preserved when no install logic
runs).

Subprocess spawn pattern: each test creates its own tmp_path workspace,
spawns sloppy.py without --enable-test-hooks (avoids port-8999 conflict
with the live_gui session fixture's subprocess), waits 5s, terminates
via taskkill /F /T, asserts on the saved INI content.

state.toml: phase 1 marked completed; tasks t1_1-t1_10 recorded with
SHA 7577d7d. plan.md updated for Phase 1 task completion.
2026-06-29 14:39:56 -04:00
ed 9f1d8cb2d8 conductor(plan): Mark default_layout_install_20260629 Phase 1 tasks complete [7577d7d] 2026-06-29 14:22:26 -04:00
ed 5ad062b13a conductor(track): init default_layout_install_20260629 (empty INI -> install default; layouts/ at root + src/layouts.py; reset_layout path cleanup)
Bug: when cwd/manualslop_layout.ini is missing/empty after first-run,
post-deletion, or post-corrupt-INI, the GUI panels are not visible
despite show_windows[name] = True. Root cause is structural: imgui.begin
without [Window][name] + DockId in the INI produces a floating window
that gets clipped by the full-screen dockspace. Empirically confirmed:
8s of running produces a 585-byte INI containing only [Window][Debug##Default].

Fix shape (4 phases):
  Phase 1: relocate tests/artifacts/manualslop_layout_default.ini ->
           layouts/default.ini (at repo root, parallel to themes/ per
           user directive 'no configs in src/'); add src/paths.py
           'layouts' field + SLOP_GLOBAL_LAYOUTS env override (mirror
           themes pattern at line 60/83/150/210-216); add src/layouts.py
           loader module (mirror src/theme_models.py + src/theme_2.py
           contract; LayoutFile = @dataclass(frozen=True, slots=True)
           per the C11/Odin/Jai-in-Python value-type mandate).
  Phase 2: install-on-empty-INI in App._post_init. _install_default_layout_if_empty
           helper + drain helper, called BEFORE _diag_layout_state and
           BEFORE immapp.run. logs '[GUI] installed default layout: <src> -> <dst>'.
  Phase 3: drop hardcoded 'tests/artifacts/live_gui_workspace/...' path
           from src/commands.py:reset_layout line 369-376 (dead code in
           production; violates 'production code defaults to immediate
           directory' directive 2026-06-29).
  Phase 4: 3-test regression suite in tests/test_default_layout_install.py
           + 1 unit test in tests/test_reset_layout.py; user manual verify
           (delete INI, run sloppy.py standalone, see panels).

TDD red-first per task. Atomic per-task commits with git notes (per
conductor/workflow.md §Task Workflow step 9-10). No day estimates per
conductor/workflow.md §Tier 1 Track Initialization Rules.

Out of scope (deferred): panel_defs_fleury_migration - migrate the ~40
render_x functions to declarative PanelDef records per Ryan Fleury's
raddbg 'type view' / 'lens' pattern. Spec §Eventual Normalization Target
documents the design sketch + the transcripts at docs/transcripts/.
This track sets up layouts/ at repo root + src/layouts.py as the typed
loader so the future migration has somewhere to land.

Tracks.md row will be added in Phase 4 (Task 4.6) when the track ships.
2026-06-29 14:02:41 -04:00