80 lines
4.3 KiB
Markdown
80 lines
4.3 KiB
Markdown
# Behavior scroll identity correction
|
|
|
|
Status: implementation, focused checks and full Windows/Linux desktop gates passed.
|
|
Independent re-review and native acceptance belong to the lead. Base `1b0b072` includes the independently reviewed process
|
|
camera/form corrections in `cf33785`.
|
|
|
|
The independent actual-Iced probe reproduced a preexisting navigation defect:
|
|
`topology::State::enter` cleared its mirrored offset, but the retained Scrollable
|
|
still held y180 and immediately reported it under the next process owner. The
|
|
reviewer's test is now a repository regression, using Iced's null renderer, real
|
|
layout, wheel input and observer messages. It failed against the original code
|
|
with y180 instead of zero and passes with this correction.
|
|
|
|
The existing observer now stores its mounted `(document, owner)` identity at
|
|
construction. Its diff recreates local child widget state only when that pair
|
|
changes. Keeping the same owner preserves the actual scrollable and its report;
|
|
revision, epoch, tool and form transitions are deliberately not identity keys.
|
|
No general state framework, model command, schema or persistence change is added.
|
|
The shared observer applies the same lifetime to inner-canvas and outer-page
|
|
scrolling in process and scenario views.
|
|
|
|
A second actual-Iced regression seeds a programmatic scroll operation before any
|
|
observer report, then varies document, owner, revision/epoch and form-like content
|
|
height. This guards against deriving identity from the last notification. Its
|
|
matrix covers both message families and both scroll areas: only document/owner
|
|
navigation resets to zero, and unchanged-owner edits retain y180. It also verifies
|
|
current event context and one-time reporting. Both defect probes failed before the
|
|
fix; all three observer tests and 22 process tests now pass. Existing passive clamp,
|
|
remount, palette camera, form widget-state and stale-gesture tests remain passing.
|
|
|
|
The process/native ledger, STATE and other lead-owned documents are untouched.
|
|
The lead owns independent re-review and actual native navigation acceptance.
|
|
|
|
## Platform verification and frozen trial
|
|
|
|
Production commit: `8c600087dc406149109f19b90250cc3e3b3ac819`.
|
|
On both Windows and Ubuntu 24.04, the complete desktop suite passed **327 tests,
|
|
zero failed or ignored**. Strict all-target desktop Clippy, workspace formatting
|
|
check and optimized desktop build passed. No native application was launched by
|
|
this worker; the lead owns runtime acceptance.
|
|
|
|
Windows commands, from `D:/CodexBuilds/Capella2-data-integration`:
|
|
|
|
```powershell
|
|
$env:CARGO_TARGET_DIR='D:/CodexBuilds/Capella2-data-target'
|
|
cargo test --locked --offline -p oa-desktop
|
|
cargo clippy --locked --offline -p oa-desktop --all-targets -- -D warnings
|
|
cargo fmt --all -- --check
|
|
cargo build --locked --offline -p oa-desktop --release
|
|
```
|
|
|
|
Linux commands, under WSL Ubuntu-24.04 from
|
|
`/mnt/d/CodexBuilds/Capella2-data-linux-review`:
|
|
|
|
```sh
|
|
export PATH=/home/sorokinoleg/.cache/arcadia/rust/bin:$PATH
|
|
export CARGO_TARGET_DIR=/mnt/d/CodexBuilds/Capella2-data-linux-target
|
|
cargo test --locked --offline --config target/linux-cargo.toml -p oa-desktop
|
|
cargo clippy --locked --offline --config target/linux-cargo.toml -p oa-desktop --all-targets -- -D warnings
|
|
cargo fmt --all -- --check
|
|
cargo build --locked --offline --config target/linux-cargo.toml -p oa-desktop --release
|
|
```
|
|
|
|
Each target contains the corresponding `process-owner-desktop-test.log`,
|
|
`process-owner-desktop-clippy.log`, `process-owner-fmt.log` and
|
|
`process-owner-desktop-build.log`. Windows also contains the expected red logs
|
|
`process-owner-probe-red.log` and `process-mounted-identity-red.log`, plus passing
|
|
`process-owner-observer-green.log` and `process-owner-focused-green.log`.
|
|
|
|
Separate frozen artifacts and manifests are under
|
|
`D:/CodexBuilds/Capella2-release1-01a06e2e`:
|
|
|
|
| Platform | Relative executable | SHA-256 |
|
|
| --- | --- | --- |
|
|
| Windows | `ui-process-owner-windows-8c60008/arcadia-studio.exe` | `F64C4D3058E53C8F80E7B8F296F9C4AF89A3FC208E8B2ACD9F7A43181EF59293` |
|
|
| Linux | `ui-process-owner-linux-8c60008/arcadia-studio` | `00D2E3824C5489FC1DB158ACE81CC10B33B95F6E2EBB8659BABC04B19D5B970D` |
|
|
|
|
Source and frozen executable hashes were compared and matched. The Linux frozen
|
|
binary passed `/usr/bin/test -x`. This is a bounded desktop correction; it does
|
|
not replace the previously recorded complete workspace and API contract gates. |