94 lines
5.8 KiB
Markdown
94 lines
5.8 KiB
Markdown
# Native canvas follow-up at 83f53c7
|
|
|
|
This report describes Windows native observations of source
|
|
`83f53c7c6e277e250f06d2ae6bfa6a7988bd2e4b`, not acceptance of the complete release.
|
|
The [same-source Windows gates](release-canvas-followup-20260912.md) pass 834
|
|
desktop tests, strict all-target Clippy and the matching GUI build. Executable
|
|
SHA-256: `49eb87b4a239c586a16b9efbfd036b3823adc8b62a8992feeaa934bca4f5743b`.
|
|
|
|
The native process used disposable compact and bound fixtures in an isolated
|
|
profile. It launched at 22:41:22 UTC and closed normally at 22:58:28 UTC on
|
|
2026-09-12, with a retained process exit code of zero. Both output logs are empty.
|
|
The [portable archive](experiments/canvas-native-83f53c7-20260912/manifest.json)
|
|
contains the exact build identity, procedure, screenshots, source checkpoints,
|
|
oracle receipts and closure record. Source comparisons use the previously
|
|
identified actual core oracle; they compare the complete Project and exact
|
|
SourceBundle, including the compact fixture's Unicode/CRLF included file.
|
|
|
|
## Architecture and state focus
|
|
|
|
Starting from a single pointer selection of Target work, the native architecture
|
|
sequence was Delete, Save, Undo, Save, Redo, Save, Undo, Shift+Delete. No intervening
|
|
canvas click or F6 was used. Each saved removal matches the independently derived
|
|
baseline Delete of placement `de1e7e00-0000-4000-8000-00000000001f`; each saved
|
|
restoration exactly matches the original Project and SourceBundle. Shift+Delete
|
|
opens the confirmation for Target work. Cancel and Save leave the exact baseline.
|
|
This verifies the originally observed loss of keyboard ownership is corrected
|
|
for this sequence.
|
|
|
|
In the persisted SA state view, first-click selection of SA Ready followed by
|
|
Delete exposes the unplaced-element picker. Save matches the independent Delete
|
|
of placement `de1e7e00-0000-4000-8000-00000000003f`. Undo removes that picker and
|
|
restores the selected state; immediate Shift+Delete opens the confirmation for
|
|
SA Ready without another canvas click. After Cancel and Save, both source files
|
|
and the complete Project exactly match the baseline. This exercises the actual
|
|
Iced child-slot replacement that failed before e2c027e.
|
|
|
|
Inspector Name editing is protected: Home, Delete changes only the pending text
|
|
from SA Ready to A Ready; Shift+Delete edits the text again without opening model
|
|
deletion or removing the drawn state. Revert restores the original name and clears
|
|
pending edits. No Canvas or Focus canvas button is required in either workflow.
|
|
|
|
Persisted state uses a different keyboard policy from process/scenario controls:
|
|
F6 after Inspector Revert is a no-op, and Tab enters Inspector Name. Source review
|
|
confirms state Owner has no F6 handler. This is a cross-workspace inconsistency,
|
|
not evidence of a failed implemented state F6 shortcut. In the scenario workspace,
|
|
F6 from an Inspector field visibly clears text focus, and Tab advances to the
|
|
Select palette control. F6/Tab are toolbar navigation, not occurrence traversal.
|
|
These observations do not establish process/scenario Save focus continuity.
|
|
An interleaved held-drag/Save native test was not performed; the available atomic
|
|
drag API cannot hold the mouse across another action. Mounted regression evidence
|
|
is separately scoped in the earlier report.
|
|
|
|
## Bound nested scenarios
|
|
|
|
The real bound fixture contains OA and SA C1, C2, R2, R1 scenarios and an OA
|
|
reentrant reverse call. At 100%, clicking the exposed inner and outer activation
|
|
interiors selects their exact C2 and C1 occurrences. The reverse-call bar selects
|
|
C2 on L1. Inner and outer reply endpoints visibly terminate on their respective
|
|
activation edges. Inspector readback includes OA C1 requested_pressure 420.0,
|
|
OA R1 measured_pressure 418.0 correlated to C1, SA C2 requested_pressure 380.0
|
|
with its explicit synchronous interface allocation, and SA R2 measured_pressure
|
|
378.0 derived from that exact C2 allocation. These are sampled native readbacks;
|
|
the full fixture identities and values are covered by core source comparisons.
|
|
|
|
Save, native Open of the same bound source, return to its scenario, and Save pass
|
|
exact complete Project/SourceBundle comparison. No semantic modification was
|
|
made to the bound fixture. The window was resized using its observed borders to
|
|
1102x732 outer pixels (1100x700 client). The scene remains navigable, and Fit gives
|
|
66% zoom. At 100% the right lifeline header is partly clipped within the narrow
|
|
canvas; Fit exposes it with considerably smaller text.
|
|
|
|
Native inspection found a real rendering defect despite the passing Scene tests:
|
|
opaque, 225-unit message-label backgrounds erase the outer activation border in
|
|
22-unit bands above C2/R2/R1. The visible shortened text ends before the bar, but
|
|
its background and label hit rectangle extend over it. Screenshot
|
|
`oa-outer-activation-selected-0.png` is the primary witness. Rendering acceptance
|
|
therefore fails at 83f53c7. Correction d61f1f3 moves backplates behind activations
|
|
and gives exposed bars priority over label rectangles while preserving precise
|
|
message hits. Its tests/build/native acceptance are separate from this trial.
|
|
|
|
Unselected bars and message labels are visibly faint on white, especially at
|
|
66% zoom. Issue 26 records this broader contrast concern; the paint-order repair
|
|
does not address it. Native self/crossed/ALT/PAR rendering was not exercised in
|
|
this trial. Geometry tests and generated fixtures do not substitute for those
|
|
remaining native checks or for peer lifecycle integration.
|
|
|
|
## Scope and coordination
|
|
|
|
Live outcomes remain in Gitea issues 15, 21, 25 and 26. The architecture/state
|
|
focus regression passes this bounded native trial; nested rendering needs the
|
|
identified correction and recheck. Broader free geometry, resizing, Details UX,
|
|
lifeline union, graphical/source/API parity and complete release acceptance remain
|
|
open. Linux/WSL checks remain deferred by the user.
|