Preserve editor input context through diagram help
@@ -0,0 +1,31 @@
|
||||
# Compact Help native evidence
|
||||
|
||||
Branch-specific evidence for [issue 39](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/39).
|
||||
The [design record](../../compact-context-help-20260925.md) owns the decision and current acceptance boundary.
|
||||
|
||||
`native/` contains the Windows baseline captures from published source
|
||||
`715036e132677dd2bc2fb37ed316d93dc9987aec`.
|
||||
`candidate-f830/` preserves the independent review of source
|
||||
`f83068757af885572f6b3f932d07233dd1b94b7e`, including its two failed Help workflows,
|
||||
original screenshots, exact executable/runtime hashes and successful build log.
|
||||
These observations must not be relabeled as acceptance of a successor executable.
|
||||
|
||||
The initial test compilation began at that commit; successor work was edited
|
||||
while it ran. `tests.log` (nine passed, one failed fixture precondition) and
|
||||
`geometry-tests.log` (nine passed, one failed destination-width invariant) are
|
||||
diagnostic evidence from that cycle, not frozen-source acceptance. The geometry
|
||||
run reused its test executable without recompiling. The first command's
|
||||
`allocation_drag_full_tree_tests` filter matched no tests; the second used the
|
||||
actual `full_tree` filter plus the affected mounted State/Process checks.
|
||||
|
||||
The review used a copy of `examples/release1/project.arcadia` from the published
|
||||
Windows package. All 37 fixture files matched the baseline before the trial and
|
||||
again after closing without saving. `baseline-proof.json` records those bytes.
|
||||
The executable is a local development build, not a published release artifact.
|
||||
|
||||
Reproduce the build using the documented Windows gnullvm toolchain and
|
||||
`cargo build -p oa-desktop --locked`. Place its matching `libunwind.dll` beside the
|
||||
executable, launch it, and open an isolated copy of the release1 example. Perform
|
||||
the workflows and use the window sizes in [the native report](candidate-f830/review.md).
|
||||
The baseline captures establish layout comparison; the report records actual
|
||||
interaction results and explicit unverified workflows.
|
||||
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"baseline_binary": "2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399",
|
||||
"baseline_source": "715036e132677dd2bc2fb37ed316d93dc9987aec",
|
||||
"model_files": {
|
||||
"evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
||||
"expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
||||
"model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
||||
"model.rs": "ddc2d92b0d7699a4cadfbb35ae379f0a68d17f4f5d7df82b4b1afcf8d5425fbe",
|
||||
"oa/activities/activity_oa_restore_work.arcadia": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f",
|
||||
"oa/behavior/process_oa_assessment_procedure.arcadia": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a",
|
||||
"oa/behavior/process_oa_field_procedure.arcadia": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96",
|
||||
"oa/behavior/process_oa_response.arcadia": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84",
|
||||
"oa/behavior/scenario_oa_conversation.arcadia": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b",
|
||||
"oa/behavior/scenario_oa_full_scenario.arcadia": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5",
|
||||
"oa/behavior/state_machine_oa_monitor.arcadia": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6",
|
||||
"oa/capabilities.arcadia": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a",
|
||||
"oa/model.arcadia": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada",
|
||||
"oa/participants.arcadia": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819",
|
||||
"oa/types.arcadia": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d",
|
||||
"project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
||||
"README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
||||
"sa/behavior/process_sa_assessment_procedure.arcadia": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d",
|
||||
"sa/behavior/process_sa_field_procedure.arcadia": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2",
|
||||
"sa/behavior/process_sa_response.arcadia": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52",
|
||||
"sa/behavior/scenario_sa_conversation.arcadia": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2",
|
||||
"sa/behavior/scenario_sa_full_scenario.arcadia": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda",
|
||||
"sa/behavior/state_machine_sa_monitor.arcadia": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8",
|
||||
"sa/capabilities.arcadia": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645",
|
||||
"sa/functions/function_sa_audit_thresholds.arcadia": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686",
|
||||
"sa/functions/function_sa_restore_work.arcadia": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c",
|
||||
"sa/model.arcadia": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395",
|
||||
"sa/participants.arcadia": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84",
|
||||
"sa/types.arcadia": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064",
|
||||
"traceability.arcadia": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116",
|
||||
"transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
||||
"transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
||||
"views/diagram_oa_allocation_view.arcadia": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624",
|
||||
"views/diagram_sa_allocation_view.arcadia": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6",
|
||||
"views/diagram_sa_capability_view.arcadia": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2",
|
||||
"views/diagram_sa_service_view.arcadia": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c",
|
||||
"views/diagram_sa_state_view.arcadia": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230"
|
||||
},
|
||||
"matching_files": 37,
|
||||
"baseline_captures": {
|
||||
"baseline-allocation-compact.png": "d92a0cca62a038dcf0894d92b37a64028342c2365e3fb8880ed597222123d96f",
|
||||
"baseline-trace-compact.png": "b608a3d75612d8c06aacc094a7aebd12a0798ce30f2126c00bc3ad61a9103217",
|
||||
"baseline-trace-normal.png": "6dfb6c595af4247aab3600da0e0a25ba4b11151436e9fc4a406f1036053f71d0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"runtime": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4",
|
||||
"source": "f83068757af885572f6b3f932d07233dd1b94b7e",
|
||||
"buildExit": 0,
|
||||
"binary": "C1A9B196EC03E86F049FA2AAD2B86BFCAA3F0FBAE582A80EE39EE8ADF0758E3E"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop)
|
||||
Finished `dev` profile [unoptimized] target(s) in 1m 46s
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
running 10 tests
|
||||
test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_description_retains_focus_and_middle_caret_for_next_key ... ok
|
||||
test app::allocation_drag::tests::full_tree::actual_app_tree_dirty_name_retains_focus_and_middle_caret_for_next_key ... ok
|
||||
test app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable ... FAILED
|
||||
test app::allocation_drag::tests::full_tree::actual_keyboard_arrange_shortcut_consumes_once_escape_cancels_and_dirty_owner_refuses ... ok
|
||||
test app::allocation_drag::tests::full_tree::actual_rendered_canvas_pixels_do_not_change_when_toolbar_feedback_text_changes ... ok
|
||||
test app::allocation_drag::tests::full_tree::actual_toolbar_hover_inspects_last_full_name_without_authorizing_an_outside_drop ... ok
|
||||
test app::allocation_drag::tests::full_tree::control_focus::dirty_selected_pin_outer_ring_keeps_real_name_focus_and_caret ... ok
|
||||
test app::process_canvas::tests::direct_process_app_save_details_resize_and_passive_geometry_keep_drafts_and_camera ... ok
|
||||
test app::state_diagram_tests::picker_escape::mounted_state_missing_picker_escape_preserves_exact_document_then_reopens_and_places ... ok
|
||||
test app::state_multiselect_focus_tests::mounted_state_selection_and_missing_picker_never_resize_or_refit_the_canvas ... ok
|
||||
|
||||
failures:
|
||||
|
||||
---- app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable stdout ----
|
||||
|
||||
thread 'app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable' (880) panicked at crates\oa-desktop\src\app\allocation_drag_full_tree_tests.rs:308:5:
|
||||
Rectangle { x: 274.0, y: 242.59999, width: 328.21484, height: 26.0 }
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
app::allocation_drag::tests::full_tree::actual_app_tree_exact_incoming_drag_keeps_destination_visible_and_canvas_stable
|
||||
|
||||
test result: FAILED. 9 passed; 1 failed; 0 ignored; 0 measured; 1532 filtered out; finished in 26.81s
|
||||
@@ -0,0 +1,27 @@
|
||||
# Independent native review: compact contextual Help
|
||||
|
||||
Reviewed candidate source `f83068757af885572f6b3f932d07233dd1b94b7e`, executable SHA-256 `C1A9B196EC03E86F049FA2AAD2B86BFCAA3F0FBAE582A80EE39EE8ADF0758E3E`, runtime SHA-256 `F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4` (build.json). Review used Windows native Computer Use with the copied `model/project.arcadia`, normal 1440x900 and configured minimum 1100x700 client sizes (captured windows 1442x932 and 1102x732). Original examples and unrelated windows were not edited. This review belongs to this candidate, not a subsequently rebuilt executable.
|
||||
|
||||
## Findings requiring correction
|
||||
|
||||
1. **Help has no working keyboard reading route for overflow.** Open Architecture Help with F1. Press PageDown; the article does not move. Tab followed by PageDown does not move it. Clicking the article then PageDown also does not move it. Pointer wheel scrolling does work. Moved gesture instructions fall below the fold, so keyboard users cannot reach all the guidance. Evidence: `03-help-normal.png`, `04-help-keyboard-no-scroll.png`, `06-help-pointer-scroll.png`. Integration owner independently confirmed missing keyboard handling and is preparing a fix.
|
||||
2. **Help dismissal loses draft input focus/caret continuation.** In minimum Traceability, click inspector Name, press Home, type `DRAFT `, press F1, Escape, then type `X` without clicking. The retained field remains `DRAFT 1...`, rather than becoming `DRAFT X1...`. Repeat with Process W -> empty canvas -> pending contribution name `Review draft` -> F1 -> Escape -> type `X`; text remains `Review draft`. Draft text is retained and no model mutation occurs, but typing cannot resume at the previous caret. Evidence: `08-property-draft.png`, `09-property-focus-lost.png`, `14-process-pending.png`, `15-process-pending-focus-lost.png`.
|
||||
|
||||
## Additional observation
|
||||
|
||||
State still draws a permanent generic instruction at `behavior/state_canvas.rs:1500`: "Select / move ...". At the minimum width it is truncated near "transition endpoin..." (`11-state-minimum.png`). Move this idle instruction to Help while preserving active tool/selection warnings. This is separate from the removed toolbar hint.
|
||||
|
||||
## Verified workflows and layout
|
||||
|
||||
- Opened only the isolated copied water-pressure source project. Initial launch helper timed out waiting for a targetable window; a fresh window enumeration found the normal application. A file-dialog accessibility set-value operation also timed out; re-observation showed no filename change, and ordinary pointer focus/text entry succeeded. These are recorded as tooling delays, not application defects.
|
||||
- Switched OA Allocation to Traceability through View content. All trace actions remain visible. At normal size canvas top moved from baseline approximately y=417 to y=356; at minimum size from approximately y=470 to y=356. The same baseline fixture and panel state were used; this recovers approximately 61 and 114 vertical pixels respectively. Evidence: `02-trace-normal.png`, `07-trace-minimum.png`, baseline files under `../native/`.
|
||||
- Minimum Allocation canvas starts around y=356 versus baseline y=414, recovering approximately 58 pixels. Destination and Arrange controls remain visible (`10-allocation-minimum.png`). Arrange arms visibly and Escape removes its armed button state. The historical operation-status text remains in the footer after cancellation; no claim of full status-lifecycle coverage is made.
|
||||
- F1 and visible Help both open the overlay. Close and Escape dismiss it. Pointer article scrolling works. Resized the native window from normal to minimum while Help was open; header/Close and article remain reachable (`05-help-minimum-resized.png`). The underlying view remains selected after closing, and its camera updates to the smaller viewport.
|
||||
- Property draft text survives Help, and Revert restores accepted name. Undo restored the temporary Traceability projection change and the application showed all changes saved.
|
||||
- State and Process F1 select the correct States and Chains articles. Their compact selection rows and Help control are visible at minimum size (`11-state-minimum.png`, `13-process-minimum.png`). Created a State region, then exercised Undo/Redo/Undo; object and check counts returned to the fixture baseline (94 objects, 62 links, one check). Evidence: `12-state-redo.png`.
|
||||
- Process W -> blank canvas opens a pending contribution form. Named draft survives Help. Disabled Create, source chooser explanation and Cancel remain visible at minimum size. Cancel returned to the existing Process without creating an object.
|
||||
- Closed the reviewed application through Alt+F4 after restoring the clean model. No save was performed.
|
||||
|
||||
## Remaining native coverage
|
||||
|
||||
Do not infer multiselection, long-name group-control layout, source-editor caret preservation, operation-failure coexistence with active guidance, or full Scenario coverage from these observations. The supported Computer Use input API has no modifier-click or key-hold action; source inspection found Shift-click selection but no ordinary-diagram marquee implementation. Native group verification therefore remains a gap. Keyboard reading and property/behavior caret continuation must be rechecked on the successor candidate, together with any affected input behavior. Screenshots alone do not establish these interactions.
|
||||
@@ -0,0 +1,35 @@
|
||||
Compiling oa-server v0.2.0 (C:\ar-compact-01a0d717\crates\oa-server)
|
||||
Compiling iced_widget v0.14.2 (C:\ar-compact-01a0d717\crates\vendor\iced_widget)
|
||||
Compiling oa-core v0.2.0 (C:\ar-compact-01a0d717\crates\oa-core)
|
||||
Compiling iced v0.14.0
|
||||
Compiling oa-desktop v0.2.0 (C:\ar-compact-01a0d717\crates\oa-desktop)
|
||||
Finished `test` profile [unoptimized] target(s) in 20m 57s
|
||||
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-c5b42126ba36cd38.exe)
|
||||
|
||||
running 10 tests
|
||||
test app::context_help_tests::context_help_accepts_live_process_viewport_and_rejects_stale_measurements ... ok
|
||||
test app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch ... FAILED
|
||||
test app::context_help_tests::context_help_escape_preserves_pending_behavior_form_and_blocks_submit ... ok
|
||||
test app::context_help_tests::context_help_f1_selects_scenario_topic_without_leaving_the_workspace ... ok
|
||||
test app::context_help_tests::context_help_preserves_group_property_draft_camera_and_model ... ok
|
||||
test app::context_help_tests::context_help_rejects_a_reference_picker_open_queued_from_the_inspector ... ok
|
||||
test app::context_help_tests::context_help_retains_source_draft_and_rejects_background_source_input ... ok
|
||||
test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok
|
||||
test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok
|
||||
test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok
|
||||
|
||||
failures:
|
||||
|
||||
---- app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch stdout ----
|
||||
|
||||
thread 'app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch' (3680) panicked at crates\oa-desktop\src\app\context_help_tests.rs:225:5:
|
||||
assertion failed: app.allocation_input_owner()
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
app::context_help_tests::context_help_disables_allocation_input_including_early_work_drag_dispatch
|
||||
|
||||
test result: FAILED. 9 passed; 1 failed; 0 ignored; 0 measured; 1532 filtered out; finished in 0.42s
|
||||
|
||||
error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio`
|
||||
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 152 KiB |