113 lines
6.9 KiB
Markdown
113 lines
6.9 KiB
Markdown
# Direct connections and port placement
|
|
|
|
## User workflow and decisions
|
|
|
|
Architecture has explicit Select/move and perspective-specific drawing tools:
|
|
OA Interaction, SA Functional exchange and SA Boundary exchange. Select a source
|
|
and a highlighted target, or drag between them. Function cards generate/reuse
|
|
typed ports through the existing atomic planner; explicit port hits retain the
|
|
chosen identity. Boundary links use actual compatible component ports. Middle
|
|
drag and canvas-focused arrows pan while retaining the chosen source. Escape
|
|
cancels; empty space restarts. Hover details identify ports, owners and aliases.
|
|
|
|
Port sides and normalized positions belong to each diagram placement, preserving
|
|
semantic ownership. Dragging snaps to the owner's border; automatic placement
|
|
uses direction, connected peers and available border space. Right-click Reset
|
|
automatic position restores the derived anchor. Core commands, source bundles,
|
|
JSON/REST and SVG use the same model and projected geometry. Each completed
|
|
gesture makes one source-aware history operation. Menus and source-file folders
|
|
are covered separately in release-context-menus.md.
|
|
|
|
The bounded automatic router still permits dense-model crossings. Authored bends
|
|
remain available; no perfect-layout guarantee is made. Input direction and carried
|
|
items are not guessed from geometry. Drawing creates an empty carried-item list;
|
|
Properties supplies the name and contract editing workflow.
|
|
|
|
## Findings resolved during integration
|
|
|
|
- Shared feasibility queries previously scanned unrelated interface roles for
|
|
every candidate. Commit93fd32c reduced the measured4000-port/4000-role picker
|
|
from804ms to3.169ms optimized without relaxing final validation.
|
|
- Per-placement port anchors are integrated in35133de. Owner changes repair
|
|
graphical anchors atomically; raw source/API reject invalid owner references.
|
|
- Automatic labels now avoid other edge strokes as well as nodes/labels, with
|
|
bounded deterministic placement. Both source-ID orders have regression tests.
|
|
- Iced supplies a batch-final window cursor for every event. Ordered motion is
|
|
now authoritative for both press and release, preserving stationary-source
|
|
drags and preventing later motion from converting a click into a model edit.
|
|
Menu transitions invalidate cached pointer state through captured epochs.
|
|
- Enlarged port hit areas overlap at overview zoom. All three picking paths now
|
|
choose the nearest glyph, with stable tie-breaking for coincident ports.
|
|
- Port labels use a separate screen-space frame, avoiding text overprint and
|
|
keeping target identification legible while zoomed out.
|
|
|
|
## Earlier verification (superseded by final acceptance below)
|
|
|
|
Full Windows workspace passed485 tests (264 core,185 desktop,36 server); full
|
|
Linux passed488 (267 core,185 desktop,36 server), with strict Linux workspace
|
|
Clippy and optimized desktop/server builds. These full runs precede the last
|
|
ordered-release/hover changes. Four subsequent production lifecycle tests and
|
|
nine external lifecycle probes passed. Final189-test desktop runs, strict
|
|
workspace Clippy and rebuilds passed on both Windows and Linux. Native acceptance
|
|
is still in progress; do not infer it from automated suites.
|
|
|
|
Root operated DE6BD100 and46EE7BD9 Windows builds through Computer Use. OA palette
|
|
click-click creation/history, SA direct FE/Flow boundary links, fast port-to-port
|
|
drag, four port sides across trials, automatic reset/Undo, draft/menu guards and
|
|
save/reopen passed. The46EE build was inspected at1100x700, rejected an input port
|
|
as an outgoing source, and cancelled without dirtying the saved model. Its window
|
|
closed normally, exit0. The final ordered-pointer/hover/pan build still needs
|
|
native acceptance on both platforms; middle-button dragging is unavailable in
|
|
the native tool, so use the actual keyboard-pan path plus production mouse probes.
|
|
|
|
Saved evidence under `D:/CodexBuilds/Capella2-release1-01a06e2e/`:
|
|
|
|
- `ui-port-drawing/authored/project.arcadia`:41objects,27links,0checks; Left anchor,
|
|
FE and Flow boundary link. Reopened on46EE and exported `project.svg` (5050bytes).
|
|
Root inspected its raster rendering for port direction, nesting and routes;
|
|
the renderer's fallback font differs from the application.
|
|
- `ui-port-drawing-reviewed/authored/project.arcadia`:41objects,26links,0checks;
|
|
Bottom anchor and fast-drawn FE, source bytes inspected after native Save.
|
|
- `port-drawing-final-tests.log`, `port-drawing-final-linux-*.log` and independent
|
|
review/probe folders retain exact command scopes.
|
|
|
|
Root's final Windows build9A7FF074 passed fast FE drag, first Bottom port drag,
|
|
repeated Left drag, readable hover name/owner/alias, arrow pan with source retained
|
|
offscreen, target completion and one Undo. Current native window328292 has the
|
|
isolated41object/26link model; independent native reviewer owns it exclusively
|
|
for the remaining Windows tasks. Linux final build23CEAE18 passed189 desktop
|
|
tests and strict workspace Clippy but still needs native verification.
|
|
|
|
Pending: final menu lifecycle, Function-card auto endpoint creation, Standard
|
|
boundary drawing, minimum layout, save/reopen and Linux native workflow.
|
|
The broader first-release objective remains incomplete.
|
|
|
|
## Final tooltip and native acceptance
|
|
|
|
The earlier statement that separate Frames eliminated overprint was falsified by
|
|
independent native QA. Iced batches text after meshes within one GPU layer. A
|
|
passive second Canvas in Stack now creates a real layer above diagram text, with
|
|
no input capture or cursor override. Context-scoped held-button tracking prevents
|
|
stale suppression after menu dismissal and premature tooltips during leave/reentry.
|
|
Four production lifecycle tests passed on Windows and Linux.
|
|
|
|
Final Windows193 desktop tests, strict desktop Clippy and build passed. Root tested
|
|
binary1EEBDC3C (full SHA256 in ui-port-tooltip-final executable): first Bottom drag,
|
|
menu outside dismissal, first repeated Left drag, FE creation and Save,41/26/0.
|
|
Independent9A7/3F534C review passed Standard rejection/completion, function-card
|
|
endpoint generation, one Undo/Redo, Save/reopen and minimum1100x700; it reproduced
|
|
then verified the tooltip fix. Exact report: drawing-independent-native-review.md
|
|
in the external evidence directory.
|
|
|
|
Root operated Linux binary7AC5EEEFFFD5514C771CF0E3B75471CA771DF75BE5DEBE9B9928B1527E1591F1:
|
|
first FE drag; Right→Bottom and Bottom→Left port movement; Reset/Undo; arrow pan
|
|
with source offscreen and target completion; Save/reopen; source folders and file
|
|
opening. Saved ui-port-tooltip-linux/project.arcadia,41/27/0, contains both exchanges
|
|
and Left anchor. Runtime log empty; normal close exit0. Inspected1440x900; minimum
|
|
layout evidence is Windows. Linux189 desktop tests/strict Clippy/release passed,
|
|
then four new lifecycle tests passed separately. A stale142-test shared-worktree
|
|
cache result was excluded and main explicitly rebuilt; targets must be checkout-specific.
|
|
|
|
Drawing milestone accepted with these evidence boundaries. The broader first
|
|
release and direct behavior editing remain incomplete.
|