7.2 KiB
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. Native hit acceptance is limited to the observed maximized window: an unsuccessful restored-window attempt and subsequent Home-button input discrepancy remain explicit in observations and independent native review. 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
- Native evidence ZIP:2886914 bytes, SHA256
039add524eb99ce855c2dc5680eec01c1d5b7f23024025c428125b9771a8e687. - 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, SHA256
7706302ef7ee5d160a23ff2d562bedb8911b4e6d7ad4c941544088974b539b6e,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.