Files
ARCADIA-Studio/harness/experiments/state-label-layout-20260924
..

State transition multiline label verification

Issue #36, Codex-ytr83r/root. Tested production/test source is 70bdcdf8fe, based on released 715036e132. Subsequent commits containing this evidence are documentation-only. The September 24 prerelease remains unchanged. Integration ownership and status belong to the issue.

Outcome and boundary

The original Ready\nfor review title no longer collides with its summary. Routing prepares a shared, measured hard-line plan used by canvas paint, hit boxes, previews, focus/Fit and SVG. Opaque State labels receive hits before covered node/row pixels, in reverse paint order; exposed action rows retain their identity. Authored geometry and all semantic/source data remain unchanged. See the contract for the retained excerpt budgets, separators, measurement and scope.

The bounded Windows implementation passed its focused core gates, full desktop suite, formatting, strict workspace/all-target Clippy, product builds, and maximized-window native B/W/U Save/reopen checks. A later isolated trial also passed Home Open and all three transition text-row hits at restored1442×932/displayed79%, preserving all nine source files and the entire Project. The earlier unsuccessful restored1442×842 attempt and Home-button discrepancy remain explicit in observations and independent native review; the later success does not establish their cause. No all-window input or universal Unicode rendering claim follows. This is a follow-up contribution, not a replacement release or complete application acceptance.

Automated checks

Windows x86_64-pc-windows-gnullvm, Rust1.98.1, locked/offline dependencies, one build job, no incremental compilation. All completed successful gates preserve identical source inventories before/after.

Gate Source Result
cargo test --locked --offline -p oa-core --test state_label_layout -- --test-threads=1 2af40c7e 4 passed
cargo test --locked --offline -p oa-core --test group_movement --test release_routing --test release_states --test routing_geometry --test routing_labels --test state_diagrams -- --test-threads=1 2af40c7e 64 passed
cargo test --locked --offline -p oa-desktop --bin arcadia-studio -- --test-threads=1 70bdcdf8 1540 passed, 0 failed, 7 unchanged existing manual/diagnostic ignores
cargo fmt --all -- --check 70bdcdf8 passed
cargo clippy --locked --offline --workspace --all-targets -- -D warnings 70bdcdf8 passed, no warnings
cargo build -p oa-desktop --bin arcadia-studio --locked --offline --message-format=json-render-diagnostics 70bdcdf8 passed
cargo build -p oa-core --example attachment_snapshot --locked --offline --message-format=json-render-diagnostics 70bdcdf8 passed

Core production/tests did not change after2af40c7e. Desktop adds12 passing regressions, with no removed or changed baseline outcomes. They cover width-dominating text and Unicode measurements, raw-prefix typed-reference provenance, covered/exposed row and overlapping-label selection, Shift/mixed-group refusal, generic fallback canvas, preview cancellation, fixed(+40,+40) complete-Project group commit/one-step Undo/Redo, and SVG line positions/order. These are scoped checks; the full workspace test suite was not repeated for this follow-up.

Preserved failure: desktop gate03 at66278ed3 failed compilation with E0382 in a new test; no tests ran. Commit70bdcdf8 adds row.clone() in that test only. Its failed receipt remains failed; later success does not relabel it. The source review also preserves and closes the earlier generic-fallback hit-order finding at the source-review level.

Native trial

The exact original nine-file fixture comes from peerbed7f825fd00ec32299032a664a5f5d753aad86d, harness/experiments/state-multiselect-20260923/native/evidence.zip, SHA2561d08c1bc6af4856a569ddd320ddf5403a302b8d9437750663a498541e489d663.

B is original; W changes only the transition title to40 W characters; U changes only that title to CRLF/CJK/combining/ZWJ/trailing-newline text. Independent complete-Project oracles and exact source bytes are frozen before GUI input. At the actual maximized1605×872 window, displayed68% and82% scales show separated/contained lines. Inspector aliases establish label-versus-exposed-action selection. Native group movement M is unexecuted; the fixed movement/history regression supplies that separate evidence.

All six pure-layout checkpoints passed: initial Save and fresh-process reopen/Save for B/W/U. Each preserves the entire Project and all nine source files byte-for-byte. Two isolated-profile processes exited0 after parent-observed Alt+F4, with empty logs and immutable binaries/source inputs unchanged. The independent review checks original images, complete models, every source-file hash and both process logs. Recorded zoom percentages are rounded; no exact100% or DPI calibration is claimed.

Preserved GUI:119440896 bytes, SHA2560401341388025544185455ad5520aa2c1b79ca1387d1a57c2bb0bddb8b23754a. Runtime libunwind.dll SHA256aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a. The supplemental bundle reader was built from the same candidate/compiler and is separate from the Cargo product artifacts.

Reusable evidence

Supplemental restored-window trial, September 25

The supplemental observations record the same preserved70bdcdf8 executable, rechecked before launch, with a fresh isolated copy of B and a private recent-model profile. At1442×932/displayed79%, Home Open loaded the fixture. First title, second title, and summary clicks each selected stable transition alias between; the latter two followed independently observed selection of state_b. Pure Save preserved all nine source files byte-for-byte and the complete expected Project. Alt+F4 termination was observed and both GUI logs were empty, but the watcher returned a null exit code; this is not exit0 evidence. The initial incorrect direct snapshot invocation rejected includes; the established converter-then-snapshot verification subsequently passed. That invocation error is preserved narratively; its original stderr was replaced by the successful rerun's empty log. The independent supplemental review checks all ten original images, archive members, source/model comparisons and tool hashes, and retains this evidence limitation.

Supplemental ZIP:888553 bytes, SHA256f120509338fb0ac55480ce11929381fb1a46fecf7d3a1c8869c395335f0eba0a. Its45 evidence members plus manifest include original captures, source copies, verification scripts/results and launch/close records. Executables/DLLs are excluded. The integrity receipt records successful CRC and every member length/hash checks. Historical builder paths require local relocation. Earlier failures remain unexplained; this bounded success does not replace the previous evidence or establish acceptance at other window sizes.

A subsequent bounded attempt to obtain the original1442×842 size was unexecuted: supported UI resizing yielded932→921→732 heights and tool target/bounds errors. The fixture was never opened or saved. Its unchanged bytes/model establish copied-fixture integrity only. Exact observations and errors preserve this outcome without diagnosing an application defect. Attempt ZIP:661746 bytes, SHA2563efb41d79a9dab70d7026ba83a7f9ec60a319fab79a8f0a383f3ce7a71b0f42f; integrity receipt. The original height-specific acceptance gap remains open.

Original trial and automated gates

  • Native evidence ZIP:2886914 bytes, SHA256039add524eb99ce855c2dc5680eec01c1d5b7f23024025c428125b9771a8e687.
  • Native archive receipt and member/relocation index preserve original paths and hashes; these paths describe the builder machine and are not peer-accessible dependencies. The ZIP carries original captures, metadata, source fixtures/oracles, checkpoint/process/helper receipts and hash-bound scripts, plus unchanged parent observations and review. Binary/cache payloads are excluded with their hashes retained.
  • Automated evidence ZIP:6244436 bytes, SHA2567706302ef7ee5d160a23ff2d562bedb8911b4e6d7ad4c941544088974b539b6e,113 verified members. Its index, integrity receipt, and scope note retain both successful and failed command records, frozen build environment, exact source inventories, compiler/dependency receipts and reproducible helper sources. Consult original per-command results rather than adding counts from different scopes.

Native archive member bytes and exact member set were read back after creation; all six independent model comparisons and source-snapshot checks passed, both process receipts were clean, and no bound input changed. The collector establishes archive integrity, not visual correctness by itself.

To reproduce on another Windows machine: check out70bdcdf8, use the project Windows build instructions, run the commands above, obtain the pinned peer fixture, and use the preserved trial/launcher recipes with newly generated local build/admission paths. Never reuse the builder's historical absolute paths or claim its binaries were rebuilt locally. Linux remains excluded by the user's current instruction. External SVG viewer font substitution, authored label occlusion of nodes, dynamic State row/header sizing, and broader State/Process congestion remain limitations outside this fix.