104 lines
6.1 KiB
Markdown
104 lines
6.1 KiB
Markdown
# Native navigation corrections — 2026-09-11
|
|
|
|
Codex-9e8r6t `/root`; [issue 6](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/6).
|
|
The four-file correction above `f4e426ae2a6971395e1ca7e6f094b0c20056cf93`
|
|
passes its focused Windows gates and independent source review. Source checkpoint
|
|
`eeeaa1262748800c4c9aaa1eca79a7de96757358` subsequently passed the full desktop
|
|
suite and a matching GUI build. Its native trial verified the interaction fixes
|
|
but found a separate repair save-status defect; see the
|
|
[GUIv3 native evaluation](release-text-navigation-native-v3-20260911.md).
|
|
|
|
## Changes and review
|
|
|
|
The [initial DF71 native trial](release-text-navigation-native-initial-20260911.md)
|
|
found four interaction defects. The correction reserves the existing bounded
|
|
header's outer height so lint cannot move the editor; keeps results closed on a
|
|
successful Back without a notice; dismisses Find alone through the existing
|
|
captured-Escape bridge; and suppresses exactly focused Windows Alt-only Space
|
|
in the source editor. Ordinary Space, shifted input and Ctrl+Alt/AltGr remain
|
|
on their existing paths. The header still scrolls when its contents overflow.
|
|
|
|
Find Close and ordinary dismissing Escape restore the existing source selection
|
|
through the guarded viewport/focus ticket. Modal dismissal retains priority.
|
|
Independent review found that the previously unscoped Find Close could now
|
|
restore focus in a newer workspace or Find invocation. Its actual button message
|
|
now carries session/path plus an invocation token renewed on every Find Open.
|
|
Stale envelopes and bare legacy Close are rejected before invalidating current
|
|
navigation; current Close still works. Review2 accepted this closure. Root also
|
|
reviewed the final renderer-bound and evaluator-only changes.
|
|
|
|
## Verified scope
|
|
|
|
- `cargo test --locked --offline -p oa-desktop --bin arcadia-studio source_ -- --test-threads=1`:
|
|
**188 passed, 0 failed, 1 ignored, 562 filtered**, 41.73 s execution,
|
|
finished 19:38:11 UTC.
|
|
- `cargo clippy --locked --offline -p oa-desktop --all-targets -- -D warnings`:
|
|
**passed**, finished 19:40:12 UTC. Scoped formatting and diff checks passed.
|
|
- All **499 inputs / 9,470,838 bytes** were unchanged at 19:41:08 UTC.
|
|
ZIP members were also compared with the manifest and current source bytes.
|
|
Final correction `inputs4` archive SHA256:
|
|
`7ff9e5703e33bd72e5c2186dd61125e965b82b8dfbf085961d514b005e716798`.
|
|
|
|
Seven added regressions exercise Back visibility, actual captured Find Escape,
|
|
stale Find Close across reset/file switch/reopen, mounted guarded focus, stable
|
|
editor geometry, real Scrollable wheel/offset behavior, and text-bearing Windows
|
|
key events with ordinary/international input controls. Affected App assertions
|
|
compare accepted Project, raw SourceBundle, selection and history.
|
|
|
|
Geometry uses the shared production layout helper with real paragraph/editor
|
|
metrics and representative dynamic header content, not the whole App view.
|
|
The focus tree verifies removal of Find and later foreign focus; its raw-clock
|
|
case also changes focus, so it does not independently isolate that race end to
|
|
end. Existing primitive guards provide narrower separate coverage. The supplied
|
|
Alt+Space payload test is not instrumentation of the native Windows event.
|
|
The subsequent GUIv3 native trial verified the settled menu/neutral-click
|
|
sequence and ordinary Space control on Windows; that evidence is separate from
|
|
this supplied-payload test.
|
|
|
|
## Full suite and matching GUI
|
|
|
|
The committed `eeeaa126` source with unchanged correction inputs4 passed
|
|
`cargo test --locked --offline -p oa-desktop --bin arcadia-studio -- --test-threads=1`:
|
|
**750 passed, 0 failed, 1 ignored**, 322.13 s, completed at 19:49:52 UTC.
|
|
The matching Windows GUI build finished at 19:52:36 UTC. Its preserved executable
|
|
is 113,204,224 bytes, SHA256
|
|
`5478e783986579bbd2644694276154a19bc6a252d01af22292fe16433caa724f`.
|
|
Both gates rechecked all frozen source inputs before and after execution.
|
|
|
|
The [full-suite/build archive](experiments/text-navigation-native-20260911/corrected-build/manifest.json)
|
|
contains 13 payloads, 392,690 bytes; manifest SHA256
|
|
`bbe50d3c7d1b9d7ccef65f1f8f885b4155f123e575e09621afc7ef2098202689`.
|
|
It preserves raw output, Cargo artifact messages, receipts and helpers, with an
|
|
executable identity receipt rather than the large binary. These are development
|
|
profile Windows results for the exact inputs; no later source fix inherits them.
|
|
|
|
## Preserved failures
|
|
|
|
The first PowerShell 5 wrapper stopped on ordinary Cargo stderr. The corrected
|
|
PowerShell 7 run reached three real E0659 macro-import errors and was stopped
|
|
after the independent stale-Close finding; both diagnostics and interruption
|
|
are retained. Inputs2 then failed compilation because the generic helper needed
|
|
`text::Renderer`. Inputs3 fixed only that bound; 187 tests passed, but its geometry
|
|
test incorrectly equated the short inner Scrollable with the fixed outer slot
|
|
(243.70001 versus 294 px). Inputs4 corrected only the measurement to the actual
|
|
outer Container/editor boundary. Exact editor rectangle stability and the
|
|
separate overflow/offset assertions then passed. No production layout change
|
|
was made merely to satisfy that assertion. Failed runs are not Clippy or native
|
|
passes; every earlier input snapshot retains its own readback.
|
|
|
|
## Evidence and continuation
|
|
|
|
[Raw correction archive](experiments/text-navigation-native-20260911/corrections/manifest.json):
|
|
44 payloads, 9,167,596 bytes; manifest SHA256
|
|
`25a210de4a65b2221007e077fe72dfe0bb68483a068127e122839798aa4da332`.
|
|
It preserves original files, exact source ZIPs, helpers, patch, actual logs and
|
|
receipts, independent reviews and final gate result. The test executable has an
|
|
identity receipt; its large binary is not included.
|
|
|
|
The GUIv3 evaluation repeated the four failures, navigation and draft/Undo
|
|
behavior, invalid-source repair, and the realistic 30-file engineering walkthrough.
|
|
Explicit Save and complete saved equality passed, but Apply in repair mode could
|
|
incorrectly report saved against the prior destination's baseline. Publication
|
|
requires the separate saved-baseline correction and its own gates/native check.
|
|
The existing contextual release remains unchanged. Linux/WSL remains paused.
|