60 lines
3.4 KiB
Markdown
60 lines
3.4 KiB
Markdown
# 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](fixtures/release1-native/communication-means/README.md).
|
|
|
|
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.
|