Files
ARCADIA-Studio/harness/release-process-scroll-identity.md
T

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.