ed
466d26567b
conductor(track): init default_layout_extract_20260629 (extract tier-2 good work + build hard 4-layer visual verification)
Plan (per user direction, hybrid approach C + single track):
1. Port layouts/default.ini + src/layouts.py fresh from tier-2 (clean history)
2. Cherry-pick c2155593 (orphan end_child) + 3b966288 (reset_layout)
3. Add _install_default_layout_* helpers + App.run + App._post_init wiring
4. Build 4 verification layers:
- Layer 1: per-panel render sentinel (catches 'panel never opens')
- Layer 2: Win32 PrintWindow pixel baseline (catches ALL visual regressions)
- Layer 3: forced test viewport + theme env vars (makes baseline deterministic)
- Layer 4: cannot-skip gates (standalone CLI + CI + VERIFIED-<date> tag)
5. Negative test proves the verification catches the original bug
Tier-2 commits NOT extracted:
- e9654518 (wrong-theory INI strip, superseded)
- 13ad9d3e 'idk' (meaningless)
- 28527851 'artifacts' (meaningless)
- 9437af6c (27 diagnostic scripts)
- 71028dad (drop stale src.command_palette import - tier-2 specific; master has the module so the import WORKS)
Scope: 9 phases, 36 tasks, ~36 atomic commits.
Files: 3 new (src/layouts.py, layouts/default.ini, tests/artifacts/visual_baseline_default.png, scripts/check_visual_baseline.py, docs/guide_visual_verification.md), 6 modified (src/gui_2.py, src/paths.py, src/commands.py, scripts/run_tests_batched.py, conductor/tracks.md, docs/Readme.md).
HARD verification: cannot be skipped. VERIFIED-<date> tag required for [x]-completion.
2026-06-29 21:59:52 -04:00
..
2026-06-15 14:29:07 -04:00
2026-06-21 22:39:14 -04:00
2026-03-08 13:55:32 -04:00
2026-06-21 14:12:03 -04:00
2026-06-08 23:40:27 -04:00
2026-06-25 09:29:24 -04:00
2026-06-24 18:27:24 -04:00
2026-06-25 13:23:55 -04:00
2026-06-24 10:23:54 -04:00
2026-06-04 19:42:04 -04:00
2026-05-16 17:02:14 -04:00
2026-06-26 06:12:02 -04:00
2026-03-10 00:24:03 -04:00
2026-06-12 21:27:44 -04:00
2026-06-21 19:18:14 -04:00
2026-06-29 21:59:52 -04:00
2026-06-29 14:02:41 -04:00
2026-06-29 19:33:50 -04:00
2026-06-27 13:54:02 -04:00
2026-06-15 14:49:59 -04:00
2026-06-26 22:48:42 -04:00
2026-06-16 10:16:17 -04:00
2026-06-18 23:04:19 -04:00
2026-06-24 12:54:36 -04:00
2026-03-10 00:23:03 -04:00
2026-05-10 15:59:32 -04:00
2026-03-08 03:05:15 -04:00
2026-06-15 19:34:20 -04:00
2026-06-18 15:36:53 -04:00
2026-03-06 14:52:10 -05:00
2026-06-08 23:41:43 -04:00
2026-06-08 20:59:27 -04:00
2026-06-21 08:41:37 -04:00
2026-06-24 16:24:53 -04:00
2026-06-24 16:24:53 -04:00
2026-06-24 16:24:53 -04:00
2026-06-25 19:24:42 -04:00
2026-06-24 16:24:53 -04:00
2026-06-26 06:23:28 -04:00
2026-06-20 12:33:55 -04:00
2026-03-08 13:46:38 -04:00
2026-06-21 22:39:14 -04:00
2026-06-10 23:34:33 -04:00
2026-06-15 20:41:12 -04:00
2026-06-20 17:20:40 -04:00
2026-06-19 19:35:17 -04:00
2026-06-20 17:20:40 -04:00
2026-06-21 09:10:44 -04:00
2026-06-20 02:55:37 -04:00
2026-06-17 16:58:19 -04:00
2026-06-18 14:06:09 -04:00
2026-06-17 01:57:52 -04:00
2026-06-12 21:30:47 -04:00
2026-06-13 16:45:23 -04:00
2026-06-19 20:35:19 -04:00
2026-06-26 23:43:56 -04:00
2026-05-13 11:24:58 -04:00
2026-06-19 14:30:43 -04:00
2026-06-20 07:46:10 -04:00
2026-03-10 00:18:12 -04:00
2026-06-25 21:24:39 -04:00
2026-06-27 14:07:01 -04:00
2026-03-08 13:49:43 -04:00
2026-06-06 00:42:40 -04:00
2026-06-06 00:42:40 -04:00