Files
ARCADIA-Studio/harness/reviews/prerelease37-integration-20260924.md
T

53 lines
8.7 KiB
Markdown

# Prerelease 37 source integration review
Read-only review by the parent's bounded independent critic, 2026-09-24. No Cargo, GUI, verifier execution, source/worktree mutation, or Gitea write was performed. The parent alone owns integration/release. This local report is not published peer evidence.
## Examined identity
- Original parent: `1006b496ae5db4d850a6b7f3f5b59bf4ca99a3f8` (ordinary/State selection plus real Text Apply rejection tests), clean at review start.
- Process delivery: `6d99aacab8ca1a91c857a2179baa14d80a2901e9`; production correction `ff712b24190342363d0275467e96f181872da6ad`, evaluator successor `b743a10d51032dc1655b94fed5e49fbbbcee83f4`.
- Allocation group: source `495464e84b5bae8ddad93e9fc69ef353e7f1c884`, evidence `57aec979f640ba1b8aa6fcbb7d9e26b29cf51596`.
- Allocation drawing: source `301126f6098286bf440c1bd1b1ed685753984723`, evidence `45605001f690ad9ee2ed786c3cd77ffbde8e10aa`.
- Picker Escape: `3e916f623c7709d6c443552cd9ec95df5918eb00`, production parent `e9167f5cc8509e3a4e3d4d1757ff801827a6b95a`; reported uncompiled candidate.
- Actual merged bytes reviewed: parent commit `c1b78acb9aa8c5024a3178b890102712078fc226` with staged picker/drawing merge. Index blobs: app.rs `646b0415a156b3a4e8074847c5b2dadfea24b27c`; app/multiselect.rs `a4bbacf1dfb6960144192a2e6f631e94ce75b519`; app/allocation_drag.rs `b6c329496c1c935defee6f6cd85c281c3556e4a2`; app/escape.rs `8683f30aaf42fdac4235130a74d05a025d4dfef4`.
Root/current/remote-default AGENTS and current PROJECT_GOAL/STATE were read. STATE still describes an earlier contribution; live issue37 ownership and release coordination remain with the parent.
## Integration order and overlaps
1. Merge Allocation group production `495464e` into the parent. Its ancestry already contains Process `6d99a`, Arrange planner `9b83f7c`, assignment planner `33e8801`, their evidence, and corrections. Do not cherry-pick the App tip alone without those ancestors. Parent completed this as `c1b78acb`, adding the new evaluator's required `Diagram.layout: None` for the existing integrated schema.
2. Merge picker/drawing `3e916f`. It descends from drawing source `301126f` and includes traceability prerequisite commits `bfc25985`, `4fbdf6f3`, `17f1f89f` plus drawing implementation `cf37c36b`. `301126f` alone is a test-only correction, not the entire feature.
3. Cite Allocation drawing evidence `45605001` separately: it is on `35b11eea`/`d6aabb5` evidence lineage, not the drawing source ancestry. Do not merge that evidence branch merely to obtain source. Group evidence `57aec` is a direct child of `495464e`; parent chose a linked-evidence delivery instead of copying its archives into the disk-tight worktree.
High-overlap files are app.rs, app/multiselect.rs, model_menu.rs, views.rs, plus shared behavior viewport and Scenario fixture tests. Picker additionally changes vendored pick_list/menu and replaces captured-Escape subscriptions with a persistent root wrapper. The actual parent merge auto-combined Process/group; drawing/picker required the app.rs menu-execution resolution described below. Absence of conflicts does not establish behavioral compatibility.
## Findings and preserved seams
No new material code defect was confirmed in the bounded source review. This is not compilation, runtime or release acceptance.
- app.rs:1351-1439 retains early exact selection/State/Topology rejection, no-op Process admission, captured Text handling, and Allocation bare-move rejection before shared reveal/allocation hooks. app/multiselect.rs retains ordinary/State handling and adds Process by surface, with snapshot equality still checking document, revision, epoch, generation, members and primary.
- app.rs:2655-2720 resolved menu dispatch correctly retains validated DiagramSelection/exact Process early dispatch, then the new captured mixed Traceability Show handling, then the existing State placement branch and selection reconciliation. Do not replace this with either whole peer side.
- app/allocation_drag.rs:636-652 requires `connection.is_none()` for Allocation ownership. diagram/multiselect.rs:158 exits when a connection tool is active; diagram/work_drag.rs:105-121 also excludes connection tools from the dirty-work shield. diagram.rs:905 handles connection endpoints before Allocation press. Thus the read source preserves drawing versus group-drag priority.
- app.rs:1239-1255 places the Escape bridge outside existing source observer and Scenario/canvas focus roots. app/escape.rs:99-135 offers Escape to the current overlay first and only then translates captured base Escape. The vendored menu closes its shared owner flag and refuses later queued selection while closed. These are intentional changes to shared input behavior and still require combined mounted/native validation.
- Parent's new evaluator `Diagram.layout` adaptation is necessary for compilation; source parity cannot be inferred from peer suite totals. No test execution was performed by this reviewer.
## Focused combined acceptance checks
1. Compile and run the exact integrated source, retaining all existing ordinary/State real-Text-Apply tests from `1006b49`. Extend the same concrete workflow to captured Process reorder and Allocation Press/Release: perform real Text Apply, deliver the old message, assert unchanged full Project/source/history/selection/status and newer input ownership. Peer Process tests mutate revision through an ordinary command; that is useful but not the same Text integration path.
2. In an Allocation view with a retained group, arm direct Allocation drawing, select performer/work, and assert one intended relation with no movement/group fallback; cancel and then perform a valid group assignment/Arrange. Include dirty Properties and selected route/attachment control rings to ensure target precedence remains intact.
3. On the combined root tree, open a picker in State and in an outer pending form/Find/rename context. First Escape closes only the picker; the next Escape follows existing modal priority. Cover open-and-Escape in one input batch and queued later clicks; retain dirty text and selection/caret. Existing candidate tests target these mechanisms, but have not been compiled on this combined source.
4. Process qualified occurrence Open/Back must return to the exact read-only subject; ordinary Explorer selection of the same semantic ID must restore editable local Properties. Inspect membership/primary plus Undo/Redo and saved bytes separately.
5. Recheck State attachment Escape, saved Scenario Details/focus/camera, Text indentation and source-draft retention on the packaged build. These are shared input seams, not implied by peer test counts.
## Retained defects and evidence limits
- Process reorder visibly overlaps orthogonal routes (A-to-U/B-to-V), obscuring endpoints. The Process evidence explicitly confirms this; unchanged connection records do not establish readable routing. Keep this known defect in prerelease notes unless independently corrected and verified.
- Group model deletion remains unavailable; Process cards cannot use placement Hide. Do not advertise aggregate removal as complete.
- Allocation group native evidence omits held Shift, held-preview, interruption/Escape, out-and-back/no-op and compact viewport acceptance; SA reopen was not exercised. Run7 compact labels were an unsuccessful resize, not compact acceptance. Automated no-op checks and native successful movement remain distinct.
- Drawing native evidence is scoped to OA/SA Containment; mixed Traceability and other projections are automated/source evidence, not native coverage. Initial interrupted trial and failed compilation remain historical failures.
- Picker production/evaluator source was delivered uncompiled. No fresh combined Linux/DPI/accessibility or cold-reopen claim follows from these contributions. User-paused Linux boundary remains unchanged.
## Retrieval record
All requested objects and picker successor were fetched and inspected locally. Initial unauthenticated remote fetch produced no output and was stopped; its temporary pack was retained. Authenticated five-object fetch used existing project credential handling without printing credentials. Its 90-second Python launcher timeout killed the immediate launcher while child Git continued receiving data and held captured pipes; after child transfer settled, the wrapper returned timeout, but `git cat-file -t` confirmed the requested objects. No remaining fetch processes were observed. Original temporary pack `tmp_pack_BRfqqX` (38,391,789 bytes) was not deleted. The completed transfer left approximately 243 MB free. Picker-only fetch with `--no-auto-maintenance` and longer bounded timeout then exited zero. No duplicate evidence archives were extracted. The local narrow fetch helper is retained in this directory; it contains no credential bytes.