2.6 KiB
Atomic Call/Reply activation assertion migration
Owner: /root/nested_call_design; root owns integration, Gitea and serialized compiler/native acceptance. Isolated worktree .local/activation-assertion-20260912, branch codex/activation-assertion-956atf-20260912, base 4015498. Only crates/oa-desktop/src/behavior/scenario.rs is changed.
Committed correction: 10eb86d00f39cdf17df58513305bfe283fa34b74; isolated worktree clean. Root confirmed the completed base gate: 833 passed, one failed, zero ignored; the exact failure at scenario.rs:3256 was the stale generic-box assertion. All 12 typed activation tests passed in that base gate. These are root-reported base results, not execution of this correction.
The existing graphical_call_reply_is_atomic_correlated_and_source_equivalent test still searched generic Scene boxes for a Call rectangle of width 8. The production renderer now consumes typed Scene::activations; its new dimension is not an appropriate replacement semantic assertion. The correction keeps all original atomic two-step creation, exact model reply correlation/endpoints, whole-Project canonical source roundtrip, exclusion of already-replied Calls from the reply picker, and complete undo restoration checks.
The replacement asserts exactly one typed segment with the correct Call, receiving lifeline, ordered scope, and Finish::Reply ID. Its finite, positive rectangle must begin at the actual Call receive endpoint and end at the actual Reply send endpoint, both on the same rectangle edge. There must be no generic Call box or open marker. An interior hit must select the Call, with explicit preconditions proving that point is outside message-line slop and labels. The rectangle under test is the exact data consumed by Scene::draw for its square fill and outline (behavior.rs, activation loop); this is source/geometry evidence, not a claim of rendered pixels or low-scale legibility.
Search of crates/oa-desktop/src for old width-8 comparisons and constructions found only this stale assertion plus an unrelated 8-by-4 palette icon. No other Call-box assertions were changed.
Checks performed: source review, standalone installed rustfmt.exe --edition 2024 --config skip_children=true on the owned file, and git diff --check. Initial PATH-only rustfmt lookup failed; using the existing .local/toolchain/rustup/toolchains/stable-x86_64-pc-windows-gnullvm/bin/rustfmt.exe succeeded. No Cargo, rustc, test run, native interaction, root tracked edit, or Gitea action. Root's running full-suite failure receipt remains authoritative; the replacement needs the focused existing test and subsequent required combined gate after inputs may change.