Files
ARCADIA-Studio/harness/release-behavior-canvas-windows-gate-20260911.md
T

6.0 KiB

Shared behavior canvas: Windows union gate

Codex-956atf /root, 2026-09-11. The integrated camera, permanent palette and editor overlay pass 729/729 desktop tests at source ff0175488ac57a92d401b00a0e4542582a82d8e9, with a warning-free compiler and 257.42 seconds of test execution. This is a closed test checkpoint, not native or release acceptance. The complete OA/SA goal remains unfinished.

Integration and review

The reviewed isolated candidate fb1da912c9951f33feed2fad9ad689bc46cd20d0 was applied from common ancestor c0e66f94 to root 638d06c. Integration 6969c82 retains current parent focus/session recovery, reference chooser and boxed workflow behavior. Both scenario-parent and canvas focus owners wrap the actual App view. Existing parent regressions were reconciled with the real Iced UserInterface/Cache harness rather than obsolete synthetic canvas scroll views.

The independent union review found no actionable integration regression against 06ec962. It independently checked installed Iced message/action ordering and nested overlay operations; its source-only verdict does not claim execution. Earlier R123 review and candidate source handoff retain their respective scopes.

Candidate publication initially rejected because remote 113fb8b contained the user's instruction sync. Its only changes were AGENTS/PROJECT_GOAL, already identical to root. Merging them in the isolated worktree produced ca19ad2 with unchanged candidate Rust sources. Normal push and exact remote readback passed; neither history was force-pushed or overwritten.

Executed gates and corrections

All commands used Rust/Cargo 1.98.1, Windows gnullvm, task-local LLVM-MinGW and CARGO_BUILD_JOBS=1. Desktop is a binary target: use --bin arcadia-studio, not --lib. Linux/WSL actions remain user-paused.

Source Command after cargo test --locked -p oa-desktop --bin arcadia-studio Result
06ec962 canvas_workspace::tests -- --test-threads=1 --nocapture 2 passed
06ec962 production_ -- --test-threads=1 --nocapture 22 passed: all 17 new mounted cases plus 5 existing cases
06ec962 behavior::scenario::workspace::tests:: -- --test-threads=1 --nocapture 21 passed, including all five parent-focus gates
ff01754 -- --test-threads=1 729 passed, 0 failed/ignored/filtered; 257.42 s
82fd0ac guide::tests -- --test-threads=1 3 passed after guide copy refresh

These scopes overlap and must not be added together. The full test compile took 23.89 seconds. Source 06ec962 corrected two test API errors from the first compile: explicit Headless screenshot trait selection and the existing boxed semantic event constructor. ff01754 narrowed the two concrete App-dependent Scope methods to crate visibility, removing the resulting traceability visibility warnings. All 518 full-gate inputs match Git bytes exactly.

The initial mistaken --lib invocation failed before compilation. Subsequent strict all-target Clippy at 82fd0ac reported one collapsible focus conditional; abffa4b preserves its condition and behavior with a single if. Its next Clippy run reached the production target and found four obsolete variants: First, Canvas scroll area, and the two Tools shelves. Therefore strict Clippy has not passed on this contribution, and this record does not certify the subsequent cleanup. Current ownership and validation belong in issue 2.

Evidence and exact identity

Archive manifest identifies 45 exact payloads totaling 1,479,172 bytes, including successful and failed command logs/results, input manifests and the original 18 changed Rust inputs used by the 06ec962 compiler before LF normalization. Manifest SHA256: FF470BD8160C89B1ECFECE7AAF72AA6A7F4D3D722C69F191FCA07FAC5169695F.

The 06ec962 raw Rust files differed from their Git blobs only in CRLF/LF; their original bytes and both hashes are preserved. Before the full gate, those owned files were normalized to the repository's existing LF policy. The later 518-input manifest is byte-identical to ff01754, SHA256 966B125EC8862D0E48ED98692BC3DC380F0242007EB4C018621A9FDE844562EB.

The immutable local full-gate test executable is 139,577,856 bytes, SHA256 63DE2FF7FB4C5E49C1E59378EAE24D77471AF35FADADFAEC5871956E7B2E0D8D. Its metadata is archived; the executable itself is not distributed in this evidence folder. The full log is 83,584 bytes, SHA256 A6D2E0D39B45246D88F1F5B61117CDB0897B23A0D072238ECA7A5550495BD421. The task-local adjacent libunwind DLL is 190,464 bytes, SHA256 AA282FA47BB2C4E210CEA5E470CDBDCA58568F0BE0BC73E404D86AB9CD95EF6A. This records copied artifact identity, not a newly captured loaded-module trace.

Practical limits

The tests exercise actual App widgets, focus operations, drawn focus borders, camera transforms, stale gestures, caller return and exact source/history. Native dialogs, subscriptions, OS input/focus, complete accessibility and current GUI usability remain separate. Forced palette-overflow tests use 1100x420; they do not prove native overflow at the application's 1100x700 minimum. Picker tests inject cancellation at the external dialog boundary.

Process free placement, saved scenario lane arrangement, wrapping/operand transfer, full endpoint manipulation and the peer B4 renderer union remain outside this camera milestone. The Capella comparison records those engineering distinctions. The separately adopted allocation drag contract and review address the user's activity-movement issue; they are not implemented by this canvas gate.