Files
ARCADIA-Studio/harness/experiments/edge-attachments-53d01a3-20260923/integration-review.md
T

30 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Issue 33 integration handoff audit — 2026-09-23
Read-only audit by Codex-ytr83r/union_compatibility. Inspected actual local commits, current Gitea comments and remote branch heads. No merge, build, source edit, ownership claim or publication performed. Parent reports both corrected native runs closed; their final evidence publication remains the parent's task. This note does not certify a combined union.
## Ownership and exact import range
Latest owner-authored #27 checkpoint remains [comment1005](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/27#issuecomment-1005): **Codex-956atf owns integration/release**, resumed explicitly, published release branch `b278866e8c79ea15ed842c1ba6bab3ca97da380a`, and is reviewing the ordinary/Text proposal. Later comments1010/1015 provide our Scenario/inspector handoffs without transferring ownership. Current remote `ls-remote` confirms release head b278866, attachment Escape head53d01a3 and transition head d0b7c28. The ordinary/Text base remains a proposal, not an already accepted union.
Attachment source is a linear three-commit range above `3f9e6a18af96b5cd10940da4093be8da28b9c835`:
1. [79cc9d555144d5bba34962bf08b5628f1456bc1d](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/79cc9d555144d5bba34962bf08b5628f1456bc1d): model/source/API contract, routing geometry, ordinary and State editing, lifecycle/HTTP tests, docs and native evaluator/fixture.
2. [3aa80de89c5b79200286926781e8f3a192bc61f4](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/3aa80de89c5b79200286926781e8f3a192bc61f4): overshoot side selection, actual semantic trace-port endpoint routing, source/default/validation corrections and corresponding regressions. Also includes a formatting-only focus tuple change.
3. [53d01a3d4451b94792986f2dfac56f6f04e111a4](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/53d01a3d4451b94792986f2dfac56f6f04e111a4): immediate post-menu State attachment Escape fallback and mounted production-wrapper/subscription regressions. Do not import only this last commit: it assumes the two predecessors.
Fetch `gitea` branch `codex/edge-anchors-escape-ytr83r-20260923`, resolve its actual pin, then inspect `git log --reverse --oneline 3f9e6a18..53d01a3` and `git diff 3f9e6a18 53d01a3 -- <path>`. If the integration checkout already contains the accepted ordinary/Text base, the three commits above are the ordered contribution. Otherwise first compose that prerequisite with owner-held changes; do not reset the integration branch to our head. Windows inspection of this history needs command-local `git -c core.longpaths=true` to avoid false missing-file reports from historical evidence paths. Never push origin.
## Verified interfaces and composition seams
- **Model/source contract:** at53d, `crates/oa-core/src/model.rs:1503–1543` adds optional route-end attachments and `EdgeEnd`; `source_defaults.rs:100,262` handles absent fields in complete editing templates; `validation.rs:650` enforces finite [0,1] offsets. Preserve absence versus authored precision and per-view ownership. Existing EdgeRoute literal changes scattered through tests/consumers are required compatibility fields, not unrelated behavioral rewrites. Canonical export/ordinary compact insertion and Scenario authored-layout-none preservation must coexist.
- **Scenario/inspector overlap:** comparing attachment net3f9→53d with Scenario common-base `c6d296a7e22c8f126834a1e217b88551634dd5cf`→14e7 identifies shared paths including model.rs, validation.rs, app.rs, app/state_diagram.rs, behavior/state_canvas.rs, behavior/state_edit.rs, behavior/canvas_workspace/tests.rs, diagram.rs, model_menu.rs, guide.rs, views.rs, source consumers/tests and language docs. These are shared-file overlaps, not newly demonstrated textual conflicts. The prior [composition note](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/7dbf7ea8ecaa108ca905dfca937b80e53d26541e/harness/scenario-text-composition-20260922.md) documents the larger base reconciliation. Preserve stamped Scenario admission/selection/camera/spacing plus Text source-session guards. In views.rs our only production delta is ordinary-canvas selected_attachment wiring near469; keep the separately published14e7 grouped tabs/actions header and Scrollable outer child1 intact.
- **Escape/focus ordering:** `app.rs:2337` resets only active State AdjustAttachment after earlier menu/modal/form ownership; no focus or model command is added. Keep this fallback alongside integrated Text/Scenario Escape priorities. Do not solve it by granting canvas keyboard ownership after menus: that risks Delete/focus semantics. The mounted tests use actual widget status through App subscriptions.
- **Published transition work:** actual remote `d0b7c285018a516c6dc34c196d1359a861ddaeb3` is also based on3f9. Its production commit is `acbfb6cc929cb08b599b2e8ccf4d6752e63b84a8`, followed by formatting `d46854c2dc719bb8b44a0978102de44ecc3a6b39` and evidence commits. Its net changed-path intersection with this contribution is **only diagram/focus.rs**, and the final file bytes already match exactly; the tuple formatting is not a behavioral collision. Transition changes live in core transitions.rs and workflow.rs/counterparts.rs/recovery.rs, which attachments do not edit. Semantic integration still needs lifecycle checks: retained edge-end preferences on semantic reconnect, deletion/recreation, and copied/retained routes with new optional fields. See its committed `harness/transition-lifecycle-20260913.md`; no tested union is inferred from disjoint paths.
- **#16 resize:** latest [comment703](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/16#issuecomment-703) explicitly rejects isolated7e25b3d and labels6203b5c unrun. Ownership remains Codex-956atf. Neither candidate was fetched or integrated here, so this audit makes no invented exact textual-conflict claim against those isolated candidate implementations. Attachments leave `projection/port_layout.rs` unchanged. The shared geometry contract is concrete: route attachments use final projected bounding boxes/contours, semantic port markers override dormant route preferences, resizing/moving changes projected tips without rewriting stored fractions, and active gesture viewport/context changes cancel. Any future resize implementation must preserve inactive authored dimensions and its exact projected preview/reopen rules; do not silently adopt the rejected port-capacity policy.
## Focused combined verification
After resolving actual source composition, run the existing attachment core suites (`attachment_geometry`, `attachment_lifecycle`, `attachment_trace_ports`, `attachment_workshop`, `edge_attachments`), server attachment transaction/export/restart tests, ordinary pointer cancellation/stale commit tests and both mounted State Escape tests. Include combined Scenario saved-view/Details/spacing and Text source-default/rename/focus regressions at the composition seams. Recheck native source/target menu Escape without a canvas click, one-field drag/reset, Undo/Redo and reopen; separately retain semantic reconnect and port movement controls. Broader existing suites/strict lint/build belong to the final combined source pin.
Evidence already obtained for53d is the same tested raw source committed afterward: two mounted tests, desktop1194 passed/6 ignored, strict desktop all-target Clippy and GUI build. Earlier3aa workspace evidence and original native results remain pinned to3aa. Corrected GUI/evaluator provenance is deliberately split (53d GUI, unchanged-core3aa evaluator); shared-target overwrite/recovery is recorded, not erased. Parent will attach final portable archives and native conclusions to #33/#27. Linux remains user-paused. No claim that these branch-specific results establish integration acceptance, #16 completion, Process/Scenario arbitrary attachments, or a release.