feat(layout): implement deterministic 2xK grid engine with single decision table

- Change N=1->2 split policy from down to right to establish 2 full-height columns
- Share single decision table across GUI and headless modes
- Add _full_height_pane guard to prevent half-height column splits
- Quadruple-wire default max_columns=2 and max_rows=2 across layout.py, lib.sh, and .mam.env.example
- Update unit and integration tests to enforce deterministic 2x2 grid trajectory
This commit is contained in:
2026-08-26 15:10:06 +09:00
parent 5ed9ec79d7
commit 80d2f7f068
6 changed files with 338 additions and 220 deletions
+7 -2
View File
@@ -144,8 +144,13 @@
# Maximum number of columns a workspace may grow to before the engine reports
# 'overflow' (which makes lib.sh create a fresh workspace instead of splitting).
# Applies to both measured (GUI) and headless 0x0 layouts.
#default: (unset -> no column cap)
# MAM_MAX_PANE_COLS=3
#default: 2
# MAM_MAX_PANE_COLS=2
# Maximum number of rows per column before overflow. Default 2 guarantees an
# even 2x2 grid; do not raise this until a resize-normalisation pass exists.
#default: 2
# MAM_MAX_PANE_ROWS=2
# ==============================================================================
# deploy / distribution source (for forks/mirrors)