Files
ARCADIA-Studio/harness/release-routing-verification.md
T

12 KiB
Raw Blame History

Editable routing — verification record

Status on 2026-09-05: routing passed code and native acceptance, including 65fa9ab label-placement corrections and desktop checkpoint 23535b4 with the release-cursor fix. The six reproduced default SA label-overlap pairs are resolved; native typed reopen and final minimum-size gestures passed. Final independent native review found no unresolved material UI finding. This is subsystem acceptance, not first-release completion. Native trials were performed and reported by the lead; the documentation worker inspected logs and saved artifacts and did not perform additional native input.

Implementation checkpoints

Commit Scope
4e5a88d Route schema, commands, movement, validation and identity lifecycle
a7c6f96 Source/source-project/JSON/REST parity and normative contracts
68b1eff Shared orthogonal routing, hierarchy/port geometry and stable previews
30c7db1 Settled route budgets and label-only path invariance
4b8545d Deterministic three-participant routing workshop
65fa9ab Stable bounded label placement; six workshop overlap pairs reduced to zero
23535b4 Accepted desktop route authoring, shared rendering and final gesture correction

Desktop integration passed its final native iteration and is checkpointed. Shared route geometry drives canvas rendering, hit tests, preview, Fit and SVG; persistent routes belong to a diagram and refer to existing semantic edges. See release-routing-contract.md for the contract.

Automated evidence

Logs are under D:/CodexBuilds/Capella2-release1-01a06e2e unless noted otherwise.

  • routing-workspace-tests.log: 196 core, 103 desktop and 22 server tests passed with the locked workspace command. This run preceded the last budget regression test. The server count is one unit test and 21 HTTP tests.
  • routing-workspace-clippy.log: strict locked workspace Clippy passed. routing-review-build.log, routing-budget-build.log and routing-native-final-build.log record successful subsequent builds. A build log alone does not establish that its executable was launched or exercised.
  • Core lifecycle coverage includes 13 routing tests for independent per-diagram metadata, set/remove/no-op behavior, validation, exact undo, delete/reidentify, default migration, one-endpoint pin preservation and grouped endpoint movement. D:/CodexBuilds/Capella2-01a06e2e/routing-core-final-tests.log records 180 passing core tests before the separate geometry suite was integrated. Frozen historical migration fixtures were retained; comparisons explicitly normalize the new empty route default.
  • Source/API coverage includes five routing source tests, two cross-file route update regressions, malformed route diagnostics, JSON/source equality, default loading, conditional HTTP updates and durable reopening. The server suite and strict core/server Clippy passed after those changes.
  • routing-review-desktop-tests.log: 103 desktop tests passed, including actual pointer events at 50%, 100% and 150% zoom; cache reuse on pan/zoom; stale, Escape and invalid-draft guards; one-step undo; shared Fit/SVG geometry; close port-lead bend insertion; displaced-label picking and dragging.
  • Independent follow-up on 30c7db1 ran all 17 geometry tests, four targeted desktop regressions, six external preview/commit fixtures and a valid 1500-edge route-budget reproducer. Label-only edits preserved paths and warnings; editing one edge preserved unrelated settled routes. Strict core Clippy passed. No unresolved blocking/high-impact routing code finding remained at that checkpoint.
  • Final follow-up: all 18 geometry tests, strict core Clippy and fresh independent correctness review passed for 65fa9ab. routing-final-desktop-tests.log records 104 passing desktop tests, including fast drags with no final motion event. routing-final-clippy.log records strict full-workspace Clippy and routing-final-build.log records a successful desktop/server build. Four focused desktop tests independently passed after the release-cursor fix. This is explicit focused regression evidence after the earlier full-workspace test pass, not a claim that every workspace test was rerun after every change.

Review findings and resulting fixes

An independent correctness/architecture reviewer reproduced six concrete findings; a separate requirements/UI reviewer inspected default and minimum native screenshots. Fixes cover detached label selection and occlusion, label fraction preservation, bend insertion near port leads, SVG header layering, routing warning visibility and selected-edge hit ties. The native first build exposed a retracing single-pin spur; shared geometry was corrected and the reviewed native run below repeated the gesture successfully. Promoted endpoints suspend bend editing while retaining metadata. Toolbar controls use a stable row and the guide explains the gestures. A duplicate fold notice was removed after the reviewed native trial.

A later fresh UX reviewer found six overlap pairs among the workshop's default SA labels. Commit 65fa9ab reduces those pairs to zero with stable bounded label placement. The 18-test geometry suite and fresh correctness review passed; native reopen showed separated labels and continuous dragging of an automatically displaced label. The final desktop correction uses the cursor position at release when motion events are coalesced. Its automated regression and first-try short native drags passed. Both findings are closed for this routing slice.

Native evidence already performed

Reviewed executable: D:/CodexBuilds/Capella2-release1-01a06e2e/ui-routing-reviewed/arcadia-studio.exe. SHA256: 6DAD490D75F2A67A79A0804F33192EF62A3DCBEA92F5EEDA8EA47788D12273B8. Root exercised the default-size OA view:

  1. Selected an edge without moving the canvas and dragged an automatic segment to create a non-retracing detour.
  2. Dragged the label while the polyline stayed unchanged, selected a node, then clicked the displaced label to reselect its edge.
  3. Dragged an existing bend; exercised Undo/Redo, Remove bend and undo, then Reset routing and undo.
  4. Folded the source container: the promoted edge routed automatically and route editing was disabled. Expansion restored the saved pin and label.
  5. Saved routing-authoring-ui.arcadia and exported routing-authoring-ui.svg in the same reviewed directory. Model checks remained zero throughout.

The saved source is 33,548 bytes and contains @distress_signal routing with a waypoint (400, 10), label fraction 0.5 and offset approximately (-69.83374, -83.17815). The SVG is 2,564 bytes.

Root then launched ui-routing-final/arcadia-studio.exe, SHA256 5558CC203E9DAFED3D0BCA1C40B5E4BDE426F00F8BC37DCD9B33A7338ADD5615, containing 30c7db1, duplicate fold-notice cleanup and export-dialog copy changes:

  1. Native Open reopened the saved authored source. The UI reported “All changes saved”, 41 objects, 25 links and zero checks; the saved bend was visible and clicking the detached label selected the same edge.
  2. Root rendered the actual exported SVG separately to PNG using Sharp and visually inspected the correct authored detour, label, bounds and nesting.
  3. The routing workshop loaded in OA with 12 cards and seven links, then SA with 12 cards and 12 links. The model reported 75 objects, 61 links and zero checks.
  4. Dragging the internal Incident decision line created a pin. Moving one of its functions kept the pin fixed. Moving the whole System by snapped diagram delta (-20, +40) translated the pin by the same delta. Single-step Undo/Redo restored both the placement and pin changes.
  5. Controls fit at 1100 pixels width. The height-resize attempt did not change the window; this establishes width behavior, not a new 1100×700 pass.

Unexpected concurrent arrangement/view changes were preserved by native Save As to ui-routing-final/workshop-arrangement-preserved.arcadia (66,434 bytes), then the original fixture was reopened. The later typed internal-route trial was saved separately as described below. A capture briefly returned only a 16-pixel icon; subsequent full native captures succeeded. The anomaly did not establish an application failure.

Final native verification:

  1. Root saved ui-routing-final/typed-routing-authoring-ui.arcadia (66,598 bytes), folded and expanded its System, and observed the authored route restored with “All changes saved”.
  2. ui-routing-labels/arcadia-studio.exe, SHA256 4D4C8163EA2A81F2D9A241921571BE3118AE57ECD2987E7088878CBCA9F50536, reopened that typed source. Its SA custom pin persisted and default labels were separated. An automatically displaced label dragged continuously; Undo worked.
  3. Accepted executable ui-routing-accepted/arcadia-studio.exe, SHA256 E9B662788CC3979F8E883299CAF9B16917498D6F0DEAB62E02D9A6CE5C18AFB2, was operated at 1100×700 (captured frame 1102×732). A short 29-pixel bend drag and approximately 18-pixel label drag succeeded on the first attempt, with stable canvas and controls. This supersedes the earlier width-only resize trial.
  4. The minimum-size SVG dialog copy fitted. Native export completed as ui-routing-accepted/minimum-routing-ui.svg (2,540 bytes). Its rendered PNG (46,853 bytes) was visually inspected for the correct route, label and nesting.
  5. A fresh independent native UI reviewer personally captured the accepted 1102×732 frame and confirmed clear controls with the custom bend and label. The reviewer also captured the readable lower SA label band in the labels checkpoint; the whole SA capture was partly occluded, so it supplements root's earlier full SA captures rather than replacing them. No unresolved material UI or correctness finding remained after this review.

These trials close the routing authoring, persistence, hierarchy/port workshop, export and supported-size acceptance tasks. The accepted window still contains an unsaved demo trial; the separately saved OA and typed workshop fixtures above are the durable evidence. No unperformed external-endpoint variant is implied by the observed one-function and whole-System movement trials.

Original Capella comparison: Format > Line Style > Oblique then a segment drag created a real bend without changing Audio Signal/FOP1/FIP1 endpoints. The rectilinear-corner attempt did not move. See release-capella-workflow-benchmark.md for the performed versus merely observed operations.

Performance and reusable trial

Independent measurement used 100 nodes, 150 edges and eight pins per edge:

Profile Maximum single-edge preview Settled full solve
Debug 16.4 ms 863 ms
Release 2.4 ms 119 ms

The release settled solve slightly misses the initial 100 ms target. Drag preview is much cheaper, but these measurements do not establish a universal latency guarantee. The 1500-edge fixture checks bounded-budget path consistency, not a claimed interactive performance target at that size.

Run cargo run --locked -p oa-core --example routing_workshop to regenerate examples/routing-workshop.arcadia and .json. The generator builds twice to check deterministic identities/layout, validates the model and routes, and reloads both serializations for equality. Generation and strict example Clippy passed. Its focused OA and SA architecture views each have three participants and 12 visible cards; OA has seven interactions and SA has seven functional plus five component exchanges. Real functional/component ports include Standard and Flow exchanges. @sa_incident_decision joins two functions inside the Rescue system to test common-container movement. Original semantic examples are retained.

Acceptance boundary and remaining release work

Routing code/native acceptance and independent follow-up are complete with the scopes above, checkpointed at 23535b4. The 119 ms dense settled solve remains a measured limitation, and arbitrary diagrams are not guaranteed to have zero crossings. A separate QA agent is running current WSL locked workspace tests, strict Clippy and desktop/server release builds, with results pending in release-routing-linux.md. Linux runtime/package acceptance, source-project production integration, direct behavior editing and the broader first-release work remain required in PLAN.md and STATE.md.