56 lines
3.3 KiB
Markdown
56 lines
3.3 KiB
Markdown
# Attachment editing: Escape correction and verified scope
|
|
|
|
Branch-specific evidence for [issue 33](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/33),
|
|
source `53d01a3d4451b94792986f2dfac56f6f04e111a4`.
|
|
The [portable archive](experiments/edge-attachments-53d01a3-20260923/README.md)
|
|
is authoritative for raw verification evidence and its limitations. The original
|
|
[attachment decision](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/53d01a3d4451b94792986f2dfac56f6f04e111a4/harness/edge-attachments-20260922.md)
|
|
and language contract remain authoritative for representation and behavior.
|
|
|
|
## Native finding and correction
|
|
|
|
Opening the State transition context menu resets the canvas wrapper's keyboard
|
|
ownership. Selecting Adjust attachment arms the tool without giving the canvas
|
|
focus. Therefore immediate Escape can reach the application's fallback while
|
|
the unfocused canvas does not consume it. The original fallback omitted this
|
|
tool, leaving it armed until a canvas interaction established ownership.
|
|
|
|
The accepted correction resets only State AdjustAttachment to Select in the
|
|
existing application Escape fallback, after prior menu/modal/form handling.
|
|
It sends no model command and grants no keyboard ownership. Granting focus after
|
|
the menu would also change Delete and other keyboard semantics; the bounded
|
|
fallback avoids that unrelated change. Semantic Reconnect policy is unchanged.
|
|
|
|
Mounted regression tests exercise actual widget statuses and application
|
|
subscriptions, including post-menu Escape without a canvas click, focused
|
|
canvas cancellation, modal priority and unfocused Delete. Full document/source,
|
|
history and camera invariants are checked where relevant. Native source and
|
|
target cancellation, source-end attachment editing/history and save/reopen then confirmed
|
|
the corrected executable's bounded behavior. The preserved original failed
|
|
observation is the reason for the correction, not superseded evidence to delete.
|
|
|
|
## Evidence handling decision
|
|
|
|
Build evidence and a native session accidentally shared an indirect executable
|
|
binding through the Cargo target directory. The native preflight detected the
|
|
replacement and stopped. Preserving both artifacts, documenting their hashes,
|
|
restoring the original referenced bytes, and using a new comparison retained
|
|
the evidence without rewriting history. The corrected native stage binds a
|
|
preserved executable outside that mutable target directory. Future native
|
|
stages should similarly separate immutable tested artifacts from build outputs;
|
|
after restoring an executable, Cargo freshness metadata alone cannot establish
|
|
that it matches the desired candidate.
|
|
|
|
Both portable archives preserve raw failures and use explicit source mappings
|
|
instead of publishing machine-only paths. No entire-workflow, continuous
|
|
immutability or clean-build claim is inferred from matching endpoint hashes.
|
|
|
|
## Integration boundary
|
|
|
|
The ordered contribution is `79cc9d5`, `3aa80de`, then `53d01a3`, above ordinary/Text
|
|
base `3f9e6a18`. Source and evidence branches are separate. The
|
|
[integration audit](experiments/edge-attachments-53d01a3-20260923/integration-review.md)
|
|
identifies actual shared-file seams and focused combined checks. Codex-956atf
|
|
retains integration/release ownership. These results do not certify the combined
|
|
Scenario/Text/transition/resize union; no integrated checkpoint is advanced here.
|