Files
ARCADIA-Studio/harness/text-workspace-native2-20260913.md
T
sorokin.oleg.edu 2df7f580aa Make the Text workspace compact and preserve editing context
Replace the oversized header and reference rail with stable editor slots and a retained supporting drawer. Bind diagnostic, result and menu actions to their original publication and visit; preserve effective selections on navigation and dismiss Actions, Find and the drawer one surface per Escape.

Retain exact Windows source captures, eight final gates (871 desktop passes), independent reviews, native selection/rename/recovery trials and the original failures. All 526 tested inputs and staged evidence were byte-checked before commit. Combined preview integration and packaging remain with issue 27; Linux remains paused.
2026-09-12 22:00:36 -07:00

44 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Text workspace: corrected selection native trial
The corrected Find and navigation selection behavior passed native replacement-typing checks on Windows. The same trial exercised compact layout, retained results, exact saved rename transactions, graphical reopen, and incomplete-source recovery. It also exposed an inherited Escape priority issue; the subsequent correction requires separate verification. This is bounded Text workspace evidence, not complete application or release acceptance.
## Source and execution identity
Attempt 5 captured 526 exact working input files above base `cbc49a7802fb1bba0dd284fd904c700a0703ae70`. Those changes were uncommitted during verification; the base alone does not identify the tested source. Input ZIP SHA-256 is `83ff861fc27b7aead159fde12e6fd881ba6c3c02b29e7bf10bbc12c60b7e6067`. All seven serial gates retained identical inputs: strict all-target Clippy, 874-test membership, 30 Text tests, 58 selection tests, full 871 passed/0 failed/3 ignored, one separately run ignored timing experiment, and GUI build. Focused counts overlap the full suite.
The actual non-fresh Cargo artifact is a Windows GNU LLVM development GUI, 114,171,904 bytes, SHA-256 `4a1d09c108fd5062f01bc7059064fa7dc839e03d0cc2a3b1e12f8b02c8115a24`. Rust/Cargo 1.98.1, locked/offline inputs and one compiler job were recorded. Confirm App-update timing had five samples, median 38.048 ms; this excludes returned Task polling and native rendering. No optimized-build or end-to-end latency claim follows.
Trial 2 ran this preserved executable with a fresh private profile, application-data paths, working directory and temporary directory, sanitized Windows PATH and pinned sibling runtime DLL. PID 5284 ran from 2026-09-13 03:42:39.425514 UTC to 04:18:28.799966 UTC. Normal close completed with exit 0 and empty stdout/stderr; executable and DLL hashes remained unchanged. Linux/WSL verification remains user-paused.
The [original archive](experiments/text-workspace-native2-20260913/manifest.json) contains 367 payloads, 13,631,658 bytes; manifest SHA-256 `3ddabcf26828afe2aee882bdfbac26d0f3e6003e6c22f1575bb5bfdf12dcb01a`. It preserves all 105 screenshot-state records and 112 original JPEG payloads, actual launch/closure receipts, seven saved-state oracle runs, exact attempt-5 input ZIP/logs/receipts, fixture baselines/expected files and the separate repair fixture. It omits runtime executables and private profiles. Its first archiver attempt stopped at Windows default cp1252 decoding of the Unicode fixture manifest; explicit UTF-8 corrected this evidence-tool failure. Existing copies were byte-checked on resume and both helper versions retained.
The [independent native evidence review](experiments/text-workspace-followup-review-20260913/native2-evidence-review.md) verifies the exact archive inventory, all seven saved-state receipts, final fixture bytes and selected original images. The [attempt-5 audit](experiments/text-workspace-followup-review-20260913/attempt5-evidence-review.md) separately checks source and compiler evidence. Their historical source bindings predate the Escape correction.
## Native results
| Workflow | Observation and evidence |
| --- | --- |
| Minimum editing layout | State 005 is 1442×932 outer; 006 is actual 1102×732 outer (1100×700 client). Closed editor has 486 px; default 180 px drawer leaves 306 px; larger 240 px drawer leaves 246 px. Permanent source actions and status remain visible. |
| Find selection | States 007–023: double-click word and triple-click line survive both Close and Escape. Actual subsequent typing replaces the whole selected alias or description line; one text Undo returns visible original text and “All changes saved.” The scrolled `oa_contact` case that failed trial 1 now produces exactly `oa_contact_probe`. Find itself retains scroll; text Undo has the separate limitation below. |
| Back | States 024–029: select `oa_control`, Shift+F12, choose use at 19:13, Alt+Left, type `oa_control_back_probe`. The whole original declaration alias is replaced; one Undo restores it. |
| File return | States 030–038: selected word, then selected line, each survive participants→types→participants without reclicking the editor. Typed probes replace the intended whole ranges; Undo restores visible baseline. |
| Retained supporting data | States 039–047: enlarge, scroll grouped references, switch Status/Problems/References, Hide, reopen through Source status, return to References. Query, groups and scroll survive; stale results remain disabled after edits. Status explains draft/model/rename Undo scopes. |
| Popup input | States 048–050: with Find and References visible, Actions opens; one Escape dismisses only Actions. State 051 exposes the inherited next-Escape behavior described below. |
| Representative transaction | States 052–072: rename `oa_restore_work`→`oa_restore_pressure`, preview two files/six changed lines including traceability, accept, Save, Undo model, Save, Redo model, Save. Exact saved-state oracles pass each resulting variant. After Save the scoped Undo source rename is disabled; Undo model remains available and restores the full transaction. |
| Small Unicode-path model | States 076–086: four sources, two activities/one interaction, Unicode folder/names. Rename `assess`→`assess_damage` previews two files/two changed lines; prose/comments containing `@assess` remain unchanged. Accept and Save pass the exact expected oracle. |
| Reopen and parity | States 087–089: reopen representative saved project from disk. Its 94 objects/62 links and valid diagram load; graphical activity properties show `oa_restore_pressure`, with engineering name “Restore safe pressure” unchanged. |
| Repair and ambiguous scope | States 092–104: load a deliberately absent include plus two duplicate 32-W aliases with distinct UUIDs. Status explains retained prior graphical model; Problems navigates to the missing include line. References reports Partial, Collision, two declarations and two uses at minimum width. Definition query deliberately reports zero uses and two explicit declaration choices; selecting the second opens its exact source. The prior valid diagram remains visible with property editing disabled while drafts need repair. |
| Closure | State 105 shows the unsaved-draft close prompt. Discard closes this unedited, deliberately invalid loaded fixture normally; no repair fixture Save/Apply occurred. Exact four-file hashes remain unchanged. Final closed-process representative and small-model oracles pass their saved renamed variants. |
The pinned saved-state comparator verifies complete decoded model/identity and exact reachable source bytes (30 representative, four small), while the wrapper checks all physical files (37 representative, four small) and that the comparator did not alter them. These disk checks do not inspect unsaved runtime Project state, cursor or viewport. The initial pre-open representative baseline also passed. The archive provides each actual command, environment and hash.
## Findings and limits
State `051-second-escape-closes-find-keeps-drawer` is mislabeled: pixels show **both Find and drawer closed**. Source review identifies one ordinary legacy Escape handler, not duplicate subscription delivery; existing tests explicitly encoded that behavior. The design now requires menu→Find→drawer on successive Escapes. This trial predates that correction and cannot validate it.
Text Undo restores text but rebuilds editor content from a text-only history entry while retaining the post-edit cursor. Native probes show viewport reset and sometimes that retained coordinate. Exact Undo caret/selection/viewport restoration was not established. This pre-existing history design needs a separate bounded specification and evaluator; it is not a Find or departure-selection regression.
States 074 and 090 contain empty File name fields despite their “path” labels: initial typing did not populate the native picker, and later explicit refocus/typing succeeded (075/091). State 060 is intermediate scroll context, not yet the traceability changed line (061). Save-request states can show Working/unsaved before completion; use the subsequent settled states and oracle receipts. Labels and screenshots alone do not override observed results.
This trial does not cover exact Undo viewport history, every shortcut/modal interleaving, screen-reader accessibility, all detached/unverified/omitted scope cases, optimized packaging, combined peer contributions, or complete OA/SA usability. [Selection correction rationale](text-selection-correction-20260913.md) and the [interaction contract](text-workspace-interaction-contract-20260912.md) define the implemented boundaries. Live coordination and remaining work belong to [issue 13](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/13) and combined integration [issue 27](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/27).