Files
ARCADIA-Studio/harness/reviews/state-multiselect-composition-20260923.md
T

62 lines
3.9 KiB
Markdown

# State multiselect composition review
Parent Codex-956atf reviewed the production delta from ordinary delivery
`7e348d967d1787c052a145b7448636613a6a7054` to State delivery
`bed7f825fd00ec32299032a664a5f5d753aad86d`, its independent review and native
report. This is a static integration review plus an
[offline evidence audit](../experiments/state-multiselect-delivery-audit-20260923/README.md),
not a fresh review of every fixture or native screenshot and not combined
acceptance. The independently authored 911-line model evaluator was not rereviewed
in this pass; its reported checker results remain peer evidence.
State now reuses the typed selection envelope while keeping exact row identity
as `(placement, relation)`. Visibility rechecks both the live placement and
relation source, preventing a surviving reassigned relation from rebinding a
stale row selection. Primary inspection remains separate from selected membership.
Queued singleton Select/Move/Remove refusals occur before shared App navigation
and allocation hooks. This addresses the peer critic's confirmed late-refusal
finding; preserve that ordering alongside e34's Scenario and Text admission.
Group preview uses the existing simultaneous placement planner and applies its
node/route commands to a diagram clone. State's explicit unsnapped displacement
policy preserves the fractional pointer delta, while the ordinary constructor
retains its ten-unit grid. Singleton bend snapping remains separate. The gesture
keeps its selection/context/viewport snapshot, retires on context and focus
changes, and refuses unsupported mixed selections as a whole. The State toolbar
reserves picker and selection-control space to avoid canvas refitting as group
membership changes. Keep those fixed slots when composing newer controls.
Exact State menu targets use `Option<Box<Target>>`; matching checks placement,
semantic object and current visibility. The menu's group branch precedes the
State-specific singleton actions. Preserve the existing attachment/reconnect
and bend menu payloads when adding this field to constructors and tests.
A `git merge-tree --write-tree` probe of candidate
`e34ba27e26ede3ab55f276acc250d92b2e0c3204` with delivery bed7 produced conflict
tree `5490ff2bd8d40ae594e7a6c2e8b66066107ea48d` without changing a checkout.
It found seven conflicted paths: app/state_attachment_escape_tests.rs,
app/state_bend_tests.rs, app/state_diagram.rs, behavior/state_bend_tests.rs,
behavior/state_canvas.rs, diagram.rs and diagram/attachment_tests.rs, all under
crates/oa-desktop/src. These reflect independently integrated attachment/bend
history as well as the new adapter; whole-file replacement would lose evidence
or behavior. Resolve against both exact parents and inspect the combined diff.
The auto-merged app.rs/model_menu.rs still require semantic review. Add
`Diagram.layout: None` to the peer evaluator if the combined schema requires it.
Required combined checks follow the actual risks: early stale-envelope refusal
with unchanged navigation/selection state, singleton attachment/bend routing with
production selection enabled, exact row targeting, fractional simultaneous group
movement, fixed viewport dimensions, Hide/Undo/Redo and source/model conservation.
Native peer evidence is bounded to its delivered branch; the combined executable
must be exercised before integration acceptance. Shared picker Escape issue 35
and reported State label overlap are existing open usability findings, not
successful behavior redefined by this review.
After the probe, the parent resolved all 15 conflict hunks in a separate checkout,
added `layout: None` to both native examples, and obtained an independent review
of the combined event paths. Frozen source
`a2a326f183ba0486814cd9fbdce19eb98cad7017` on
`codex/multiselect-union-956atf-20260923` contains the full source handoff and
`harness/reviews/state-multiselect-merged-20260923.md`. Its source checks pass;
compilation, runtime and combined acceptance remain unestablished.