# 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 --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).