Files
ARCADIA-Studio/harness/release-semantic-review-navigation-20260906.md

7.0 KiB
Raw Permalink Blame History

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.