Files
ARCADIA-Studio/harness/release-diagram-port-correction.md

4.4 KiB

Diagram and port correction — adopted priority, 2026-09-05

User identifies flat graph diagrams and divergent port concepts as material defects. This is a release requirement, not optional visual polish. The prior data contract's generic InOut-port warning is insufficient.

Evidence

Core projection.rs emits every relationship between placements; Overview removes all containment. Demo architecture mixes participants/work with capabilities, processes, chains and missions. diagram.rs paints every object, including a Port, as a large card; functional edges ignore their source_port/target_port geometry. Boundary exchanges disappear unless ports themselves are placed. This explains the reported divergence despite existing allocation-parent logic.

Official diagram descriptions distinguish OAB/SAB allocation, functional dataflow, capability and state views. Allocation documentation explains nested allocated leaves and distinguishable inferred parent summaries.

Installed 7.0.1 Help, 4.05. Diagram Editor, says function ports appear automatically with their displayed functions in synchronized diagrams. 7.1. Modeling accelerators describes component exchange generation producing component ports and port allocations, and separate exchange-item propagation/synchronization to function ports.

The FunctionalAnalysis metamodel distinguishes FunctionInputPort/FunctionOutputPort with incoming/outgoing item contracts; FE creation automatically creates those endpoints. ComponentPort has distinct Standard/Flow kind and orientation applicable to Flow, plus ComponentPortAllocation to allocated ports. These semantics must not be reduced to one bidirectional interface-bearing field.

Native Capella eventually completed startup in the disposable workspace (console launcher pid14556/window1049956). Root reached the System Analysis workflow and System Architecture diagram list. No new native port workflow has been observed yet. Existing native benchmark establishes nested OA activities and class/interface allocation rows but does not prove ports. A later physical Escape stopped Computer Use; native work is paused while implementation continues.

Ordered implementation

  1. Correct shared projection + SVG + canvas: architecture shows participant containment and allocated work with meaningful exchange edges; dataflow shows work hierarchy; capabilities have a dedicated view. Keep an explicitly named all-relationships view for exploration. Do not change semantic objects just to remove clutter. Ports derive as small, selectable boundary anchors of visible owners, and exchanges terminate on the actual port. Computed links after collapse must not invent port identities. Group movement, Fit, SVG and hit testing use this same geometry.

  2. Correct authoring/model contracts: distinguish functional In/Out contracts from component Standard/Flow ports; function-port exchange items; explicit component→function port allocation and direction/owner checks. Creating a functional exchange creates or reuses compatible ports atomically. OA interactions remain activity-to-activity without fake functional ports. Preserve legacy IDs/prose/interface references in the explicit schema3 migration, with reviewed resolution for incompatible old InOut work ports. Implement source/form/API/reference/transition parity with this change, not a canvas-only workaround.

    Exact adopted interface, invariants, planners and migration acceptance: release-port-contract.md.

  3. Contextual insertion/allocation and grouped edge filters, orthogonal routes and labels. Default demo/worked examples must communicate these modeling distinctions immediately. Show allocation/containment explanations and derived-summary styling. Verify nested movement/collapse/reveal, creation, port selection/connection, exchange allocation, undo, save/reopen and SVG on actual native UI at default/minimum size.

Keep R5 state editor's current code/tests; its native acceptance remains pending. R6 data contract and release audit must be amended around step2 before implementation. All prior first-release requirements remain active.