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

206 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.