# Compact palette implementation verification — 2026-09-10 Owner: Codex `/root/palette_finish`, assigned by root. Base branch `codex/release1-continuation`, starting HEAD `1797516`. No commit or push is performed by this worker. Root owns native QA, guide changes, integration and the shared release ledgers. Read repository AGENTS.md, Gitea issue #1/comments, Wiki Home, open PR inventory (empty), and `harness/release-capella-basic-editing-20260907.md` before editing. Ownership and results are recorded in issue #1. ## Changes * Qualify the Iced `column!` macro in the palette to remove E0659. * Borrow the projected scene when F2 finds its selected node instead of moving its view out of `Arc`, removing E0507. * Remove redundant or-pattern parentheses and the unused old `Edit` event. * Reject non-finite placement coordinates before they can become inline-editor or recovery-draft geometry. Existing context/epoch guards continue rejecting cancelled or stale canvas gestures. * Bound the inline name card to the remaining canvas height and make its content scrollable, so a wrapped performer title or validation error can remain inside the canvas. The card stays in the canvas stack and does not add a toolbar row. Four new regression tests live in `crates/oa-desktop/src/app/architecture_authoring/tests.rs`: 1. OA and SA contextual creation preserves root ownership while adding the allocation and placement atomically; exact source bundle Undo/Redo and camera values are checked. 2. A real Iced canvas F2 event requires canvas keyboard focus, dispatches the selected node to inline rename, retains its exact engineering name, and preserves placements/camera and exact source bundle Undo/Redo. 3. Blank creation/rename submission and Escape never accept a placeholder or change the accepted source bundle. 4. NaN/infinite canvas coordinates cannot poison draft geometry or recovery validation; the next valid click still opens naming. ## Verification All Cargo commands use `.local/toolchain/env.ps1`, `CARGO_BUILD_JOBS=1`, `--locked`, and the worker's exclusive Cargo lease. The first repaired build passed 15 existing `architecture_` filtered tests, with 569 filtered out. Log: `.local/palette-focused-initial-20260910.log`. It exposed the unused `Edit` warning, subsequently removed. An initial new-test compile caught an incorrect SourceBundle assertion; it was corrected before the final tests. The full current desktop suite passed **588 tests, 0 failures, 0 ignored**: `cargo test --locked -p oa-desktop --bin arcadia-studio -- --test-threads=1`. Compilation/link took 44.58 s and test execution 113.14 s. This includes the four new regressions and existing placement/recovery/connection/transition coverage. Log: `.local/palette-desktop-tests-20260910.log`. `cargo build --locked -p oa-desktop --bin arcadia-studio` passed in 2m 03s, including root's updated guide text. Log: `.local/palette-gui-build-20260910.log`. `cargo fmt --all -- --check` passed; its empty success log is `.local/palette-fmt-20260910.log`. Built executable: `C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\arcadia-studio.exe` (109,516,288 bytes), modified `2026-09-10T17:42:00.6365121Z`. SHA-256: `1B47C096624BB1101BEC8B18E63CD601A259DFF8C1BEC24581C31C6B511F9411`. Root received this path/hash for an isolated native-QA staging copy. `cargo clippy --locked -p oa-desktop --all-targets -- -D warnings` passed in 47.56 s. Log: `.local/palette-clippy-20260910.log`. All assigned gates are complete. The worker released its Cargo lease and source freeze to root; subsequent workers must obtain the next lease from root. Source and report changes remain uncommitted for root's integration. No native UI was operated by this worker. ## Scope and remaining acceptance Automated application/canvas tests establish state transitions and exact history; they do not establish native focus, visual compactness or pointer ergonomics. Root must inspect the newly built executable at wide/minimum sizes, especially bottom/right-edge naming, long names, wrapped errors, expanded palette labels, Enter/Escape, F2, existing insertion/Locate and contextual allocation. Canvas origin must remain stable through arming, naming, validation, commit and cancel; only the explicit palette width toggle may resize the canvas. Continue the independent basic-editing oracle, Save/reopen/recovery and OA/SA transition destination checks. No Windows release acceptance or Linux runtime acceptance is inferred from this implementation report. ## Follow-up: stale submission rejection Independent local review and the separate Codex-956atf host's issue #1 comment #12 identified a remaining stale-submit defect after the first verification: Submit set `placing=true`, then a stale document/revision guard returned with only a status string. That hid the retained inline name card. Earlier passing gates above did not cover this rejected-submit path. Codex-9e8r6t `/root/palette_finish` resumed the assigned architecture scope and sole Cargo lease. Guard rejection now restores `placing=false` and copies the explanation into the card's error, without rebinding its document/revision or changing its name, point or intent. A new regression covers Create/Rename × stale document/revision (four cases), repeated Submit without rebinding, actual inline-view presence, exact serialized saved draft, accepted Project/source/revision/camera preservation, Escape, and successful fresh creation with exact Undo after cancellation. The focused `architecture_` gate passed 20 tests, 569 filtered out, in 2.22 s after 48.63 s compilation. Log: `.local/palette-stale-submit-tests-20260910.log`. Root's native `1B47C096…` check then found that the first Escape was consumed by the focused Iced name field and only unfocused it. The original global keyboard subscription intentionally ignores captured Escape; that policy remains intact. A separate subscription is now present only while architecture naming is inline, and dispatches a narrowly rechecked `CapturedEscape` event. The Cancel handler also restores `Cancelled · Select / move` status; ordinary architecture Escape delegates to that handler. The only app.rs edits are this subscription entry and the pre-existing architecture Escape guard delegation. Two additional regressions exercise actual Iced TextInput update/capture followed by the subscription mapper and App update: first-keypress Create/Rename cancel preserves exact accepted model/source/revision/camera, while absent architecture, armed placement and the existing-element picker do not react to captured Escape. Ignored Escape and captured Enter are not mapped by the new subscription. The final `architecture_` gate passed **22 tests**, 569 filtered out, in 4.12 s after 2m 19s compilation. Log: `.local/palette-escape-tests-20260910.log`. The same locked desktop build command passed in 1m 12s; log: `.local/palette-candidate2-build-20260910.log`. Workspace formatting check passed; log: `.local/palette-candidate2-fmt-20260910.log`. Second candidate at the same local build path: 109,518,848 bytes, modified `2026-09-10T17:59:06.6655664Z`. SHA-256: `E6D6B1D975A11F242D288039E8F07D20E5474EA9C7CFCDE93F1318046EA548D4`. Root received this identity for a new staging copy. Strict desktop Clippy (`--locked -p oa-desktop --all-targets -- -D warnings`) passed in 1m 07s; log: `.local/palette-candidate2-clippy-20260910.log`. Cargo lease is released to root again. No worker-owned Cargo process remains. Root's existing native stage remains the earlier `1B47C096…` binary and is not overwritten. The full integrated suite is deferred until the other-host behavior and forms changes are integrated; the earlier 588-test scope is preserved above.