8.8 KiB
Independent final native UI review
Reviewer: requirements/architecture agent, independent of desktop implementation.
Date: 2026-09-05. Windows native Iced application operated through the Computer Use skill (@oai/sky). No desktop source edits.
Build and fixtures
- Built current source with
cargo build --locked -p oa-desktop --bin arcadia-studio, usingCARGO_TARGET_DIR=D:/CodexBuilds/Capella2-01a06e2e. Build passed. - Launched distinct copy
D:/CodexBuilds/Capella2-v2-01a06e2e/final-ui-review/arcadia-studio.exe. Closed the previous throwaway test session through its normal unsaved-changes guard. - Rebuilt and relaunched after the state-transition selection fix, numbered transition details, and Ctrl+O/Ctrl+N wiring. Second process session: 69649, native main window 1380574.
- GUI-authored scenario fixture saved at
D:/CodexBuilds/Capella2-v2-01a06e2e/final-ui-review/branching-reviewed.arcadia. - Additional isolated
controls-fixture.arcadialoaded through the native Open dialog for focused trace/placement/perspective tests. This is disposable review data.
Observed passes
- OA process renders participant lifelines and a message; SA repeated-report scenario renders two participants and two distinct occurrence arrows. Clicking a message selects its occurrence, highlights it, and opens the corresponding properties.
- Through actual controls: added an occurrence, changed its kind to Fragment, created a Branch with
+ In selected, entered guardsea_state > 4 && operator == "Ready", then created an owned exchange occurrence. - Exchange choices were filtered to compatible exchanges; sender/receiver choices were filtered to the valid lifelines. Assigned the typed exchange and both endpoints. The resulting alternative fragment, guard text, and nested message rendered; model had 42 objects, 23 links, and zero checks.
- Saved the authored branch fixture through native Save As; the unsaved marker cleared and the application reported Project saved.
- Inspected default 1440×900 client, exact minimum 1100×700 client (native Size menu), and maximized 2560-wide layout. Primary navigation and action controls remained reachable. At minimum width, horizontal scrolling inside the scenario canvas actually revealed the other lifeline. No overlapping controls observed in these workflows.
- Rebuilt state view renders three numbered routes and matching numbered detail cards with source/target, trigger, guard, and effect. Selecting route 1 (
Signal restored) retains the state-machine view, highlights the route, and selects the correct transition properties. - At 150% architecture zoom, the parent function and both nested children have separated title and alias lines. The enlarged parent header keeps child content clear; no title/alias overlap observed in the reviewed decomposition.
- Ctrl+O opens the guarded native file picker; the focused review fixture loads successfully.
Material finding and re-verification
F1 — fixed and personally reverified: selecting a state-transition route previously jumped the center pane back to the first scenario while selecting the transition in the inspector. Reported to the lead; the lead changed active-behavior resolution to follow the transition source through its region to its machine. On the rebuilt executable, selecting Signal restored retained Reporting operation modes, highlighted the correct route, and showed its matching guard/effect. The numbered transition detail cards also match the rendered route numbers.
Remaining bounded review
Conflict resolution values/KeepTarget/merged text; manual trace explicit target; shared data perspective editing; placement diagram/UUID editing followed by actual dragging; and saved branch fixture reopening remain to be exercised by this reviewer. Native input paused because the application was being actively manipulated between observations and Computer Use twice reported user input detected. The lead was notified; no concurrent input attempted after the pause. CUA ownership was explicitly released to the lead. The copied Windows app remains open with disposable review data; the saved branch fixture is separate.
The lead subsequently identified a placement focus corner case by source inspection and is handling its fix and regression: moving a placement into an opposite-layer Traceability diagram must select the owning diagram's layer. This reviewer has not runtime-verified that later fix.
This report covers personally observed Windows behavior only. It does not assert Linux runtime acceptance, complete keyboard accessibility, large-model performance, or final product completion.
Final bounded source follow-up
Independently inspected the final changes in workflow.rs, the target/kind decision regression in tests.rs, and the placement artifact label in views.rs. No builds or native inputs were run for this follow-up; the lead owns final native verification.
- Merge-input focus fix: changing preview rows and general conflicts are now contained in stable child columns. Conflict property cards include both unresolved fields and existing resolutions and sort by source identity and field, preserving their order after each replan. The input remains in the same card position while its status and preview change. No further source-level focus defect identified within this change; continuous typing still requires the lead's native confirmation.
- Decision invalidation fix: changing the effective counterpart clears that source's prior field decisions; choosing the same inferred or explicit counterpart preserves its draft. Moving from an existing counterpart to creation clears old decisions. Counterpart-kind changes also clear decisions while selecting the same effective kind preserves them. The inspected regression asserts retargeting restores an unresolved conflict and blocks Apply, then verifies a newly reviewed value updates only the second target. It also covers creation and kind changes. No new material issue found.
- Placement artifact label: artifact owners that are placements resolve through the containing diagram's node map and display
Placement of <element> · <diagram>; other owners retain the existing semantic-object name path. This handles valid placement references without falsely labeling them as missing. No new material issue found.
These are source-review dispositions, not claims that the later fixes were personally exercised by this reviewer.
Packaged Windows creation-placement acceptance
Built the final frozen source with cargo build --release --workspace --locked using the D: target directory; build passed. Copied both release executables to dist/ArcadiaStudio-Windows and launched that packaged arcadia-studio.exe through its normal entry point.
Personally exercised on the actual packaged Windows application:
- Started the fresh 39-object demo, selected SA Architecture, and observed
SA functional decomposition: one parent function and two child function placements. - Opened Behavior & scenarios, selected
Repeated distress reports, clicked+ Occurrence, changed the new occurrence to Action, and named itReview response readiness. - Assigned
Classify incident and alert operatorand its compatibleCoordination system lifeline. Committed the properties. The action rendered on the coordination lifeline after the two existing report messages; the model showed 40 objects, 23 links, and zero checks. - Returned to Architecture. The same three function placements remained; no occurrence card was added.
- Used native Save As to write
D:/CodexBuilds/Capella2-v2-01a06e2e/final-ui-review/packaged-behavior-placement-reviewed.arcadia, reopened it through Ctrl+O and the native file picker, and rechecked both the unchanged three-card decomposition and the rendered saved action. - Closed the packaged app normally with Alt+F4. A fresh native window inventory confirmed that it had closed. CUA ownership was released to the lead.
The saved source independently confirms @new_occurrence is an Action owned by @repeated_distress_reports, belongs to its ordered steps, refers to the selected function/lifeline, and has no architecture placement.
Source review found one shared self.page == Page::Diagram guard in App::add_element, used by both Message::Add and Message::AddOwned. It confines implicit placement to Architecture while retaining semantic creation/step updates on other pages. Explicit PlaceSelected remains available. This is simpler than duplicating guards in both message branches. The worker's new regression was inspected, but its execution is recorded by the worker/lead rather than claimed here. No new material finding in this bounded review.
Final packaged Windows SHA-256:
arcadia-studio.exe:E2AEC2AC935E270C6185729CBB76F8323B381654C04DBDE7AAE90C4628A98A20arcadia-server.exe:D33EDAE56308035781856AE54358DEF59818CC93242380BC29C874F7DC7C53E4