Files
ARCADIA-Studio/harness/ordinary-text-integration-20260913.md
T

193 lines
12 KiB
Markdown

# Ordinary compact source and Text workspace integration
This proposal composes ordinary source-default omission with the published Text
workspace. It does not replace the release owner's branch or establish release
acceptance. [Issue 11](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/11)
owns this contribution; [issue 27](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/27)
retains release integration. Source-8 analysis composition and Linux verification
remain outside this candidate; Linux work is paused at the user's instruction.
## Source composition
Production commit `d7c065991d3f63cc41341d23a546739de8837ac3` applies the exact
14-file ordinary code/test delta from `74cc0e09119f9fa9e1287988bdd98c4cbf9db79e`
to `3d067041d1c8b62bc4b2bd1e2ae81eb2713bf4e2` onto published Text/root
`136ed6e5868200165fbb1c2ae8a7230067bf9c1e`. Thirteen preimages match, including
seven paths absent on both bases. The only other preimage difference is
`lib.rs`'s independent `pub mod analysis_numeric;`, retained with the new private
`mod source_defaults;`. Thirteen resulting files match the ordinary head exactly;
the combined `lib.rs` additionally retains the numeric module. The original
145,928-byte patch has SHA-256
`e319a5151b7e6713880eaaab632f3f1c01aee6df3cd534d85a1c099fb501dcb7`.
Follow-up `e624d5b9c4f848eff3fba2ed83f9decf959e14d8` brings over the ordinary
normative language-contract delta and regenerates the current teaching example.
The full core run identified the latter dependency: its exact generated-source
assertion still expected verbose defaults. The documented generator produced
30 source files and four JSON files. Twenty-nine source files changed, removing
514 default-field lines; the root entry, all four JSON files, and all 68 historical
trace baseline blocks remained byte-identical. Generation asserts complete
decoded Project equality. The test assertion was preserved.
Strict Docutils 0.23 rendering exposed an existing one-character-short underline
on the focused diagram removal heading. Repairing it allowed warning-free HTML
generation. Regeneration also restores the root's existing allocation/removal
sections that were missing from its previous HTML. No semantic prose from those
sections changed.
## Verification to date
Windows toolchain: Rust/Cargo 1.98.1, `stable-x86_64-pc-windows-gnullvm`, LLVM-MinGW
20260826 UCRT, one build job, `CARGO_INCREMENTAL=0`. Each Cargo run captures its
707 source inputs before and after, including all 71 vendored Iced widget files,
raw logs, process identity, and executable artifact hashes. A captured HEAD with
local deltas is not represented as a clean-commit run.
- The initial combined-consumer attempt stopped before compilation because
`num-bigint` was absent from the offline cache. A locked Windows-target fetch
installed `num-bigint 0.5.1` and `num-integer 0.1.47`; sources and lock stayed
unchanged.
- Full core at clean `d7c0659`: **536 passed, one failed, one existing opt-in
scaling probe ignored**, across 46 result summaries. The sole failure was
`release1_teaching_regeneration_and_shipped_source_are_exact_with_one_intentional_warning`.
The source-transaction panic messages are deliberate interruption injections
in passing recovery tests.
- The documented teaching generator completed successfully against the same
production inputs, writing to a separate scratch folder. All 34 generated
files were compared with the repaired shipped fixture.
- `cargo test --locked --offline -p oa-core --test release1_teaching` against the
repaired fixture: **four passed**, including exact source/JSON parity and the
one intentional coverage warning. This run captured `d7c0659` plus the 29
fixture changes subsequently committed in `e624d5b`; production was unchanged.
- Strict language HTML generation: passed with an empty warning log.
- CLI/HTTP consumers: **12 CLI and 51 HTTP passed**, no failed or ignored
cases. The HTTP preservation witness exercises an actual move and server
restart with an explicitly authored empty port-anchor list. The two Windows
storage-refusal messages are expected from atomic-storage failure tests.
This run started at `d7c0659` plus the 31 fixture/documentation changes now in
`e624d5b`; all 707 captured inputs remained unchanged through execution.
Actual desktop listing admission, desktop execution, strict workspace
Clippy, matching Windows binaries, and native combined-workflow acceptance are
not established by the results above. Earlier ordinary-only native and automated
evidence remains scoped to its original published inputs.
## Independent review
Astra review checked exact Git-blob composition and the source-preserving updater,
raw diagnostic coordinates, source publication ordering, warning authority after
recovery, rename/history/save ownership, schema-7 boundary, and historical payloads.
No actionable source defect was found. Separate follow-up review confirmed all
34 regenerated files and 68 unchanged historical blocks, then checked the scoped
reST delta, preserved root sections, generated HTML, and strict-render receipts.
A source-pinned checklist identifies 150 critical desktop declarations: all 89
imported desktop additions, both later recovery-warning fixes, retained selection
and departure cases, additional recovery/Save As/rename/navigation controls, and
six explicitly ignored probes. This is expected membership only; lexical counts
are not executable admission or passing runtime results.
## Portable closed-run checkpoint
[The evidence package](experiments/ordinary-text-integration-20260913/README.md)
contains the eight closed captures described above, including failed runs, exact
input snapshots, raw generated outputs, and the source-admission checklist.
Its ZIP contains 81 members with three distinct input manifest/archive pairs:
8,584,848 bytes, SHA-256
`f220433f8f6fe99cea762aca98ee471c14411b5f6762745cf91432e6bfaca440`.
Run the package's `verify.py` with Python 3.10 or newer; it requires only the
standard library and the five adjacent package files. It verifies integrity and
receipt relationships without executing archived code or consulting this machine.
The README records provenance limitations and the absence of runtime binaries.
All 707 consumer inputs were independently compared with committed Git blobs at
`e624d5b9c4f848eff3fba2ed83f9decf959e14d8` and matched exactly.
## Subsequent combined checks and lint repair
The final fixture/documentation state completed the full core suite: **537 passed,
zero failed, one existing opt-in probe ignored**. Desktop listing and execution
have exactly the same 1,185 unique names: **1,179 passed, zero failed, six existing
opt-in probes ignored**. Independent admission checked all 144 enabled critical
checklist cases, all six expected ignored cases and their reasons, five replaced
names absent, four retained departure cases present exactly once, and all 24
checklist source-file bindings. These runs use the same 707 input bytes as the
successful consumers; full listing and execution are recorded separately.
Strict all-target Clippy then exposed two integration cleanups. The first was
two unchanged test-only helper functions appearing after a test module in
`views.rs`. The second was the unused internal `SymbolEvent::Close`: production
already emits captured `TextWorkspace(Event::HideDrawer)` instead. Commit
`f714a25bbcd435941404104ad0cbb0fea3b89149` moves the helpers before the test module,
removes the obsolete event/handler, and switches four existing test sites to the
actual UI close message without weakening their assertions. Current close tests
therefore exercise document/session/visit authority and the presentation boundary;
Query/Back/Choose continue to test source-file authority. Independent review
accepted both changes. No production sender used the removed event.
Strict `cargo clippy --locked --offline --workspace --all-targets -- -D warnings`
now passes. Its captured HEAD was `cb94136` plus those four files, with all 707
inputs unchanged; exact Git-blob comparison binds those inputs to `f714a25`.
The earlier complete suites remain scoped to the preceding input state.
Affected desktop execution on `f714a25` passed: **83 passed, zero failed, one
existing manual source-navigation performance probe ignored**, with 1,101 cases
outside the selected scope. The filters cover source-symbol tests, Text workspace
tests, surrounding view tests and the palette/drawer integration cases. The
updated close assertions and both recovery-warning regressions passed. The
matching Windows GUI, CLI and server then built successfully from `f714a25` with
the same final inputs. The native workflow is recorded separately below.
[The subsequent gate package](experiments/ordinary-text-gates-20260913/README.md)
preserves these eight closed gates, both failed lint attempts, complete listing
admission, the exact affected-test selection, and the three build artifact
receipts. Its 8,624,040-byte ZIP has SHA-256
`b0da6611dd86e83c8f779c025786e473834298f9b9990b19a76b250b61137780`.
Independent review verified all 50 stored members against raw captures, source
relationships, the safe read-only verifier, and prospective Git-clean outer bytes.
## Native Windows workflow
The combined GUI built from `f714a25` ran from 14:16:18 to 14:32:24 UTC on
2026-09-13 and closed with exit zero and empty stdout/stderr. Its 117,674,496-byte
executable had SHA-256
`f7405a95a499c31972934b8efdd8a37ee3981cefc5b2b7c82a4f16c4e5a935ed`
before and after the trial, matching the captured build receipt and final 707
inputs. The original 451-byte input remained unchanged.
Computer Use exercised creation of a new activity in Model explorer, its compact
included declaration in Text, Save As, a graphical move, model Undo and Redo,
a second Save As, New, and reopening that saved model from Home. The move changed
the source x coordinate from 120.0 to 190.0; Undo restored 120.0 and the saved
state, and Redo restored 190.0. The authored empty `port_anchors` field, spacing,
comment and include remained intact. Reopening showed the same 190.0 source
coordinate and the new activity.
The Problems drawer navigated from a current warning to the included activity
at line 2. Inserting a temporary comment removed the old warning rows and
underlines while reporting drafts pending. Apply all restored the four warnings
with the included declaration at line 3; selecting its warning highlighted that
updated declaration. Undo model change removed the comment, restored line 2
diagnostics and returned the saved state before normal exit. These observations
establish visible invalidation and refresh; they do not simulate delivery of a
previously captured stale UI message. Automated authority regressions cover that
separate case.
An exact-byte oracle checked both saved bundles: each has precisely two source
files, the new activity identity is stable, and their only difference is the
intended x-coordinate change. Both passed `arcadia check <entry> --json` using the
matching built CLI, without writes or stderr. Each reported the expected four
modeling warnings for two unallocated activities without behavior context and
zero errors. The checks do not assert equality of the entire in-memory Project;
saved bytes, CLI validation, GUI observations and process receipts are distinct
evidence. Original screenshots retain intermediate file-dialog states. The
operator encountered an unavailable UI Automation value-setting call, reported
in the tool transcript rather than the screenshot archive; the exact intended
path was visibly verified before saving.
Independent native review inspected 25 original frames, checked all 49 capture
metadata records, and independently reconstructed the source-byte oracles and
receipt relationships. It found no functional defect or source corruption. Its
one evidence-attribution wording correction is resolved above. The review does
not certify exhaustive accessibility, Linux, source-8 composition or release
readiness. The raw trial and review are in the
[native evidence package](experiments/ordinary-text-native-20260913/README.md).