6.6 KiB
Behavior transition workspace and placement review
Native finding and cause
Root observed this on the staged 246B… desktop: applying an SA scenario Whole subtree → OA transition left Behavior, selected the first reused Rescue team participant, and added the scenario, two lifelines and two occurrences to the unrelated Draw operational communication architecture view. Count-based placements overlapped existing content and produced three amber route warnings. The legacy native oracle predicts those presentation edits; that does not make them an appropriate user workflow.
Three desktop seams caused the result: workflow.rs appended placements for every transitioned element after the core plan; app.rs selected the first dependency-ordered plan change instead of the explicitly requested root; the same success branch unconditionally navigated to Architecture. The shared transition planner already honors an explicit destination diagram and does not require the extra implicit placements.
Approved bounded correction
When the first explicitly requested root belongs to a scenario, process/functional chain, or state machine (including nested elements and typed behavior relations), and no destination diagram was requested, the desktop returns the exact core transition candidate. It neither creates a view nor adds nodes to an existing architecture view. Explicit destination requests retain the existing placement contract. Ordinary architecture/work transitions retain their existing automatic placement behavior.
The application selects the counterpart of that explicit root, resolves its nearest behavior owner, and displays Behavior. A state machine without a saved state view offers the existing Create diagram action. The application clears an obsolete architecture node selection and resets state-camera context only when the resolved owner/view changes. Reusing the same behavior context retains its camera. Typed StateAction relations now resolve through their source state, just as StateTransition and SequenceLink resolve through their source element.
The operation remains one Command::Replace and the existing document source transaction. Core planning, scope, dependency closure, tracing and history semantics are unchanged. Failed source writeback retains the review and navigation. Existing modal and pending-draft guards remain in force.
Automated evidence
Five focused App tests in app/transition_context_tests.rs cover: both directions with a reused dependency preceding the explicit scenario root; nested lifelines and process/chain roots without any view; explicit destination placement versus ordinary work placement; machine/typed-action ownership and repeated same-context camera retention; rejected source writeback and an invalid property draft blocking review start. The scenario test compares the complete accepted project against the independently applied core plan and asserts exact source/model Undo and Redo in one history operation.
With the Linux compile explicitly paused, all five focused tests passed on their first compilation (0.63 seconds runtime, 530 desktop tests filtered). Strict workspace/all-target Clippy passed in 26.79 seconds; the workspace binaries built in 50.85 seconds. Rustfmt and scoped git diff --check also pass. Logs are .local/behavior-transition-context-tests.log, behavior-transition-context-clippy.log and behavior-transition-context-build.log. This was a focused test run, not a fresh full-desktop run. The semantic-review worker's independent source review found no material defect; see release-behavior-transition-independent-review-20260906.md. Stale pre-transition scenario selection events are tested after Apply and after Undo.
The tested stage is .local/native-qa/bin-source6-behavior-context. Desktop SHA-256: F5ECAEC02BBAFBC6F3BDC6ADEB746AFE91F3A495C6D9564A68DEA41E61AC9246; server: 1F98F02DBC9FB2D9AFA3C42BB0CB4038BAAE81C85EF17365B5CB486669E749F8; libunwind: F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4. It contains the corrected whole-folder copy guidance and all 37 teaching files, including 30 source files; each copied lesson file was hash-compared with the working source. Manifests: .local/behavior-transition-context-staged-sha256.txt and behavior-transition-context-staged-files.json. The earlier 246B… native binary and immutable Linux snapshot precede this correction. The Windows Cargo lease was released immediately after build completion, before staging.
Corrected reverse native gate — PASS
Root operated process 9672 on the F5ECAEC… binary at the default 1440×900 size, starting from the same preserved cm-reverse-scenario.arcadia baseline. Whole subtree confirmed both participant mappings and the boundary mapping, with both OA participant Names retained. Apply immediately stayed in Behavior and selected scenario @oa_cm_200. The mapped participant lifelines, solid leftward Call and dashed rightward Reply were visible. Manually switching to Architecture showed the original four readable objects, without overlap or route warnings.
Save As to .local/native-qa/cm-reverse-behavior-after/entry.arcadia passed the separate independent check reverse-behavior oracle: complete Project and exact reachable source equality with ten generated UUID substitutions and zero placement identities. The accepted three-file bundle is preserved in cm-reverse-behavior-accepted. The legacy fifteen-UUID/five-placement oracle is retained separately, not weakened or overwritten.
One Undo and Save restored the baseline entry exactly (1ABC4C4CAC37CFB06ED3B12A115F9E7E6A2D3AFFD34B25C355309E5EE465FA40). One Redo and Save restored all three reachable files exactly:
| File | SHA-256 |
|---|---|
entry.arcadia |
EC826B9B84616507490AC30E4D57100DD6338DBA2F7071E879A8FB58820A85C5 |
traceability.arcadia |
A56BFEFBCA3CE2259E5EB3B374A4BF6BDD9E2F23442ADEA5892791993997F0FC |
oa/behavior/scenario_oa_cm_200.arcadia |
87DF2C4A62118C326FC0B3A5768075754B643B05EDBC596C0DB5F81A903EC42A |
The reviewer independently re-read these final file hashes for this report. Root reopened through Home recents and observed both the original architecture and mapped scenario cleanly. All three Save submissions succeeded on their first attempt; the first Save As filename focus/Ctrl+A/type sequence worked on the first attempt. Stderr and recovery checkpoint counts were zero.
This closes the reported reverse-scenario navigation, architecture-preservation and Save/Undo/Redo/reopen gate on this binary. Ordinary architecture transitions and explicit destination requests have focused automated regression evidence; they were not separately native-tested in this corrected trial.