Files
ARCADIA-Studio/harness/release-source7-desktop-independent-review-20260906.md
Codex e2ecfea69b
Rust checks / check (ubuntu-latest) (push) Canceled after 0s
Rust checks / check (windows-latest) (push) Canceled after 0s
Checkpoint source 7 workflows and in-progress diagram authoring redesign
Preserve current core, source, REST, desktop, recovery, documentation and validation work, including AGENTS.md and the development summary. This is a work-in-progress checkpoint: the new compact palette has outstanding compilation errors and native acceptance; earlier passing gates retain their documented scope.
2026-09-10 10:06:55 -07:00

5.0 KiB
Raw Permalink Blame History

Source 7 desktop independent review — 6 September 2026

Read-only source review by the core contract implementer, independent of desktop implementation. No Cargo, native input, or production edits in this review. The desktop owner was still wiring tests and artifact navigation; observations refer to the named source seams, not a tested release executable.

Concrete finding

P2 — Selected asynchronous operation values offer output-only parameters that core rejects. crates/oa-desktop/src/data_values.rs::phase_allows (around line 136) narrows Call to In/InOut and Reply to Out/InOut/Return, but its wildcard admits every direction for Asynchronous. behavior/scenario.rs::Draft::signature / browsed_values and forms/data_fields.rs::message_value correctly obtain the exact selected-operation signature, then pass the unchanged Asynchronous phase through the common field browser. Core validation.rs (around line 1926) intentionally narrows Asynchronous when a selected signature exists to In/InOut/Unspecified.

Reproduction: give one SA operation an In parameter and an Out or Return parameter, declare asynchronous transmission, and select that exact operation on an asynchronous BoundaryInterface message. The scenario and property value browsers offer the output-only parameter; entering its value causes Apply to reject message_parameter_phase. The selected allocation itself is valid. This is an authoring-option mismatch, not a core admission defect. Ordinary operation=None asynchronous messages retain their historical broader phase behavior, so globally treating every Async as Call would regress compatibility. Pass an effective input-only phase for selected operation signatures, or an explicit phase policy, consistently through roots/children/resolve/current-value presentation. Pin both editors plus ordinary Async and Reply as controls. Reported directly to root and desktop owner; runtime reproduction and fix verification remain pending.

Bounded preview limitation, not semantic identity loss

behavior/topology.rs around line 930 requests at most 512 flattened preview contributions for an expanded reference, or four when collapsed. topology/contextual.rs::preview stops at that limit. GraphNode::endpoint_rect around line 781 returns the enclosing reference rectangle when an exact endpoint is absent from preview; qualified link anchoring and selection_offset use this fallback.

A valid link to contribution 513 can be authored via the complete scoped picker and retained exactly, but its line attaches to the outer reference even after Expand. This is not an authoring blocker or a semantic retarget: selected links show full From/To names and aliases in topology/view.rs around lines 186–188; qualified selection shows its full address and an Open contribution definition action around lines 191–194; the preview itself reports “N shown · M direct contributions” around topology.rs line 1303. The earlier 512-entry picker omission is corrected and is not repeated as a finding here.

Small presentation recommendation: identify an endpoint omitted by the expanded preview limit explicitly, or reserve a bounded row for selected exact endpoints. Preserve the deliberate folded-reference summary. Do not require unbounded expansion of repeated/nested trees. The displayed count also mixes flattened nested rows with a direct-contribution total, so it can say more shown than direct contributions; label those two populations clearly if changing this area. Whether existing text is sufficiently clear at minimum window size requires native observation; this review does not claim an observed user error.

No additional material finding in inspected seams

  • Qualified endpoint hits retain complete reference paths; root reference UUIDs are used only for local selection/visual containment. Caller-owned link edits validate through the shared core index. Repeated leaf UUIDs do not replace the selected path.
  • The new State::qualified_selection(p, owner) filters stale transient selection through core resolution before breadcrumbs, source seeding and camera use. Authored drafts remain intact. OpenQualified checks the current event context, pending edit guards and successful Apply before resolving the address again in the resulting accepted model. Definition navigation is explicitly labeled as affecting all uses.
  • Operation choices consume core eligible_allocations; exact current invalid selections remain visible for repair rather than being replaced with another allocation. Message signatures and labels consume core operation resolution. Explicit unresolved intent does not fall back to channel union. Reply displays the exact correlated Call operation and has no independent writable selection in scenario creation.

Limits: this was targeted inspection of contextual authoring/rendering/navigation and operation controls, not an audit of all semantic-review composition, checkpoint migration, accessibility, or large-model frame time. Existing focused test results were supplied by the desktop owner; no new runtime evidence was generated here.