Record accepted routing evidence and remaining release work
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user