From 0a8a6f5f5cacab624f2f047e55663724394e5ac2 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Sat, 5 Sep 2026 21:23:37 +0300 Subject: [PATCH] Record accepted routing evidence and remaining release work --- harness/PLAN.md | 8 +- harness/STATE.md | 93 +++++------ harness/TASK_LEDGER.md | 22 +-- harness/release-routing-contract.md | 44 +++-- harness/release-routing-verification.md | 205 ++++++++++++++++++++++++ 5 files changed, 287 insertions(+), 85 deletions(-) create mode 100644 harness/release-routing-verification.md diff --git a/harness/PLAN.md b/harness/PLAN.md index 31a736b4..c16b0975 100644 --- a/harness/PLAN.md +++ b/harness/PLAN.md @@ -14,13 +14,13 @@ The current forms are a closed typed-record adapter, not a second metamodel. Exp ## Milestones and measurable acceptance -Current priority within milestone2: address the user's diagram/port correction using `release-diagram-port-correction.md`. Separate engineering views, actual owner-bound port geometry and full functional/component-port semantics precede further breadth. Existing R5 state authoring is preserved; it still needs native verification. +Editable connection routing has passed code/native acceptance and independent follow-up at desktop checkpoint `23535b4`. Continue production source authoring and direct behavior editing while independent current WSL checks run. Typed port integration and its native authoring/reopen checks are complete at `fa096ce`; `release-diagram-port-correction.md` records the domain correction. Existing R5 state authoring is preserved and still needs direct gestures and full native acceptance. -User's current routing correction adds a first-class diagram requirement: editable connection bend points with automatic obstacle-aware starting routes. Finish the active port native checkpoint, then prioritize one persisted routing slice (create/move/remove bend, reset automatic, undo/reopen, text/API/SVG equality) alongside source-authoring work. Route identity belongs to the diagram representation and must not alter semantic relation endpoints or ownership. Direct state gestures remain required and should reuse the resulting geometry/routing primitives only where semantics match. +The user's routing correction is implemented as editable connection bend points with automatic obstacle-aware starting routes. Persistent commands, source/API parity, shared geometry and desktop gestures passed automated and native verification. `65fa9ab` resolves six default SA label-overlap pairs; follow-up typed reopen, short gestures and SVG export at 1100×700 passed. `release-routing-verification.md` records exact evidence, completed independent native follow-up and the 119 ms dense full-solve limitation. Route identity belongs to the diagram representation and does not alter semantic endpoints or ownership. Direct state gestures remain required and should reuse geometry/routing primitives only where semantics match. -Updated priority: fix drag selection and repeated selection immediately; complete the active isolated port/schema3 implementation. Then make behavior diagrams directly editable using shared persisted geometry and ordinary commands, and replace the single huge source editing experience with a modular project/include workflow. These are release requirements, not future limitations. Source projects must preserve identity, precise per-file diagnostics, Git-friendly ownership of declarations, cycle/missing/duplicate include failures, safe local include resolution and GUI/API parity. Behavior acceptance requires actual canvas movement and contextual creation/editing, not only selection plus external menus. Freeze concrete interfaces after read-only exploration before changing the shared schema. +Drag selection, typed port/schema 3 and routing corrections are complete. Make behavior diagrams directly editable using shared persisted geometry and ordinary commands, and replace the single huge source editing experience with a modular project/include workflow. These are release requirements, not future limitations. The source bundle core and nested source experiments provide evidence and reusable foundations, not production editor acceptance. Source projects must preserve identity, precise per-file diagnostics, Git-friendly ownership of declarations, cycle/missing/duplicate include failures, safe local include resolution and GUI/API parity. Behavior acceptance requires actual canvas movement and contextual creation/editing, not only selection plus external menus. The proposed first state-machine slice is in `release-state-gesture-design.md`; verify its interfaces before changing the shared schema. -Current uncertainty-reduction work: evaluate aggregate files/includes versus nested semantic syntax using three engineer text tasks and an independent critic; do not assume smaller files alone solve readability. Pure virtual-bundle compilation and declaration-preserving updates provide an experiment and reusable foundation. Direct behavior editing first tests a state-machine task (create in region, drag, draw/reconnect transition, edit guard, undo/reopen) before propagating the interaction design to scenarios/chains. Compare successful task completion, semantic clarity, mode switches and recoverability, not control counts. +Source direction: extend the production parser/span index and shared updater for selected nesting and shorthand constructs, retaining the existing virtual-bundle foundation. The 23-test experiment is evidence, not production code to copy: independent probes found item-comment misattachment, shorthand description rejection and unsupported deletion. Verify explicit comment ownership, all edit/delete paths, exact source Undo, invalid drafts and per-file diagnostics before adopting syntax. Direct behavior editing first tests a state-machine task (create in region, drag, draw/reconnect transition, edit guard, undo/reopen) before propagating the interaction design to scenarios/chains. Compare successful task completion, semantic clarity, mode switches and recoverability, not control counts. 1. **Release coverage audit and interfaces.** Compare actual core/UI/API with official Capella OA/SA semantics and the new objective. Freeze a coverage table and concrete variant/reference/transition contracts before editing shared interfaces. Distinguish unsupported later layers from missing OA/SA workflows; V2 exclusions are reconsidered. Native audit exercises onboarding/help/authoring at supported sizes. Independent audits have separate file ownership. 2. **Complete engineering semantics.** Fill verified gaps in capability relationships and mission involvement; operational process/functional-chain function/control topology; scenario/state/data constructs needed by OA/SA engineers. Add typed semantic-content drift and reviewed existing-counterpart reconciliation, including reference mapping and explicit dependency/ownership decisions. Every addition has a usable graphical authoring workflow, equivalent source/API representation, meaningful reject/undo/delete/reidentify/transition tests and a worked example. Exact additions and invariants are recorded in the coverage/interface artifact from milestone1, avoiding speculative LA/PA concepts. diff --git a/harness/STATE.md b/harness/STATE.md index 7012c45e..d72af17c 100644 --- a/harness/STATE.md +++ b/harness/STATE.md @@ -1,79 +1,58 @@ -# Progress Ledger — first release +# First release — current engineering state ## Objective and current phase -Authoritative objective attachment07aee762-7d27-4cbe-81c3-2e82c7170711, read fully2026-09-05. Deliver coherent OA+SA/System Architecture for engineers with equivalent graphical/text/REST modeling, hierarchy, traceability, offline semantics/help and Windows/Linux release evidence. TASK_LEDGER.md distinguishes facts, assumptions and candidate designs; PLAN.md and release-semantics-audit.md retain scope. Goal is active, not complete. +The first-release goal remains active and incomplete: a Rust/Iced OA and SA/System Architecture tool for system engineers with equivalent graphical, textual and REST semantics, hierarchical diagrams and typed ports, modular source projects, artifact traceability, direct behavior editing, offline help, and Windows/Linux release evidence. The authoritative objective is attachment `07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md`, fully read on 2026-09-05. PLAN.md, TASK_LEDGER.md and release-semantics-audit.md retain the broader scope. -Current phase: integrate and evaluate typed ports; test modular source-project foundation and compare human-editable language designs. Direct behavior canvas editing and remaining first-release work remain required. +The editable connection-routing milestone is accepted and checkpointed at `23535b4`. Per-diagram authoring, obstacle-aware geometry, typed/nested workshop movement, save/reopen, SVG and minimum-size gestures are verified. Commit `65fa9ab` resolved all six reproduced default SA label-overlap pairs. Fresh correctness and final native UI review found no unresolved material routing finding. The broader first release remains incomplete; production text authoring is the next active phase. See release-routing-verification.md for exact evidence and limitations. Root alone operates native applications. -## Verified milestones +## Completed foundations -- Git branch codex/release1-engineering. Baseline93ba83d, port contractc20a207, hierarchyc7101b9, drag/native evidence2ef16dc, typed core/source/API merge757ab88. No remote publication. -- R1 process/chain topology, R2 missions/capabilities, R4 typed scenarios, R5 states/events and their contextual forms exist. Corresponding release reports retain exact validation/review evidence; complete native R4/R5 authoring acceptance remains pending. -- c7101b9 distinguishes allocation summaries from actual assignments, preserves nested geometry/folding/ports, focused architecture/dataflow/capability views, canvas/SVG labels, and reproducible demo generation. Full locked core+desktop+server checks passed then (desktop70, server1unit+17HTTP), strict workspace Clippy/build passed. -- Drag fix2ef16dc retains semantic selection after MoveNode and permits same-card reselection without losing identity drafts. Desktop71tests+strict desktop Clippy passed before port integration. Actual native drag of an initially unselected nested activity, same-card click and name edit/apply succeeded at1440x900. -- Typed port/schema3 commits0d14438+b9f88ce merged757ab88. Merge retained main footer/reflow/allocation_summary with new anchor sides. Frozen V2 readers preserve originals as Legacy; missing FE endpoints are deterministic/reportable. Port/source/API handoffs document scoped tests, not desktop acceptance. -- Root current focused desktop tests:3port workflow tests pass (FE items/endpoints; Standard component generation and allocation; undo/redo/idempotence; creation/stale preview; Legacy resolution),4diagram regressions pass, migration-report opening test passes. Forms worker17focused tests pass. These are narrower than full current release verification. +- Branch `codex/release1-engineering`; baseline `93ba83d`, hierarchy `c7101b9`, drag selection `2ef16dc`, typed core/schema 3 merge `757ab88`, alias and batch lifecycle corrections `e41b8de`. +- Typed desktop integration `fa096ce` provides contextual function/component ports, FE endpoint and exchange-item choices, generation, resolution, split and synchronization with semantic previews. Legacy migration, Standard/Flow distinctions and independent orientation are retained. Independent findings and native-discovered no-op synchronization and SA-only initial-perspective defects were fixed. +- Native typed-port trials created real function endpoints and exchanges, supplementary output/items, and a Standard component implementation with two port allocations and an exchange allocation. Undo/redo and save passed with zero model checks. Reviewed reopen entered SA correctly; unchanged synchronization disabled Apply. The long-reference review modal was inspected at 1440×900 and 1100×700. Evidence and fixtures are under `D:/CodexBuilds/Capella2-release1-01a06e2e/ui-typed-ports` and `ui-typed-ports-reviewed`. +- Source bundle foundation `06b3384` and token-preserving updater `dbc8971` passed 160 core tests, including 30 source-project tests, and strict core Clippy at that checkpoint. This is a pure core foundation; production editor, filesystem Save All/conflict handling and REST bundles remain to be integrated. +- Isolated source authoring comparison `c5788fc` and nested writeback experiment `2dd17aa` passed 23 experiment tests and strict Clippy. An independent executable probe at `D:/CodexBuilds/Capella2-source-writeback-independent/probe.log` reproduced positional list-comment misattachment after item reorder, rejection of a valid description edit on port shorthand, and unsupported occurrence deletion. The same comment-reorder probe retained attachment in the production updater. Complete model equality alone does not protect comment meaning. Extend the production parser/span index and shared updater for selected nesting/shorthand constructs; do not copy the experiment into a parallel production parser/writer. Freeze comment ownership, exact source Undo and full edit/delete support before adoption. `experiments/source-authoring/WRITEBACK.md` retains the bounded evidence; production syntax is not yet adopted. +- R1 process topology, R2 mission/capability, R4 scenarios and R5 events/states are implemented at the semantic/form level. Full native authoring acceptance and direct behavior canvas gestures remain required; release-state-gesture-design.md records the proposed first vertical slice. -## Active implementation and independent review +## Routing implementation and verification -- Root owns desktop integration except completed forms worker changes: port_workflow.rs, workflow.rs, app.rs, views.rs, diagram.rs, main.rs, tests.rs. Contextual typed creation/generation/resolution/split/sync; FE item/endpoint selectors; independent glyph/orientation; load/source migration report. Generic Port creation removed from ordinary picker. Added component endpoint choices and SVG contract regression most recently; rerun tests after these edits. Formatting/strict full checks and native port acceptance pending. -- Core reviewer found alias reservation and same-Batch PortAllocation replacement deleting ExchangeAllocation. Fixes in ports.rs/references.rs/session.rs/release_ports.rs;62focused tests reported pass. Pending deletion IDs handle Reidentify/EditRelation and explicit deletion/recreation. Root reviewed diff and is independently running13port tests plus exact-file commit; inspect process8944 outcome before any restart/commit. Clippy was blocked by concurrent source refactor, not reported passed. -- Forms worker released forms.rs and forms/port_fields.rs after17tests, formatting and no forms Clippy findings. Invalid contract drafts/current references are retained; typed endpoint/role choices and retained legacy display added. Uncommitted for aggregate desktop milestone. -- hierarchy_port_review owns pure source_project.rs, language.rs seams, lib.rs export, source-project tests, docs/language.rst and handoff. SourceBundle has virtual paths/files; compile returns stable-ID bundle/model/index/located warnings. Aggregate limits wrap existing ParseLimits. Formatter/update implementation/tests underway; no desktop/filesystem/server bundle work yet. Temporary warnings must disappear with completion. -- Fresh source_usability_critic compares aggregate files, nested syntax and another alternative through engineering tasks, criteria and primary evidence. No edits/native input. -- Fresh port_workflow_review independently reviews desktop contracts/workflows/selection/glyphs/complexity. No edits/native input. Retrieve findings before milestone acceptance. +- `4e5a88d`: per-diagram `EdgeRoute` pins and label placement, atomic set/remove commands, validation, delete/reidentify cleanup, compatible empty defaults, group movement and layout translation. Routes refer to existing relation/trace IDs and do not duplicate semantic identity. +- `a7c6f96`: equivalent source, source-project update, JSON and REST behavior, located validation, OpenAPI and reST contracts. +- `68b1eff`: shared deterministic orthogonal routing and geometry for typed ports, nested obstacles, labels, bounds and collapse suspension. Desktop draw, hit testing, gesture previews, Fit and SVG use this geometry. +- `30c7db1`: label-only edits preserve the settled polyline and warnings; single-edge previews retain settled per-edge routing budgets. `65fa9ab` adds stable bounded automatic label placement, reducing the workshop's six reproduced label-overlap pairs to zero. All 18 geometry tests, strict core Clippy and fresh independent correctness review passed. +- `23535b4`: accepted desktop route authoring, shared geometry integration, route/label controls, guarded atomic gestures and release-cursor correction. Final independent native review captured clear minimum-size controls with the authored bend/label and the readable lower SA label band. Its full SA view was partly occluded; root's earlier full SA captures provide the complete-view evidence. +- Locked workspace tests passed with 196 core, 103 desktop and 22 server tests before the last geometry regressions were added. Final follow-up passed 104 desktop tests, strict full-workspace Clippy and desktop/server builds (`routing-final-*` logs). Independent review also passed four focused desktop tests for the final release-cursor correction, which commits fast drags despite coalesced motion events. Earlier follow-up passed the 1500-edge reproducer and six external preview/commit fixtures. Exact scopes are in release-routing-verification.md; a final full-workspace test rerun after all later edits is not claimed. +- Independent stress measurements on 100 nodes/150 edges with eight pins per edge: maximum single-edge preview 16.4 ms debug and 2.4 ms release; settled full solve 863 ms debug and 119 ms release. The optimized settled result slightly exceeds the initial 100 ms target; this remains a measured performance limitation, not a claim that the target passed. +- Routing workshop `4b8545d` adds deterministic, validated `.arcadia` and JSON examples plus a reproducible Rust generator. OA and SA architecture views contain three participants and nested work groups; SA includes real functional/component ports, Standard and Flow exchanges, and an internal System exchange for group-movement testing. Generation, source/JSON equality and zero semantic/routing issues were verified. -## Native evidence and pause +## Native checkpoint and evidence boundaries -Native CUA is root-only via @oai/sky. Last call reported physical Escape and explicitly stopped native use. Automatic goal continuation resumes code/research/tests, not native input. Wait for user native continuation and re-inventory windows before acting. +The reviewed executable at `ui-routing-reviewed/arcadia-studio.exe` has SHA256 `6DAD490D75F2A67A79A0804F33192EF62A3DCBEA92F5EEDA8EA47788D12273B8`. Root performed default-size OA edge selection without canvas movement, segment drag without a retracing spur, separate label drag with unchanged polyline, displaced-label selection, existing-bend drag, Undo/Redo, Remove bend, Reset routing, and undo restoration. Folding an endpoint container used an automatic promoted edge and disabled route editing; expansion restored the authored pin and label. Model checks remained zero. -Current last Studio checkpoint D:/CodexBuilds/Capella2-release1-01a06e2e/ui-hierarchy-reviewed/arcadia-studio.exe SHA25630FA95CA9C606B20EAA5B4FA08AE04EB47CCB1A2498C05C0C26F2B049F006BE5 (predates typed integration), last main527250 and Save As1706878. Unsaved moved/renamed activity may remain. Save was NOT verified: helper returned16x16 primary capture plus full related modal, failed UIA/bounds and later user-input/Escape guards. Do not discard/overwrite or claim drag-selection-ui.arcadia exists. Earlier Studio windows disappeared from inventory. Default layout verified; current minimum resize not verified. +Native Save As and SVG export produced `ui-routing-reviewed/routing-authoring-ui.arcadia` (33,548 bytes) and `.svg` (2,564 bytes). The source contains the authored waypoint and label offset. Root then launched `ui-routing-final/arcadia-studio.exe`, SHA256 `5558CC203E9DAFED3D0BCA1C40B5E4BDE426F00F8BC37DCD9B33A7338ADD5615`, containing `30c7db1`, duplicate fold-notice cleanup and export-dialog copy changes. Native Open reopened the saved source with “All changes saved”, 41 objects, 25 links and zero checks; the bend remained visible and the detached label selected the same edge. Root rendered the actual exported SVG to PNG with Sharp and visually verified the authored detour, label, bounds and nesting. -Original Capella healthy app capellac.exe, last window527162, disposable workspace D:/CodexBuilds/Capella2-release1-01a06e2e/capella-workspace. SAB native FE creation automatically made FOP/FIP; component exchange made Flow/Out CP1. Standard/Flow matching, interface roles, allocated ports and function item declarations observed. Allocated-port chooser opened but no allocation committed; original sample remains unsaved. Detailed performed/observed distinction in release-capella-workflow-benchmark.md. +The workshop loaded with 12 cards/seven links in OA and 12 cards/12 links in SA; the full model reported 75 objects, 61 links and zero checks. Root dragged the internal Incident decision line to create a pin. Moving one function left that pin fixed; moving the whole System by snapped delta (-20, +40) translated the pin by the same amount. A single Undo/Redo restored both placement and pin state. The typed trial was saved to `ui-routing-final/typed-routing-authoring-ui.arcadia` (66,598 bytes); folding and expanding the System restored the route and the UI reported all changes saved. -Preserved earlier native fixtures: ui-r2-checkpoint/capability-extension-ui.arcadia; ui-r1-r4-checkpoint/process-branch-ui.arcadia. Prior source Find/Enter/F3/CtrlG and1100x700 verification apply to their earlier checkpoints, not current integration. +On `ui-routing-labels/arcadia-studio.exe`, SHA256 `4D4C8163EA2A81F2D9A241921571BE3118AE57ECD2987E7088878CBCA9F50536`, native reopen of that typed trial retained the SA custom pin and separated labels. Dragging an automatically displaced label was continuous and Undo worked. This closes the label finding together with the geometry tests and independent review. -## Highest-value next actions +The accepted executable at `ui-routing-accepted/arcadia-studio.exe` has SHA256 `E9B662788CC3979F8E883299CAF9B16917498D6F0DEAB62E02D9A6CE5C18AFB2`. At 1100×700 (captured frame 1102×732), a short 29-pixel bend drag and approximately 18-pixel label drag succeeded on the first attempt. The canvas and controls remained stable; SVG dialog copy fitted. Native export produced `minimum-routing-ui.svg`; its PNG rendering was visually inspected for correct route, label and nesting. This later successful trial supersedes the earlier width-only resize attempt. The accepted minimum-size window retains an unsaved demo with those two gestures; preserve it before switching models. The saved typed workshop remains the durable SA fixture. -1. Poll live tests/agents; fix material review findings. Complete typed desktop full tests, formatting/strict Clippy, regenerate current examples (historical V2 goldens untouched), build fresh checkpoint and commit evidence-qualified milestone. Native acceptance remains pending until explicit resume. -2. Finish pure bundle experiment, evaluate human/AI editability alternatives, freeze source contract from evidence. Implement per-file editor/tree/diagnostics/undo, recoverable multi-file Save All/conflicts and REST virtual bundles. Test graph/text ownership/comment preservation, includes, IDs, limits and failures. -3. Adopt/test persisted behavior context and direct gestures: state region creation/move/connect/reconnect/guard, scenarios lifeline/message manipulation, process contribution topology. No UI-only durable geometry or menu-only substitute. -4. R6 data contracts, R3 semantic drift/reconciliation, persistent filters/coverage, Home/recent/recovery, optional hosted ETag workflows, examples/guide/reST/API and full independent cross-disciplinary release review remain. Follow scope, do not call missing functionality a limitation. -5. Final current Windows/Linux build/run/native/service tests, MSRV, packages/checksums and reproducible instructions; only then completion. +Unexpected concurrent arrangement/view changes were separately preserved to `ui-routing-final/workshop-arrangement-preserved.arcadia` (66,434 bytes). A prior icon-only capture did not establish an application failure; subsequent full native captures succeeded. Obtain fresh inventory before further input instead of relying on historical window IDs. -## Environment +Original Capella was operated in a disposable workspace. Native creation demonstrated real FE/function ports and explicit component-port allocation. `Format > Line Style > Oblique` followed by a segment drag created an actual bend without changing its Audio Signal/FOP1/FIP1 endpoints. A rectilinear-corner attempt did not move. See release-capella-workflow-benchmark.md; the reference sample was not saved. -Windows Rust1.98.1; CARGO_TARGET_DIR=D:/CodexBuilds/Capella2-01a06e2e. Commands: cargo test --locked -p oa-core -p oa-desktop -p oa-server; cargo clippy --locked --workspace --all-targets -- -D warnings; cargo build --locked -p oa-desktop; cargo run --locked -p oa-core --example generate_demo. Copy executable to a checkpoint before native launch. WSLUbuntu24.04 setup in verification-v2-linux.md; current final platforms/MSRV remain unverified. Git worktree D:/CodexWorktrees/Capella2-typed-ports retains committed port baseline, no active writers there. +Earlier Studio windows disappeared during concurrent work. Fresh inventory confirmed absence and no matching application-crash event was observed; the earlier unsaved routing trial was not recovered. It is superseded by the explicitly saved reviewed fixture, not retroactively claimed as recovered. -Prior recursive target/debug deletion was rejected; do not retry/bypass. No disk blocker. Temporary agent capacity errors can be retried on same agent; inspect authoritative live state before restarting work. No usage reset authorized/used. +## Exact next actions -Progress audit: previous turn made concrete committed/tested/native progress before Escape; current turn adds meaningful invariant evidence and comparative design evaluation. The important unknowns are usability/coherence and remaining scope, not merely compiler status. No blocked or completion claim. +1. Extend the production parser/updater for the selected source authoring direction, using the independent probe findings as regressions. Integrate per-file editing, safe Save All, conflicts, exact source undo and REST bundles. Preserve precise diagnostics, declaration identity and explicit comment ownership. Do not promote the bounded experiment unchanged. +2. Collect the independent WSL routing check results in release-routing-linux.md. Locked workspace tests, strict Clippy and desktop/server release builds are running; Linux success is not yet claimed. Address actual failures without disturbing the accepted native Windows checkpoint. +3. Implement direct state/scenario/process gestures, R3 semantic drift and reviewed reconciliation, R6 data contracts, persistent coverage/filters, Home/recent/recovery, hosted ETag workflows, navigable offline guidance and normative reST/API completion. These are required release work, not non-blocking limitations of a finished release. +4. Run fresh requirements, correctness, native UI/UX and architecture reviews for the complete release; address material findings. Verify current Windows/Linux/MSRV builds, runtime workflows, documentation, packages and checksums before completion. -## 2026-09-05 resumed checkpoint +## Environment and reproducibility -User explicitly resumed Computer Use. Fresh inventory: Studio and prior Save As absent; old unsaved rename/drag fixture was never verified saved. Original Capella still open in its pending port-allocation chooser; native testing resumed with foreground activation and fresh captures. CUA returns owned modals outside main-window bounds, so reposition visible dialog before targeting off-window controls; the first UIA allocation action failed bounds and made no assignment. +Windows Rust 1.98.1; `CARGO_TARGET_DIR=D:/CodexBuilds/Capella2-01a06e2e`. Release logs and native fixtures are under `D:/CodexBuilds/Capella2-release1-01a06e2e`. Use `cargo test --locked --workspace`, `cargo clippy --locked --workspace --all-targets -- -D warnings`, and `cargo build --locked -p oa-desktop -p oa-server`. Generate the routing example with `cargo run --locked -p oa-core --example routing_workshop`; historical migration goldens stay frozen. -Core alias/batch replacement fixes committed e41b8de after root13port regressions passed. Source bundle foundation committed06b3384; worker150core tests and strict core Clippy passed (20new regressions). Lossless token updates are now the next bounded source task; nested syntax remains a separate measured experiment. - -Independent desktop review found six concrete issues: FE target/Apply eligibility, port owner-diagram navigation/unfolding, active-vs-preserved direction during item synchronization, incomplete semantic preview, Standard exchange default orientation, and legacy role eligibility. All six now have fixes. Root full desktop suite93tests passed; strict desktop Clippy and build passed. Logs desktop-port-preview-tests.log/desktop-port-clippy.log/desktop-port-build.log under D:/CodexBuilds/Capella2-release1-01a06e2e. Typed semantic preview wired from separately reviewed port_preview.rs (4embeddedtests). - -Fresh native candidate: ui-typed-ports/arcadia-studio.exe SHA2565935489A66D445CEC2131FF3582BB96426BB3DFCE37DEC77E8189D8A2F2F44D5. Native acceptance not yet performed. Current examples regenerated by generate_demo and source/JSON equality verified; old migration goldens unchanged. Changes remain uncommitted pending native iteration. - -Native typed-port trial now passed at1440x900 client: created Supplementary incident report function output carrying Digital distress report; selected port stayed in same allocation diagram; CtrlZ restored41objects/25links and CtrlShiftZ restored42objects/25links. Existing Distress reporting connection reuse shows explicit no-op and disables Apply. Generated a second implementation with Standard component ports: orientation defaults off; preview identifies both owners, item union, exact function-port/port-allocation/exchange-allocation references; apply yields44objects/29links, zero checks, empty-square Standard glyphs and no exchange arrow. Captures inspected directly. Preview's very long aliases approached/clipped the right edge; added bounded width and WordOrGlyph wrapping, increased preview text12→13; must rebuild/reverify this edit. - -Fresh focused review found two additional valid cases: unoriented Flow/In-source Boundary target filtering still used oriented=true; filtered-view stored port-owner placement could outrank a usable folded architecture. Reviewer owns workflow.rs/app.rs for those two fixes/regressions. Root does not edit these files until release. - -Save As for typed-port-authoring-ui.arcadia pending. Native helper returned16x16 primary plus full related dialog; UIA set_value failed cached-property retrieval, so save is not claimed. Current main5636752, SaveAs919908; reobserve before input. Main capture shows filename control at visible lower part of overhanging modal. User-input guard required a fresh capture. No overwrite/discard performed. - -Save recovery succeeded using the full related dialog screenshot (screenshots[1],1186×713), not the16×16primary. Clicked the actual filename, visually verified caret/selection, typed full dedicated path, clicked Save. Main now shows All changes saved and Project saved. Verified native artifact exists: D:/CodexBuilds/Capella2-release1-01a06e2e/ui-typed-ports/typed-port-authoring-ui.arcadia (35,699bytes), with supplementary output, Standard implementation ports, explicit two PortAllocations and ExchangeAllocation. User's intervening diagram moves were preserved. Native reopened-file verification still pending. This supersedes the pending-save note above; full-size related screenshot coordinate targeting is working in current helper, whereas some UIA fields still return wrong focus/cache errors. - -## Routing requirement and additional native evidence - -User explicitly requires customizable connection routing/bend points or sufficiently effective automatic routing to avoid overlap. PLAN/TASK_LEDGER updated; bounded route-design investigation now active before implementation. Port semantics remain the shared endpoint contract; routing must be per-diagram layout, with manual override, automatic starting route, source/API/SVG/history parity. - -Minimum client1100x700 verified (capture1102x732): outermost right/bottom frame pixels permit resize, Fit brings nested diagram into canvas, inspector scrolls independently, port review modal and fixed Cancel/Apply fit. No clipping of controls; long alias wrapping fix still requires new build. Native no-op synchronization misleadingly enabled Apply; core planner now returns no commands for an unchanged contract.13core port regressions and focused desktop sync regression passed. - -Fresh functions fixture was built with actual core (initial temporary fixture compile confused Option with Result, corrected; final run valid5elements/2allocations/noports). Native Open and SA selection succeeded atminimumsize. Actual +Relationship picker offered Receive incident despite no ports; choosing target enabled Apply; added Incident report item and applied. Result7objects/3links with2function ports and FE, zero checks. This directly verifies the UI eligibility defect beyond event tests. Undo/redo/save continuation follows. Opening SA-only source initially showed empty OA; root fixed initial perspective to populatedSA and added regression; full rerun pending. - -Typed checkpoint verification: root observed complete locked workspace tests pass and desktop/server build finish (typed-port-workspace-tests.log, typed-port-final-build.log). Strict workspace Clippy previously passed. Updated executable still requires focused native recheck of preview wrapping, no-op synchronization and SA-only opening. Source-preserving core updates committed dbc8971 (160 core tests); isolated B writeback committed2dd17aa (23 experimental tests). Native routing trial in original Capella successfully inserted a bend by dragging an Oblique segment; benchmark records precise observed evidence. Routing implementation starts now, not yet accepted. +Prior WSL Ubuntu 24.04 evidence is in verification-v2-linux.md. A separate QA agent is running current locked workspace tests, strict Clippy and optimized desktop/server builds and owns release-routing-linux.md; results remain pending. Current first-release Linux runtime/package acceptance is still required. There is no current disk blocker. Do not retry the earlier rejected recursive target deletion. No usage reset or remote push is authorized. diff --git a/harness/TASK_LEDGER.md b/harness/TASK_LEDGER.md index 73b9a944..060b7aa4 100644 --- a/harness/TASK_LEDGER.md +++ b/harness/TASK_LEDGER.md @@ -1,6 +1,6 @@ # Task Ledger — first release -Authoritative objective: attachment07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md, read fully on2026-09-05. STATE.md records execution evidence; PLAN.md is the living strategy; DECISIONS.md and linked release contracts retain detailed rationale. +Authoritative objective: attachment `07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md`, read fully on 2026-09-05. STATE.md records execution evidence; PLAN.md is the living strategy; DECISIONS.md and linked release contracts retain detailed rationale. ## Goal and success criteria @@ -18,32 +18,34 @@ System engineers can develop a coherent OA→SA system model, including iterativ - Native Capella SAB authoring creates function input/output endpoints with an FE. Component ports separately carry Standard/Flow kind, orientation, interface roles and explicit allocated function ports. Details and successfully performed versus merely observed operations are in release-capella-workflow-benchmark.md. - Studio uses one typed Project and validated atomic commands across Rust core/desktop/server. Hierarchy projection distinguishes actual allocation from inferred parent summaries; IDs and placement are separate. -- Drag selection bug fixed and committed2ef16dc;71desktop tests and real moved-card selection/property editing passed before typed-port integration. -- Typed ports/schema3 migration merged757ab88. Existing port identities survive as Legacy and missing FE endpoints are generated deterministically; current migration and port tests provide scoped evidence in release-port-core.md/release-port-migration.md. -- Independent core review reproduced alias reservation and same-transaction allocation replacement defects; fixes have focused regression evidence. Desktop port integration has passing focused event/form tests; full checks and native acceptance are still pending. +- Drag selection bug fixed and committed `2ef16dc`; 71 desktop tests and real moved-card selection/property editing passed before typed-port integration. +- Typed ports/schema 3 migration merged at `757ab88`. Existing port identities survive as Legacy and missing FE endpoints are generated deterministically; migration and port tests provide scoped evidence in release-port-core.md/release-port-migration.md. +- Independent core review reproduced alias reservation and same-transaction allocation replacement defects; fixes have focused regression evidence. Typed desktop integration `fa096ce` passed full checks and native creation/generation, undo/redo, save/reopen and no-op synchronization trials. Long-reference previews were inspected at 1440×900 and 1100×700; detailed evidence is in STATE.md. +- Per-diagram pins and labels, source/API parity and shared orthogonal routing are implemented in `4e5a88d`, `a7c6f96`, `68b1eff` and `30c7db1`. `65fa9ab` resolves all six reproduced default SA label-overlap pairs. Native OA/SA editing, movement/undo, fold restoration, save/reopen, SVG inspection and short gestures at 1100×700 passed. Routing code/native acceptance and independent native follow-up are complete at `23535b4`; exact scope is recorded in release-routing-verification.md. +- The source experiment passed 23 tests, but an independent probe reproduced positional item-comment misattachment, shorthand description rejection and unsupported deletion. Whole-model equality does not establish source-comment fidelity. The production updater retained comment attachment on the same reorder probe; extend its parser/updater instead of copying the experimental parallel implementation. - Current behavior diagrams derive geometry and only handle selection. Text editing currently flattens the accepted model. These remain product gaps regardless of underlying semantic coverage. ## Assumptions to test - Aggregate-oriented source files will reduce cognitive load enough for routine engineering edits; file splitting alone may leave declaration syntax too flat. - Behavior layout can reuse NodePlacement plus typed diagram context without duplicating semantic state; reconnection/reordering must preserve existing occurrence/relation identities. -- Editable per-diagram bends plus an automatic initial route can resolve realistic crossings; an automatic layout cannot guarantee an ideal readable arrangement for arbitrary models. Test manual control, nesting, ports and persisted/exported route parity. +- Editable per-diagram bends and the automatic initial route passed the recorded workshop trials. This does not guarantee an ideal arrangement or zero crossings for arbitrary models; the measured dense release full solve is 119 ms, above the initial 100 ms target. - Source comments and ownership can survive graphical edits by replacing only changed declaration spans. Generated IDs must stabilize before subsequent text edits. ## Open questions -- Which combination of file organization, nesting syntax and navigation best supports realistic text-only engineering tasks? Independent candidate comparison is active. -- Can an engineer discover and complete typed exchange/allocation and legacy resolution workflows with acceptable effort at minimum window size? Native acceptance is pending after physical Escape. +- Which selected nesting/shorthand constructs justify production parser/updater extension while preserving comment attachment, exact source Undo, complete editing and clear diagnostics? The independent source probe provides concrete acceptance cases. - What remaining OA/SA gaps materially block target workflows? R3 semantic reconciliation, R6 data contracts, directly editable behavior, lifecycle/recovery and hosted editing remain in the release plan. ## Candidate designs and current decisions -- Source candidate A: retain explicit source3 declarations in semantic aggregate files with includes. Candidate B: nested owner/context syntax lowering to the same model. Candidate C: independent critic to propose a materially different alternative. Rank on domain clarity, task effort, identity/roundtrip safety, Git locality and grammar/implementation complexity. Current pure bundle implementation is a testable foundation, not proof that A alone satisfies usability. +- Source candidates compared explicit source3 aggregate files/includes with nested owner/context syntax lowering to the same model. The chosen implementation direction extends the production parser/span index and shared updater for selected constructs, preserving the pure bundle foundation. Do not copy the experiment's separate parser/writer. Freeze grammar only after comment ownership, edit/delete coverage, invalid drafts and exact source Undo pass their acceptance tasks. - Behavior alternatives: independent UI-only coordinates, new behavior-layout schema, or existing diagram placements with explicit context. Prefer the last candidate provisionally: it preserves text/API parity and command history without a second geometry system. Validate on direct state-machine creation/move/reconnect before extending all behavior views. - Ports: adopted typed separation based on official metamodel plus direct native evidence; rejected generic InOut/interface port conflation and inferred allocation facts. See release-port-contract.md. Revisit only with contradictory domain evidence or concrete usability failures. +- Routing: a unique per-diagram route list references existing relation/trace IDs; pinned points and relative label placement are persisted, while orthogonal segments are derived by a shared pure router. This avoids duplicate semantic edge identities and preserves text/API/SVG parity. Folded endpoint promotion suspends custom geometry without deleting it. See release-routing-contract.md. ## Current strategy and evaluators -Finish and independently review typed-port desktop integration; require creation/generation/split/undo/reopen invariants and native trials. In parallel, test pure source-bundle compilation/updates and independently evaluate text representations using representative engineering tasks. Then integrate per-file source editing, safe project saves and REST bundles against the selected design. Prototype persisted direct behavior gestures next. Continue remaining release semantics and cross-disciplinary acceptance; no subsystem checkpoint constitutes release completion. +Extend production source parsing/updating using the independent probe findings as regressions; integrate per-file editing, safe project saves, exact source Undo and REST bundles. Independent current WSL tests, strict Clippy and release builds are in progress; Linux success is not yet claimed. Prototype persisted direct behavior gestures next. Continue R3 reconciliation, R6 data contracts, lifecycle/recovery, hosted editing, offline guidance and fresh Windows/Linux release acceptance; no subsystem checkpoint constitutes release completion. -Meaningful progress now: committed drag fix and native evidence, integrated typed core contracts, reproduced/fixed transaction defects, passing focused authoring tests, and a concrete source experiment. Highest uncertainty is source/behavior usability; more feature enumeration without task evidence would be a poor proxy. +Meaningful progress now includes verified drag and typed-port authoring, accepted editable routing with native save/reopen, group movement and minimum-size evidence, and tested source-bundle/nested-writeback foundations with independent limitations exposed. Production source and direct behavior usability remain open engineering tasks; feature counts alone do not establish completion. diff --git a/harness/release-routing-contract.md b/harness/release-routing-contract.md index c1d7a066..da8d73bb 100644 --- a/harness/release-routing-contract.md +++ b/harness/release-routing-contract.md @@ -1,16 +1,21 @@ # Editable connection routing — first slice, 2026-09-05 -Status: lead provisionally adopted the per-diagram route-list seam. This is a -design contract, not implemented or native-verified behavior. Typed-port work -is checkpointed before shared schema edits. State gesture design is preserved -separately in release-state-gesture-design.md. +Status: the per-diagram route-list contract is implemented in core, source/API, +shared geometry and desktop interaction. Core/source/router checkpoints are +committed; desktop integration passed code and native acceptance at `23535b4`. +Native OA/SA routing, save/reopen, SVG and default/minimum +window trials passed. `65fa9ab` resolves the six reproduced default SA label +overlap pairs, with automated, independent and native follow-up. Final native +UI review found no material unresolved finding; see release-routing-verification.md for exact +evidence, the 119 ms dense settled-solve limitation and release boundaries. +State gesture design is preserved separately in release-state-gesture-design.md. ## Problem, scope and chosen representation -Architecture canvas, hit testing and SVG independently regenerate a fixed cubic -between endpoints (`diagram.rs:149,616,670,712`). No edge geometry is stored. -Fit (`app.rs:1836`) and SVG bounds only include nodes. This prevents authored -detours and can conceal lines under cards/headers. +Before this slice, architecture canvas, hit testing and SVG independently +regenerated a fixed cubic between endpoints without stored edge geometry. Fit +and SVG bounds included only nodes. This prevented authored detours and could +conceal lines under cards and headers. Use routing metadata keyed logically by (diagram, existing relation/trace ID). One semantic edge is projected at most once per current diagram; the same edge @@ -89,7 +94,10 @@ Reuse obstacle preparation within one routed view. Bound search work and report a visible fallback warning instead of hanging or silently drawing through a card. Cache by diagram/model revision and transient preview revision in the desktop; pan/zoom alone does not change world geometry. Measure before adding a routing -framework or dependency. +framework or dependency. Single-edge previews retain their settled per-edge +search budget and preserve unrelated routes. A label-only edit preserves the +settled polyline and routing warnings; these invariants are implemented and +regression-tested at `30c7db1`. ## Endpoints, hierarchy and obstacles @@ -132,8 +140,9 @@ One shared pure placement-delta helper supplies this calculation to command movement and desktop preview. Reflow currently emits multiple EditNode commands (`diagram.rs:30`); append translated-route updates for edges whose endpoints move by the same delta. Raw EditNode/text coordinate edits remain exact record edits -and do not implicitly move unrelated route points. Layout preserves pins; expose -Reset routing as an explicit separate action instead of erasing authored work. +and do not implicitly move unrelated route points. Layout preserves pins and +translates them where both actual endpoint placements share a movement delta; +Reset routing is an explicit separate action instead of erasing authored work. Reconnect/port-contract edits preserve stored pins but compute fresh endpoints; blocked pinned geometry is reported as a recoverable layout warning. @@ -165,13 +174,16 @@ by zoom), explicit nearest-hit precedence and segment distances from the actual polyline. Node/label/handle hit ordering must work inside nested enclosures. Capture the initiating diagram/revision; Escape cancels; release emits one command; stale gestures or invalid source/property drafts cannot mutate a different model. +Use the release cursor as the final gesture position even if no final motion +event was delivered; short/coalesced native drags must commit their displacement. Core schema/lifecycle owns model.rs, session.rs, references.rs, validation.rs and focused tests. Independent router owns new routing.rs plus geometry tests after seam freeze. Source/API worker owns language/reST/OpenAPI and round-trip/HTTP tests after schema freeze; coordinate with current source-project work. Lead owns -diagram.rs, app.rs, views/forms, actual CUA and integration. No concurrent writers -to shared files. Root checkpoints typed ports before this implementation begins. +diagram.rs, app.rs, views/forms, actual CUA and integration. Core/source/router +workers have released their implementation ownership; the lead owns final native +integration. Continue partitioning any follow-up edits to avoid concurrent writers. Automated gates: independent routes for one edge in two views; add/move/remove and one-step exact undo; deletion/reidentify; malformed/duplicate/huge inputs; @@ -187,4 +199,8 @@ save/reopen and export SVG at 1440x900 and 1100x700. Inspect crossings, headers, labels, handles and typed port attachment. Measure interactive latency on a 100-node/150-edge fixture before claiming smoothness; initial target is below 100 ms for settled routing and no multi-second stalls during drag. Record actual -times/results, not forecasts. None of these gates has been run for this design. +times/results, not forecasts. Code/native acceptance and exact performed scopes +are recorded in release-routing-verification.md. The measured release full solve +is 119 ms, so the initial settled target is not claimed as passed. Current Linux +verification and broader release acceptance remain separate from the completed +routing workflows. diff --git a/harness/release-routing-verification.md b/harness/release-routing-verification.md new file mode 100644 index 00000000..39189df6 --- /dev/null +++ b/harness/release-routing-verification.md @@ -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.