Problem
DESCRIBE PAGE output is not guaranteed to re-parse through mxcli check. (Microflow DESCRIBE roundtrip was fixed in v0.11.0 and is confirmed working; this is the remaining page case.)
Current behavior
There is no automated coverage of page DESCRIBE → check roundtrip: the page roundtrip tests (mdl/executor/roundtrip_page_test.go, //go:build integration) only assert the output contains expected widget names — they never feed the output back through the parser/check.
⚠️ Note for whoever picks this up — a tempting but WRONG hypothesis
During investigation it looked like the cause was DESCRIBE emitting snake_case action strings (show_page, call_microflow) while the grammar uses uppercase tokens (SHOW_PAGE, CALL_MICROFLOW). This is not the cause — the lexer uses case-insensitive fragments (fragment S: [sS] … in mdl/grammar/MDLLexer.g4:822+), so show_page tokenizes fine as SHOW_PAGE. Don't "fix" the casing and call it done.
The real breakage is structural (specific widget/action constructs the CREATE PAGE grammar doesn't accept in the shape DESCRIBE emits, and/or unquoted reserved-word identifiers — see #619). A concrete reproduction is needed first to identify which constructs fail.
Request
Guarantee DESCRIBE PAGE roundtrip, and add a roundtrip test that actually re-checks the DESCRIBE output (not just substring assertions).
Source: customer feedback batch (2026-06). Reporter: Miwa. Reporter severity: 5/5.
Filed after codebase investigation at 297e0b0a.
Problem
DESCRIBE PAGEoutput is not guaranteed to re-parse throughmxcli check. (Microflow DESCRIBE roundtrip was fixed in v0.11.0 and is confirmed working; this is the remaining page case.)Current behavior
There is no automated coverage of page DESCRIBE → check roundtrip: the page roundtrip tests (
mdl/executor/roundtrip_page_test.go,//go:build integration) only assert the output contains expected widget names — they never feed the output back through the parser/check.During investigation it looked like the cause was DESCRIBE emitting snake_case action strings (
show_page,call_microflow) while the grammar uses uppercase tokens (SHOW_PAGE,CALL_MICROFLOW). This is not the cause — the lexer uses case-insensitive fragments (fragment S: [sS]… inmdl/grammar/MDLLexer.g4:822+), soshow_pagetokenizes fine asSHOW_PAGE. Don't "fix" the casing and call it done.The real breakage is structural (specific widget/action constructs the CREATE PAGE grammar doesn't accept in the shape DESCRIBE emits, and/or unquoted reserved-word identifiers — see #619). A concrete reproduction is needed first to identify which constructs fail.
Request
Guarantee
DESCRIBE PAGEroundtrip, and add a roundtrip test that actually re-checks the DESCRIBE output (not just substring assertions).Source: customer feedback batch (2026-06). Reporter: Miwa. Reporter severity: 5/5.
Filed after codebase investigation at
297e0b0a.