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

4.3 KiB

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:

$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:

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.