From 846cae81e7be29c0b24cff1740e3fcf3d0b21fcc Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Wed, 23 Sep 2026 00:50:34 -0700 Subject: [PATCH] Admit Scenario layout through the ordinary source parser inventory --- crates/oa-core/src/source_defaults.rs | 8 +++++++- harness/scenario-text-union-20260923.md | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/crates/oa-core/src/source_defaults.rs b/crates/oa-core/src/source_defaults.rs index 5c13949f..b719a65d 100644 --- a/crates/oa-core/src/source_defaults.rs +++ b/crates/oa-core/src/source_defaults.rs @@ -52,7 +52,13 @@ pub(crate) fn parser_fields(context: Context) -> Map { _ => &["source", "target"], } } - Context::Diagram => &[], + Context::Diagram => { + // Admit the optional payload without restoring a synthetic null in + // CompleteForEdit: absence there distinguishes a real layout clear + // from an unrelated edit beside an authored explicit `layout none`. + fields.insert("layout".into(), Value::Null); + &[] + } Context::Node => &["element"], Context::Artifact => &["owner"], Context::Trace => &["oa", "sa"], diff --git a/harness/scenario-text-union-20260923.md b/harness/scenario-text-union-20260923.md index 54128822..1ae5558c 100644 --- a/harness/scenario-text-union-20260923.md +++ b/harness/scenario-text-union-20260923.md @@ -52,8 +52,15 @@ child 1, preserving the Properties/Connections reconciliation fix. ## Verification to perform after compiler lease -Rustfmt parsing and Git whitespace/conflict-marker checks precede the source -commit. No compiler, tests or GUI have run for this candidate at this checkpoint. +Rustfmt parsing and Git whitespace/conflict-marker checks preceded the initial +source commit. The first frozen `0b61771` core listing compiled and listed 129 +tests. Its `scenario_layout` run passed 20 and failed seven source lifecycle +cases: the ordinary parser's field inventory did not admit `layout`. The repair +adds the optional field to Diagram's parser inventory only, preserving the +CompleteForEdit omission/clear distinction above. These first receipts bind 742 +unchanged inputs and the actual executable; they are failed-run evidence, not +acceptance of the repaired source. A fresh listing and affected runs are required. +No desktop runtime or GUI gate has run at this checkpoint. New discriminating tests combine ordinary omitted/authored defaults with Scenario row reorder, alias rename and layout clear, and retain a live saved spacing gesture across stale Text commands and prior Scenario visit messages.