# Semantic-review counterpart navigation finding Status: native defect confirmed on `F5ECAEC…`, corrected and reverified on `19180FE…`. Focused tests, strict Clippy, binary build and exact native model/source/history checks pass. At 1100×700 in the teaching lesson, root renamed OA `@oa_confirm`, saved, then applied one semantic Name Take decision. The application selected SA `@sa_confirm` and changed its layer to SA, but retained the OA allocation canvas. The diagram picker displayed **Choose diagram** because its available choices were filtered to SA while `active_diagram` still identified OA. A further snapshot did not repair the mismatch. The retained explorer query `@oa_confirm` naturally had no SA result; query preservation alone is not the defect and should not be removed as a workaround. `app.rs` Semantic Apply success (around lines 1840–1850) sets `selected`, `layer` and refreshes the property draft, without assigning `active_diagram`. `execute()` calls `sync()` before this block changes the layer, so its compatibility normalization still sees the previous OA layer. `views.rs` reads the active UUID for the canvas but filters the picker choices by current layer. The ordinary transition branch already chooses a target-layer diagram and therefore provides a bounded reuse seam. Proposed smallest correction: a shared post-commit focus helper updates the accepted target selection, clears the stale placement selection, sets its layer when available, and chooses a compatible diagram using the existing preferred-diagram policy. Refresh the draft after this context is consistent. Keep the camera when the view/layer did not change; fit the architecture only on a real destination change. Callers retain their page/behavior policy, so this does not broaden into an unrelated navigation redesign. Use it from semantic Apply and the ordinary transition's equivalent selected/layer/diagram block. Do not mutate saved presentation, create nodes, call `reveal_port_owner`, clear search, or perform a second model command merely to navigate. Do not call guarded `select()` blindly: its same-selected-ID early return can skip repairing the layer/view mismatch. Meaningful focused tests should execute an actual semantic Name Take in both directions with distinct OA/SA views; assert target identity, matching layer/view, retained search and exact core/source single Undo/Redo. Cover no destination-layer diagram (clear active view rather than show the old layer), repeated same-view focus retaining its camera, rejected source writeback preserving the original review/navigation, and existing behavior-transition routing. A root-owned native rerun must repeat the teaching step on the rebuilt binary and observe the SA counterpart in its intended view. The earlier exact semantic/source history oracle does not close this UI defect. Root approved the bounded correction. `app.rs` now has `focus_after_review(target, destination)`, called by semantic Apply and the ordinary transition post-commit selection block. It retains an already visible target view, otherwise resolves a compatible target-layer view (or None), clears the obsolete node selection and refreshes the property draft. Semantic Apply fits only on an actual layer/view change. Callers retain their existing workspace policy; no presentation/model command was added. Four dedicated tests in `app/review_navigation_tests.rs` cover actual Name Take both directions with complete accepted core equality and exact one-Undo/source history; missing destination view without view creation; retained same-context camera/query; and rejected source writeback retaining review/navigation. Existing transition-context tests remain unchanged. Rustfmt and scoped diff-check pass. Root's first focused run compiled and passed three tests; the fourth expected no selected placement, but `refresh_draft()` correctly selects the accepted counterpart's placement in its new view. The test-only correction requires that the selected placement belongs to the destination view and refers to the exact counterpart, and is absent from the old source view. Root's fresh rerun passed **4/4**, 535 filtered, 1.49 seconds runtime after a 36.50-second test build (`.local/semantic-review-navigation-tests2.log`). Original failure evidence remains in `semantic-review-navigation-tests.log`; no production change was needed after that run. Further strict checks/build/native revalidation are root-owned and not inferred from this focused pass. The existing `F5ECAEC…` stage does not contain this fix. Strict Clippy initially found one collapsible nested if in the new call site. The equivalent let-chain correction retained helper execution before checking the page. Fresh `cargo clippy --locked --workspace --all-targets -- -D warnings` passed28.26s; `cargo build --locked --workspace --bins` passed50.50s, each one job (`.local/semantic-review-navigation-{clippy2,build}.log`). No full539desktop test run is claimed. Root's native replay used process3012, `.local/native-qa/bin-source6-review-navigation`, GUI SHA256 `19180FEAB9E80C0CD8DB128E281DF353E74BF966ED9DB8D9CD8556A5EEBCD6C5`; server/runtime hashes remain those in the teaching native report. At1100×700, opened a whole-folder copy of the preserved OA-only rename in `.local/native-qa/water-pressure-navigation-working`. Selected exact `@oa_confirm` through search, opened Review semantics, chose Header Name Take Operational, confirmed one decision/zero resets/zero additional impacts, then Apply. The first post-Apply snapshot immediately showed **2 · SA service boundary and functions**, SA perspective and selected Function `@sa_confirm` with `Confirm stable pressure`. The System remained Pressure coordination service. The preserved OA search naturally had no SA results; the canvas and picker were coherent. Save all succeeded on first submission. The independent generator/core/source checker matched the complete Project and all30source files without normalization. All37files matched the earlier accepted semantic result exactly, proving navigation did not alter presentation/source facts. One Undo retained the coherent SA view and restored Confirm safe pressure; Save first submission restored all37files exactly to the OA-only baseline. One Redo retained the view and restored Confirm stable pressure; Save first submission restored all37accepted files exactly, and the full model/all30source checker passed again. Evidence: `.local/native-qa/water-pressure-navigation{,-undo,-redo}-hashes.json`, checker output directories `water-pressure-navigation-oracle` and `water-pressure-navigation-redo-oracle`. The first checker launch without toolchain PATH produced no result; the properly initialized rerun explicitly returned PASS/exit0, so only that rerun is acceptance evidence. Three native saves succeeded first submission. No recovery, forced stop or new diagram was part of this replay. The bidirectional/missing-view/same-camera/rejected-writeback variants remain focused automated evidence; the exact originally failing OA→SA scenario now has actual native acceptance.