Files
ARCADIA-Studio/harness/release-behavior-transition-independent-review-20260906.md

3.4 KiB

Behavior transition navigation — independent review, 2026-09-06

Reviewed the bounded changes in desktop workflow.rs, the workflow Apply arm in app.rs, behavior.rs::selected_behavior, and the five new app/transition_context_tests.rs cases. No production edits, Cargo, or native input were performed by this reviewer.

Findings

No material correctness defect found in the inspected change. The adapter now finds the change whose source is the explicit request root, rather than selecting the first dependency. A behavior-owned root with no explicit destination returns the core candidate before legacy architecture placement. Explicit destinations still follow the core/placement path, while ordinary work keeps its architecture behavior. StateAction resolves the behavior owner through its typed source state.

The app resolves the counterpart's owner from the candidate, skips port-owner reveal for behavior navigation, and changes page/selection only after the single Document::execute(Replace) succeeds. A rejected source writeback restores the review without changing navigation or accepted history. The previous/current owner and saved state-view identity comparison preserves camera state when that context is unchanged. The normal scenario/state event contexts also include document, revision and owner/view identity, so the new route does not make old canvas events authoritative.

The new tests use a deliberately dependency-first scenario in both directions, compare the complete app candidate with core, preserve every unrelated diagram, and verify exact accepted source and one Undo/Redo boundary. Other tests cover internal selection, process/chain roots without existing views, explicit destination versus ordinary work, machine/typed-action owner and camera behavior, and rejected source preflight plus retained invalid property input. The author also added the suggested stale-event falsifier: the both-direction test captures a source-scenario selection event before Apply, delivers it after Apply and Undo, and asserts unchanged model/selection. That addition was reviewed read-only; this review does not claim the new tests have executed.

Independent fixture oracle

Added distinctly named check reverse-behavior and generate-reverse-behavior modes to the tracked CM fixture generator. The new cm-reverse-behavior.after-template preserves the original before-source bundle and every saved diagram. Legacy check reverse and its template remain intact. See fixture instructions.

A coordinated tiny direct-rustc build linked the stable existing core/serde libraries into an ignored executable, without touching Cargo outputs. Results:

  • New behavior template: complete model/source pass, ten generated target/trace UUID substitutions, zero placement substitutions.
  • Legacy template: complete model/source pass, fifteen substitutions including five placement identities.
  • Each policy rejects the other's placement outcome; added source whitespace is separately rejected. Regenerating the new bundle is byte-exact.

The checker never adopts observed geometry, routing, metadata or names. Negative logs: .local/native-fixtures/cm-reverse-behavior-falsifiers/. Root's completed legacy native result remains valid evidence for that older policy. Corrected native Behavior routing, visible Call/Reply selection and its Save/Undo/Redo sequence are a separate pending gate, as are the new desktop test run and build.