Merge pull request #27 from fiddlerwoaroof/wave/g-command-layer

WU-G: the keymap and command layer (improvise-th7m, lae, ct5, 2zq; git/aaw declined with evidence; 0hb deferred with its design note).

Includes the ejection fix the 2zq ruling called for — a virtual on an axis is a configuration, not a vacancy — which also closed a live bug where adding a second regular category evicted _Measure from Column and made every measure vanish from the demo's own view.
This commit is contained in:
Ed Langley
2026-09-19 23:41:59 -07:00
committed by GitHub
16 changed files with 1501 additions and 107 deletions
+6 -4
View File
@@ -39,8 +39,10 @@ fn imported_model_shows_one_row_per_record_with_measure_columns() {
.collect();
assert_eq!(
cols,
vec!["product", "region", "cost", "revenue", "+"],
"categories, then one column per measure, then the new-measure column"
vec!["product", "region", "+cat", "cost", "revenue", "+"],
"categories, the new-category column, one column per measure, then \
the new-measure column — each `+` sits next to what it adds to \
(improvise-2zq)"
);
assert_eq!(layout.row_count(), 2, "two source records, not four cells");
@@ -57,8 +59,8 @@ fn imported_model_shows_one_row_per_record_with_measure_columns() {
assert_eq!(
rows,
vec![
vec!["Pants", "West", "80", "200", ""],
vec!["Shirts", "East", "40", "100", ""],
vec!["Pants", "West", "", "80", "200", ""],
vec!["Shirts", "East", "", "40", "100", ""],
],
"got {rows:?}"
);