Files
ARCADIA-Studio/harness/experiments/text-diagnostics-20260913
..

Text diagnostic evidence, 2026-09-13

This archive preserves CPU tests, source captures, reviews, failed experiments and Windows dependency-notice checks for the diagnostic underline/hover candidate. It includes a bounded corrected Windows native trial with explicit parent acceptance and independent stored-image review; it does not establish integrated, packaged runtime or release acceptance. Publication remains the integration/release owner's responsibility.

Verify without executing the historical tools

From this directory, with Python 3.9 or later:

python -B verify.py

The verifier is read-only and uses the standard library. It checks exact archive membership and hashes from files.json, copy receipts, all nine source ZIPs' exact member sets, CRCs and uncompressed content hashes, gate receipt/capture/log bindings and test summaries, and the probe's 77 inputs and result/log bindings. It also resolves archived build/oracle/launch evidence, checks the saved oracle reports against raw logs and fixtures, and checks diagnostic UTF-8 bounds and line/column coordinates. It does not open original private paths, execute Cargo, inspect mutable shared binaries, or treat historical reviews as new runtime tests. Keep any redirected verification output outside this directory: exact membership deliberately rejects extra files. The externally recorded hash of files.json supplies the integrity anchor; this is not a signed manifest.

index.json maps every original payload to its archive-relative destination and SHA-256. copy-record.json records source identities, exact destination readbacks and source rechecks. Original payload bytes were not rewritten. Equal input ZIPs and manifests are stored once under captures/<ZIP-SHA256>/; each gate resolves them through captureRef. Source captures are opaque ZIPs until intentionally extracted into a separate scratch checkout.

What ran

All Cargo gates used Windows stable-x86_64-pc-windows-gnullvm, Cargo 1.98.1, rustc 1.98.1 and the recorded linker/cache environment. Test, build and Clippy commands used --locked --offline --message-format=json; the formatting command is recorded separately below. Raw command arrays, timings, artifact readback receipts and logs remain under gates/<name>/.

Gate Test arguments after common Cargo options Passed / failed / ignored
annotation-attempt-1 -p oa-desktop source_annotations -- --nocapture 10 / 0 / 0
provenance-app-1 -p oa-desktop includes_loaded_ -- --nocapture 4 / 0 / 0
provenance-core-full-1 -p oa-core 447 / 0 / 1 across 41 result groups
mounted-annotation-1 -p oa-desktop source_annotations -- --nocapture 15 / 0 / 3
annotation-admission-1 -p oa-desktop annotation_snapshot -- --nocapture 2 / 0 / 0
annotation-manual-1 -p oa-desktop source_annotations -- --ignored --nocapture --test-threads=1 0 / 3 / 0, exit 101
annotation-corrected-1 -p oa-desktop source_annotations -- --include-ignored --nocapture --test-threads=1 18 / 0 / 0
annotation-projection-cost-2 same annotation command as corrected-1 18 / 0 / 0
desktop-full-1 -p oa-desktop 892 / 0 / 6
desktop-cli-final-1 -p oa-desktop -p oa-cli 904 / 0 / 6: 892 desktop and 12 CLI

The projection-cost and desktop-full gates share optimized capture c5a6e697e1490a0be7af39c30b926a31e09a42e5a4120b40157d807eca7e7a70 (604 inputs). desktop-full-1 reused the exact Cargo test binary from the projection gate according to its original artifact receipt. No archived executable is supplied or newly rehashed here. Six ignored tests in the full suite do not mean those six all ran in another gate; the focused include-ignored annotation gate establishes only its named scope.

Each capture is base b4b860f2776aa8251306d83ff58362c0359176ef plus captured working-tree changes, not a claim that the base commit contains this implementation. The first two gates captured 529 inputs. That early selector omitted 72 later-captured files under build, docs and examples; preserve its narrower evidence and do not retroactively claim complete build-input capture. The later core capture contains 601 inputs; subsequent annotation captures contain 604. Captures cover their enumerated scope, not toolchains, complete dependency caches, packaging scripts or every possible external input. The notices scripts and license supplements are included separately. Core coverage does not validate later UI edits; its review records that distinction. Four core example artifacts were built, not executed.

The manual failure contains two genuine anchor defects (shared-cluster EOF and an omitted bidi separator) plus an unsettled-scroll performance fixture defect. The corrected and optimized gates provide the subsequent positive evidence. Timing is debug CPU layout/projection evidence; see the final geometry review for distributions and limitations. That review truthfully says the full desktop suite was still running when authored; the later closed receipt above adds its result without rewriting the review.

Three closed strict Clippy runs are preserved. All used cargo clippy --locked --offline --message-format=json --workspace --all-targets -- -D warnings and executed no tests; their zero test-summary counts do not represent test passes.

Gate Result Source capture
strict-clippy-1 Exit 101: one clippy::collapsible_if error Same optimized capture as desktop-full-1
strict-clippy-2 Exit 101: seven clippy::single_range_in_vec_init test-code errors after the nested guard repair 8d15fab20876d3c8e899589f4e445f399930a63fae2ae5f5b0ed88db4a4a5169, 604 inputs
strict-clippy-3 Exit 0, unchanged inputs, after seven one-range slices became std::slice::from_ref calls b860a8fd4cb733540290faa4bcf5c805e207f23e595fe56e708199a3b4e82b84, 604 inputs

The passing Clippy run's input-manifest SHA-256 is 1483d0d67756ee6c6b4dff640150a71a87b4fc9e842bbfd22a1e2388e9bf1000. This same 604-input manifest and ZIP now bind the closed desktop-cli-final-1 (904 passed, zero failed, six ignored) and format-final-1 (cargo fmt --all -- --check, exit 0, empty logs). Formatting executes no tests. The earlier desktop-full-1 result remains attached to its preceding capture.

The final source-delta review verifies the only two changes from the optimized/manual evidence: an equivalent nested-guard collapse and seven equivalent range-slice arguments. It supports reuse of the prior geometry/manual/performance evidence without claiming final-byte performance was remeasured. Its statement that the final desktop/CLI run was still pending is preserved as historical context; the later receipt supplies the result above. Its native-recorder section is static review; the helper is now archived under native-preparation, and neither the helper nor that review establishes native acceptance.

The closed original Windows build and initial native trial are included below. The trial confirms a correct visible underline and tooltip box whose body/footer text stayed blank. This is blocking native negative evidence, not acceptance. A subsequent ownership correction first encountered disk-full build/lint failures; its canonical formatting, strict Clippy, full tests, build and saved CLI oracle have now passed in separately captured runs. Corrected native acceptance remains pending. No packaged result or current-source equivalence is implied after a captured candidate changes.

Closed build and saved CLI oracles

windows-build-final-1 completed cargo build --locked --offline --message-format=json -p oa-desktop -p oa-cli, exit 0 with the same final 604 inputs. The original Cargo artifact records and preservation receipt pin the development GUI (114,478,080 bytes, SHA-256 4ec7a4dcd1eace2fab231132c7c7caf714a7ce94fe5272d47c5f5899ea891961) and CLI (20,331,520 bytes, d6e0cc0fbb4a206bbd8d16c6da167dbf25b7c99e294a4ee5c1221195d92a268b). The executable bytes and runtime DLL are external. Archive verification checks receipt relationships and original raw Cargo artifact membership, without rehashing those binaries.

The source-bound current CLI ran lint <saved-entry> --json on fresh fixture copies. Current oracle and candidate oracle receipts bind the exact helper, source/build result, CLI artifact, raw stdout/stderr and physical fixture bytes. All four reports specify input coordinates, no writes and no proposed changes.

Saved fixture Exit Exact diagnostics and half-open UTF-8 spans
Missing include 3 Two missing_include errors at project.arcadia 113..141, line 3 column 5
Complete, raw no-ID declarations 0 Five warnings: missing_system at project 11..107; unallocated_leaf and work_without_behavior_context each at functions 171..489 and 491..701; two identities to stabilize
Append LF + } 1 One invalid_source error at functions 1127..1128, line 33 column 1
Append LF + sa_function unfinished "Unfinished" { 1 One invalid_source error at empty EOF 1164..1164, line 33 column 38

The complete declaration ranges span multiple lines; the four declaration warnings omit temporary object IDs. All related-location arrays are empty. The verifier checks raw/parsed report equality, exact saved input hashes, candidate literal suffixes, bounds, UTF-8 boundaries, line/column coordinates and expected candidate spans. This is evidence for saved source producers; it does not establish unsaved GUI publication, hover, rendering or model-state behavior.

native-preparation/ preserves the actual helpers and both preparation reviews without rewriting their earlier unexecuted status. The older historical-cli-fixture-preflight records two startup exits 3221225781 and empty output; its second attempt gives exits 3/0 on an older CLI, without current source provenance. Keep both as historical preparation, not current acceptance. The corrected launch preparation, original pre-binding version, launch manifest, recorder and trial plan are also retained. The launch manifest admits a development trial only. Its reviewed launcher uses a fresh hard link to the separately preserved GUI artifact, with no silent copy fallback; this is static helper evidence, not proof of a closed native run.

These helpers retain absolute historical paths and are not directly runnable after relocation. Reproducing an oracle requires a separately prepared same-source Windows CLI, reviewed runtime dependency and new scratch fixture/output paths. Do not execute the archived launch/build/oracle helpers blindly. The initial trial is now closed and archived below; executable/DLL bytes and profile data remain excluded.

Closed initial native trial: blocking tooltip defect

Trial-diagnostic-1, PID 3708, ran from 07:32:44.503787 to 07:38:12.417080 UTC on 2026-09-13. The retained-child closure receipt records exit 0, empty stdout/stderr, unchanged GUI and DLL, unchanged preserved binary, matching hard-link identity and no launch-receipt error. These are original launcher readbacks, not new binary checks by this archive. The parent used Discard to close; an immediate list_windows still showed the closing window, and the later child receipt establishes exit. There is no final closed-window screenshot.

All 19 raw JPEGs and 15 metadata records from labels 001–015 are preserved under native-trials/trial-diagnostic-1/screenshots. Metadata references cover every image, including the extra picker surfaces. The independent review viewed original captures 008, 009 and 013: a red include underline and blank tooltip persisted in a settled capture, and orange broad declaration underlines also produced a blank details box. Missing-include UI showed one error, whereas the saved CLI report has two diagnostics on the same include range; exact UI/CLI count parity is not claimed. The included-file state showed five warnings and broad raw declaration markers, consistent with the saved oracle, without establishing complete geometry acceptance.

The exact two-file work fixture matches the current oracle's complete fixture. Parent reports no editor edits, Save or Apply: the only fixture change was copying the included file before Load includes. Disk equality verifies saved bytes, not absence of transient edits or transient model equality. Private profile data adds no necessary evidence for these bounded claims and is excluded.

Recorder execution has an explicit limit. The first Node attempt used eval(readFile(native-recorder.js)) and failed with “Code generation from strings disallowed” after obtaining state; no input occurred. Parent then defined equivalent recorder functions inline in Node. The prepared file is preserved as a reference; its hash is not proof that those file bytes were loaded or executed. Captures begin at 001. Metadata timestamps describe archival time rather than independently timed pixel acquisition.

The pointer-position experiment used zero-delta sky.scroll. A hover box was observed, but this does not prove that no WheelScrolled event was delivered or that the raw interaction clock remained unchanged. The trial does not validate passive hover authority, navigation-ticket preservation, later unsaved syntax scenarios or a corrected tooltip. The blank body/footer is a blocking defect; the separate widget fix and correction gates below are not folded into this historical capture. No corrected native rerun is included.

Tooltip lifetime correction and disk-full evidence

The independent lifetime review traces the blank text to deferred WGPU preparation holding a weak paragraph reference after the old draw-local owner could drop. The correction retains body/footer paragraph owners in widget Tree state. Its tests exercise real weak-reference lifetime after draw, replacement and retirement; they do not establish corrected GPU raster output. The review's then-pending compilation language remains unchanged; these subsequently closed gates add their actual results.

All five runs below bind one new 604-input capture: manifest SHA-256 49e02d011fd23d4ad9cde2848f8cae0cd9b98ea0ebc524177728cabfc76028ea, ZIP e3bf575df0961db3cd0bdea56122534ff888d7e6165c14b4cdfb8383ad31fbaa. They recorded unchanged source inputs.

Gate Actual result
tooltip-lifetime-focused-1 cargo test --locked --offline --message-format=json -p oa-desktop source_annotations: 17 passed, zero failed, three ignored
format-final-2 cargo fmt --all -- --check: exit 0
desktop-cli-final-2 cargo test --locked --offline --message-format=json -p oa-desktop -p oa-cli: 906 passed (894 desktop + 12 CLI), zero failed, six ignored
windows-build-final-2 Build exit 101: rustc-LLVM ERROR: IO failure on output stream: No space left on device
strict-clippy-4 Strict Clippy exit 101: query-cache write failed with Windows disk-full error 112

The last two rows are infrastructure failures, not successful corrected binary or strict-lint evidence. Subsequent successful canonical retries appear below; they do not erase the failures. No corrected native trial or release acceptance is claimed. The original build and native failure stay bound to their original capture.

The ZIP reclamation receipt records removal of eleven duplicate private gate ZIPs after exact comparison with the already archived copies, reclaiming 26,121,904 bytes. Literal original and retained paths are preserved. This archive remains self-contained: verification resolves retained captures and never attempts to read or recreate the missing private ZIPs. Restore a retained copy to its exact original path only if later authorized to execute a historical path-based helper; no restoration was performed here.

Parent reports that automatic review rejected the agent's proposed old-cache deletion before execution. Those agent attempts did not delete caches; the later user action is recorded separately below. The separately archived read-only cache audit is not proof of deletion. The actual compression receipt records lossless NTFS compression of 1,040 files in two older cache roots, both commands exiting 0 and all file bytes unchanged. Its before inventory has exact per-file hashes and a logical total of 1,381,604,275 bytes. Archive verification checks receipt counts, totals and containment, not current external cache bytes or physical disk allocation.

The subsequently closed second compression receipt, its plan and before inventory are also preserved. Nine operations over seven retained executables and two closed cache roots succeeded; the receipt records all 1,048 files unchanged, 2,273,210,127 logical bytes, and 809,324,544 free bytes at receipt time. The GUI hard link is counted once. These are original operation records: the verifier checks the plan hash, exact planned binary pins, inventory membership/totals and recorded outcomes, without touching the external files or treating the free-space snapshot as current. These compression operations did not delete caches or change binary contents.

The later user-removal verification records a different actor and action. The user reported executing the supplied removal commands; at 08:55:13 UTC the parent verified that exactly the two earlier desktop cache paths arcadia_studio-1w2zwfyvx4chp and arcadia_studio-00a1ywde8514v were absent, with 1,285,787,648 free bytes. The parent observed absence, not the execution of Remove-Item. This supersedes any current blanket claim that no caches were deleted; the blocked agent attempts remain distinct. The portable verifier binds these paths to the earlier two-root receipt and does not inspect their current existence.

The core compression result records four successful *.o-only NTFS compression operations on checked inactive local core cache roots. Historical session attribution remains unproved. Its unchanged-byte readback scope is all 2,086 inventoried files; the inventory contains 2,048 .o files (585,498,872 logical bytes), 24 .bin, eight .lock and six .rmeta files. The remaining files were covered by the byte-preservation check, not the object-only compression filter. The recorded free-space snapshot is 1,546,002,432 bytes at 08:58:39 UTC.

The original core compression receipt deliberately retains bytes: null: PowerShell Measure-Object did not enumerate the OrderedDictionary keys. The separate correction pins the inventory SHA-256 41f0cae50cb9fb1db7c81a0533cd0f7175f6ea4497bbd2f4dcb78180eb7f53fc and original result b231319690c3c750b42ca54d531c84d89507586b4bebc68160c0ead965820588, deriving 1,986,200,805 total logical bytes. The verifier recomputes that arithmetic and checks the four-root inventory containment and recorded outcomes; it neither rewrites the original nor rehashes external cache/binary files, repeats compression, or treats logical totals as space saved.

prepared-recovery-helpers/gate-no-incremental.py and build-and-preserve-no-incremental.py were first captured prepared, not executed. The new runner sets CARGO_INCREMENTAL=0 only in its process environment, records that flag and its own helper hash, and leaves the original helpers untouched. A closed formatting run now supplies execution evidence for the exact already archived runner bytes, as described below. Preparation alone did not establish a successful retry. These remain historical private-path tools and must not be executed blindly from the archive.

Canonical source and execution-pinned gates

format-final-3 completed cargo fmt --all -- --check, exit 0 with empty logs, unchanged 604 inputs and CARGO_INCREMENTAL=0. Its receipt pins the runner to SHA-256 3c9b21fa243c618a190c6746fcfc67442a51f84afc6c0fda6b9afed2b77abe74; the verifier resolves that pin to the identical archived prepared-recovery-helpers/gate-no-incremental.py. This specific receipt supports execution provenance for those helper bytes; it does not retroactively add helper pins to older gates.

strict-clippy-5 also completed on those exact canonical 604 inputs and runner bytes: cargo clippy --locked --offline --message-format=json --workspace --all-targets -- -D warnings, exit 0, unchanged inputs, 1,226.986 seconds from 08:13:52.198518 to 08:34:20.721664 UTC. This is successful strict Clippy evidence; it executes no tests and does not establish a corrected native build. The earlier disk-full Clippy failure remains preserved separately.

The canonical input-manifest SHA-256 is 129607a08fea6f9eeae0d40982111c7513b243f6bb311bea8fd59026ce388076; ZIP SHA-256 is 03c73f62ac5e8a276684ee4d4964f481e19fcb05c4edba9648167fdd9751da99. The prior mixed-line-ending 604-input capture remains intact and distinct. The normalization receipt records exactly three CRLF pairs changed to LF at widget lines 423–425. The verifier compares both captured manifests and file contents: every other input identity matches, and exactly those three replacements reconstruct the canonical 13,720-byte file from the original 13,723 bytes. It does not read the current worktree or infer staged status from archive bytes.

The staged integration review is preserved with its actual scope and pending canonical gate/native statements. It notes that its author also authored the tooltip lifetime correction, so that portion is not an additional independent review. It also records two upstream trailing-space exceptions in the unchanged vendored button source; a blanket staged whitespace-check pass is not claimed.

desktop-cli-final-3 subsequently completed, exit 0: 906 passed (894 desktop + 12 CLI), zero failed, six ignored. The acceptance receipt binds result SHA-256 1a0625733e00e19a9a353af4b7bdab0be5ed59d24c95596adab1b8d39defdebd. The verifier independently compares all 912 named outcome lines with the prior mixed-line-ending corrected full gate, including both new weak-paragraph tests; names and outcomes match exactly. This does not claim that the ignored tests ran in the full gate.

windows-build-final-3 also completed, exit 0, producing two non-test artifacts on the same canonical 604 input bytes. Preserved artifact receipts pin the corrected GUI at 114,221,056 bytes / SHA-256 9cff5a094e3015d95a2c5fdb8b1ceaf03aced6a09670de32a4ec5ff8dcc94900, and CLI at 20,233,728 bytes / 684988efd2faeffc3e087e941bce927f53d46ab6630c23cb82bbead46af96c7a. Build-result SHA-256 is bba89a5c91682eca8fc1b1f5046c5c3f4853b3132a0dbd662cf1ca923946487d. Receipt/helper binding confirms the executed preservation helper is the exact earlier prepared 1,814-byte file, SHA-256 45965ef15326ebc6cc08d349867f6139bdee2fef6b2e5e879caf6692fbea4198; no helper replacement or duplicate copy is necessary. Binary bytes remain external and are not rehashed by this verifier.

Current-oracle-3, receipt SHA-256 0824f5478e86e6db0464b3a47461d7677abf958cd5504eabf14c825b02f29382, ran the exact canonical CLI against fresh saved missing/complete fixtures. Its build/source receipts, runner, artifact, fixture hashes, raw reports and preservation flags are bound. It again reports two missing-include errors (exit 3) and five complete-file warnings (exit 0). The verifier checks all saved ranges and line/column coordinates. This remains saved-source evidence, not native tooltip or transient editor acceptance.

Native trial 2 is now closed and its bounded captures, parent observations and post-exit receipts are included. The closed candidate-oracle-3 and launch-manifest-final-3 preparation are also included. The independent corrected native review and parent acceptance with explicit scope limits are now included. Parent reports that the bounded cache-removal proposal was again blocked by automatic policy before agent execution despite explicit user authorization. No agent removal receipt was generated; the later user-reported removal and parent's absence check are recorded separately above. Resource recovery therefore includes ZIP deduplication, lossless compression, and the explicitly attributed user action.

Coordination clarification: remote Gitea Codex contributors run on separate computers. An earlier assumption that a remote contributor's native trial blocked this machine was incorrect; historical raw reviews are preserved without extending that assumption. Locally spawned agents share this worktree filesystem. Disk-recovery records concern this computer only.

Reproduce the standalone geometry probe

probe/ retains the exact 77 frozen inputs, including the original 70-file private iced_widget tree. In a separate scratch copy of probe/, supply a compatible Windows Rust/Cargo/LLVM-MinGW environment and all registry packages pinned by Cargo.lock, then run:

cargo run --locked --offline --manifest-path Cargo.toml

The historical command was the same command with the original absolute manifest path. run_probe.py accepts a fresh record label relative to its own probe root, but inspect its recorded environment assumptions before reuse. Do not overwrite records/attempt-1. No toolchain or dependency cache is bundled, so offline reproduction requires those external prerequisites. Probe success is CPU-only: actual editor geometry, wrap/Unicode clusters, retained widget tree and Word/Line selection/text/scroll checks; it is not a GPU/native/tooltip observation.

Two historical statements need context. The frozen probe README incorrectly says .cargo-checksum.json was retained: it is absent from both the original vendor manifest and the probe tree. The original result review observed only the shared-target executable; a 7,511,040-byte copy was preserved privately later, with recorded SHA-256 0b22491b6387a8fc8f1c50acce05df9b9f2fb7357bae44e6b222ba597af7a120. It is not required for source reproduction and is excluded here. No new binary readback is claimed.

The adopted vendor tree has 71 files. All 68 common files match the probe tree; the private tree alone contains .cargo-ok and its nested Cargo.lock, while adoption adds LICENSE, ARCADIA-PATCH.md and UPSTREAM-MANIFEST.json. The exact adopted provenance and license are inside the source captures. The upstream MIT license is also provided separately, without changing the frozen probe inputs. The project license applies to project contributions. Raw notice supplements retain their own notices and attribution.

Notices, historical helpers and cleanup

notices/synthetic-1 preserves the script regression result. notices/notices-actual-1 failed before collector invocation because the child shell could not resolve Get-FileHash; notices/notices-actual-2 used the same helper bytes under PowerShell 7 and passed: 266 packages, 485 notice inputs and 71 vendor files. The full vendor inventory and compact package summary are retained, not the complete transitive registry source inventory. No package was built by that preflight.

notices/scripts/ contains the collector, synthetic tests, manifest and supplements for reproduction after supplying a scratch checkout, the external dependency cache and LLVM runtime. The recorded invocation was Get-ArcadiaNotices with repository C:/ar-text-9e8r6t, target x86_64-pc-windows-gnullvm, manifest scripts/windows-notices/manifest.json and the recorded LLVM-MinGW root. Inspect the exact arguments in notices/notices-actual-2/run.ps1; adapt paths only in a new scratch helper. The checked vendor has its own LICENSE and ARCADIA-PATCH notice, source = null, local path provenance and no registry checksum. This evidence does not imply all cached packages will be available elsewhere.

Historical gate-helpers/, notice helpers and environment/env.ps1 are raw provenance, not portable launch scripts. Do not execute them blindly: some contain absolute private paths. The environment file was inspected and contains only relative toolchain/PATH/linker settings, no credentials. Earlier gate receipts without a helper field did not independently pin their runner's bytes; those archived runner bytes must not be presented as cryptographically proved execution inputs. The later no-incremental runner's explicit receipt pins are checked separately.

cleanup/ preserves failed/superseded candidate records and actual completion receipts. index.json retains the original restoration references and their pinned counterpart identities; it does not package the referenced release ZIPs, executables or caches. Some old paths no longer exist after documented cleanup. Verifying those older inventories requires restoration from the exact referenced counterparts. Do not amend historical receipts to hide removals, infer deletion from a candidate list, or treat this archive's successful verification as revalidation of external restoration artifacts.

The canonical candidate receipt (native-preparation/candidate-oracle-3/result.json, SHA-256 11902b3817c43e6deb252690b6fcc8fe0cf986259806e38c0f2746bba1cc1769) records two expected exit-1 saved syntax checks: token bytes [1127,1128) and EOF [1164,1164). Its prior receipt is current-oracle-3; the verifier checks the exact original-plus-suffix fixture bytes, parsed/raw reports, source and build bindings. These are saved CLI checks, not unsaved-editor or native tooltip acceptance.

native-preparation/launch-manifest-final-3.json (SHA-256 ff80f32504cb3f427520534c2d796a13fb9797d0ab611095dc4b39126b0afd7c) pins the executed prepare-launch-3.py (SHA-256 7d469a7df729be59a95ac8b99be72034fad9323443107ffc1d2ea2746e1ec650). The earlier prepare-launch.py remains preserved unchanged as the earlier preparation, with its own original manifest binding. They are different helper versions; the new helper was not substituted into historical records. The new manifest binds strict-clippy-5, format-final-3, desktop-cli-final-3, windows-build-final-3, current-oracle-3, preservation and launch helpers. Candidate-oracle-3 is a separate completed receipt, not an item in this manifest. nativeReady: true records admission to launch a development trial only. The portable verifier validates all referenced archived evidence and recorded binary identities without reading external executables or executing preparation helpers.

Closed corrected native trial 2

native-trials/trial-diagnostic-2/observations.md preserves the parent's observations and limits. reviews/native-trial-2-review.md and .json preserve the independent stored-image/receipt review; native-trials/trial-diagnostic-2/acceptance.json records the parent's accepted_with_explicit_scope_limits decision. The raw record contains 49 metadata files and 53 JPEGs, the recorded inline recorder function definitions, launch/manifest/closure, close UI observation, post-exit verification, and two work-fixture files. No application executable, DLL, profile or cache is copied. The manifest binds canonical build3 GUI 9cff5a094e3015d95a2c5fdb8b1ceaf03aced6a09670de32a4ec5ff8dcc94900 to the already verified final-3 build/gate receipts.

The immediate Discard UI observation at 09:23:48.326 UTC still lists the app window. The later launcher receipt establishes PID1164 exit0 at 09:23:49.269580 UTC, empty logs and unchanged actual/preserved GUI and DLL. The post-exit receipt (SHA-256 48dd193b1d873f64f62957e07d4f212c5049ab925d2355ba779124b6d35806bf) pins its executed native-preparation/check-trial-2-closure.py, closure, every capture and exact equality of the two disk fixtures with original inputs. The portable verifier rechecks these archived byte relationships, exact capture membership and chronology. It neither reads external binaries nor executes the historical postcheck helper. Disk equality does not establish transient model equality; no Save/Apply is a parent action-record statement.

Parent observations cover readable corrected tooltip body/footer, real overlapping warnings, wrapped and scrolled markers, token and zero-width EOF errors, edit invalidation, selection replacement/Undo, Find Escape and modal suppression. They explicitly limit the zero-delta wheel pointer experiment and window-chrome-only accessibility. The first scroll/resize attempts did not change the view; actual changes occur later. Requested triple-click did not establish line selection. Back after Problems navigation did not return to the included file. Restore first produced a capture failure before recovery. Find Close was not separately exercised. Preserve these limits when using the screenshots: archive verification and process exit alone do not establish UI acceptance, full application behavior or packaged release acceptance.

The native2 acceptance receipt pins independent review JSON 92da9da3dd9e184280b468ffecf6361f5e32244ae09f6f27b6cd2f2e328de51d, post-exit verification, canonical source inputs and GUI identity. The verifier validates those bindings and the review's exact capture/oracle references. It reports the recorded decision without reevaluating UI behavior. This bounded trial acceptance does not close peer integration, packaging, release or issue #12 by itself.