Files
ARCADIA-Studio/harness/scenario-removal-followup-20260925.md
T

6.8 KiB

Scenario removal: keyboard entry and real source-budget failure

This supplements the original bounded Windows implementation evidence, preserving that report and its frozen archives. Native behavior uses the same production source 43340b94a13f192c3b5d3c3112dbe87246790a44; test-only commit 2aaea8a3a0b9522548b4418d9609f75d90c24345 adds a genuine failure-path evaluator without changing production behavior. It does not establish integration, release acceptance or issue-29 completion.

Native focused entry

A fresh Windows process used the same verified executable, DLL and 4,389-byte fixture as the original run. Contextual Add selected the Intake participant and first message. F6 followed by Delete opened the complete two-object review: 2 records removed, 10 updated, 12 matches across two pages, with both selected aliases visible. A separate second Delete left the review open; Escape retained selection. Save matched every original source byte.

After Save, F6 followed by Shift+Delete opened the same complete review. Enter did not implicitly confirm; Escape again retained both objects, and Save again matched the baseline exactly. Normal process exit was 0 with empty stdout/stderr and unchanged immutable inputs. The follow-up does not re-exercise destructive confirmation/history/reopen; those remain covered by the original independent native evidence.

The portable native evidence contains 24 capture records, original images, two saved snapshots, lifecycle/build/source receipts, attributed action observations and independent review. Archive: 2,339,112 bytes, SHA256 8be1f0d9d584edc889fb44076c1ef18675afd502bb8f68cb1c8fa974c7f48a4f, 127 members. Its CLI preflight is an exact reused copy of the previously accepted attempt, not a new execution. Four binary copies are pinned but omitted; this is evidence, not a runnable distribution. Parent standalone verification passes.

The causal key sequence is recorded from the parent's actual Computer Use calls; screenshots alone do not prove keystrokes. The independent reviewer inspected screenshots and rehashed originals but did not witness input injection. Functional keyboard focus is established by the resulting review, not internal UIA focus inspection. A second separate Delete press is not OS autorepeat evidence. Native Shift-click remains unverified because the supported automation API cannot hold a modifier through a subsequent mouse click; contextual Add is the observed alternative. Keyboard-only confirmation and broad accessibility remain outside this follow-up.

Real failure evaluator

Removing model elements need not shrink preserved source. A surviving message's explicit sender @a; receiver @b; becomes sender none; receiver none; when its two participants are removed. Many short references can therefore outweigh the deleted declarations. This correction to the earlier assumption enables a real public-interface test without production hooks or private limit mutation.

The added test constructs 256 asynchronous messages and two local participants in a valid advisory-incomplete authoring model. It first runs the actual prepared removal in an unrestricted Document, requires the exact independently constructed expected model, and asserts net final source growth. It then constructs the same original bundle under a source-byte budget equal to its baseline size. A real Document execution must produce the source_limit diagnostic before the test exercises the actual App Begin/Confirm route.

Derived/Saved representations each run with no history and with a genuine earlier Rename followed by Undo. Failure must preserve the accepted snapshot identity, full source/model, revision, clean/save state, selection order/primary/generation, representation/visit, camera/navigation, source editor and workspace. The review closes and retires its input epoch; replayed confirmation is inert. Existing Redo must still restore the exact renamed model/source, and one Undo restores the original clean state. This tests in-memory source preparation failure, not filesystem write failure. It does not establish arbitrary history-depth or camera stress coverage.

Runtime verification passed at the exact test-only commit: removal-app-source-failure-1 ran one test containing all four App cases, with 1 passed / 0 failed / 0 ignored and 1,630 filtered, finishing the test in 7.10 seconds after compilation. The original report's bounded removal source-budget-failure gap is now covered; this does not extend to disk I/O errors. The independent investigation found no corresponding public failure trigger for byte-neutral same-parent reorder, whose separate coverage limit remains unchanged.

Formatting and strict desktop all-target Clippy (cargo clippy -p oa-desktop --all-targets --message-format=json -- -D warnings) also pass. Each of the three closed gates captures 823 unchanged inputs with an exact committed-source proof, map SHA256 5e77ee22dde7a1223d0e679bd877fe403fbd24ed1cfa9c7615af51cf288fb92c. Only test code changed, so the earlier production build/native evidence is reused rather than relabeled as a new binary or full-suite run. Independent test review, native review, attributed native actions.

The portable checks retain all three follow-up attempts, raw logs, source capsule, measured helpers and exact source proofs. Checks archive: 3,279,375 bytes, SHA256 320a94e58e7a1c75bae3108b910f1f9b319177b5702d787434a179fb92a2b9b0. All three passed; the original increment's failed historical attempts remain in its separate unchanged archive. Standalone offline verification passes for both follow-up packages; a direct native archive audit also compared all 126 original members and four omitted binary pins, plus semantic equality of its generated review config.

Reproduction

Use the project Windows GNU/LLVM Rust 1.98.1 environment, one Cargo job and incremental compilation disabled. Test command:

cargo test -p oa-desktop scenario_group_removal_source_write_failure --message-format=json -- --nocapture

Native archive consistency (Python 3.11+, standard library):

python -B harness/scenario-removal-followup-evidence-20260925/native/verify.py harness/scenario-removal-followup-evidence-20260925/native
python -B harness/scenario-removal-followup-evidence-20260925/checks/verify.py

Gitea server storage rejected the original evidence push and issue comment during this checkpoint; these new records are local-only until a successful push and fresh byte readback. Live publication status belongs to issue 29 when writes recover. Linux builds/checks remain user-paused.