Files
ARCADIA-Studio/harness/release-contextual-source-windows-update-plan-20260911.md
T

11 KiB

Windows contextual-source update preparation — 2026-09-11

Owner: Codex-9e8r6t /root/release_audit. Read-only audit coordinated in Gitea issue 1 comment 374; root owns version selection, preparation, acceptance and publication. Linux remains user-paused. This report creates no package, compiler result or release.

Recommendation

Prepare a fresh Windows prerelease combining GUI 5657BAB5 with the preserved server EFEEB89C, using the existing scripts/package-windows.ps1. No server source or dependency change requiring a rebuild was found. Describe the server as the unchanged September 7 artifact with its original provenance, not as newly built with the GUI. Keep the separately published CLI release separate.

Suggested unreserved version: 0.2.0-preview.contextual.20260911, tag v0.2.0-preview.contextual.20260911. The currently published Studio release is v0.2.0-preview.authoring.20260911 (D4D9/EFEE, 559 files, ZIP SHA256 664f30b6217689aca1492eb263b3d15777067d732fa890eeb028f435209dadfa). It must remain unchanged. Gitea readback found that Studio prerelease and the separate CLI prerelease; no competing update publication was claimed.

Artifact and server-input evidence

Paths are relative to the repository. The existing GUI gate manifest is .local/contextual-source-layout-20260911/gui-verified/manifest.json; exact source admission is .local/contextual-source-layout-20260911/inputs4.json, also archived under harness/experiments/contextual-source-layout-postboot-20260911/ (SHA256 669724858967d83ab7da5f78bfafb6065e2bcab3bad0e68d0a74feb86c7195e7). All 238 current files matched that manifest in this audit.

Proposed immutable input Bytes SHA256
.local/contextual-source-layout-20260911/gui-verified/arcadia-studio.exe 112,239,104 5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce
.local/native-qa/bin-source7-post-routing/arcadia-server.exe 39,743,488 efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665
GUI sibling libunwind.dll 190,976 f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4

Server reuse rests on actual inputs, not matching API versions:

  • All 120 recorded core/server files in .local/authoring-prerelease-20260911/inventory.json match current bytes. The prior strict notice inventories' complete local file sets also match: 100 core files and 20 server files, with no additions or omissions. This includes both crate manifests, build scripts, all source and test files, and core examples. Every current GUI-recorded core/server input is covered.
  • The preserved source tar .local/linux-qa/runtime/source7-20260907T082753190288Z.tar.gz was freshly rehashed: 2,089,801 bytes, SHA256 cbb371a93a562e1e641d7629fe351e016d63e66fc9112499b3fed6d5cd171f78. The original inventory records all 120 files' equality with that tar and the earlier release source. The tar's name does not itself attest the Windows executable; separate Windows binary/build records supply that connection.
  • Root Cargo.toml differs only by the local crates/oa-cli workspace member. Parsed lock comparison finds 463 unchanged existing package records, no removal or changed dependency/checksum record, and one added oa-cli 0.2.0 entry with oa-core, serde, serde_json. The CLI manifest adds no feature or build-dependency request; these requests are already present in the server/core graph. Resolver, workspace dependency declarations and development profile are unchanged. Raw whole-manifest equality is explicitly not claimed.
  • Shared build/windows_manifest.rs, build/windows.manifest, build/windows.rc, LICENSE, and the embedded raw docs/openapi.json match the prior inventory. OpenAPI SHA256 remains c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967. These shared inputs are checked separately because the 238-file GUI manifest does not include every build resource.

The reference strict inventory is .local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.authoring.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json, SHA256 98fab15c1a2bb3aa727c6d52d5c69435b15efa56b6668ed717e7a04cf86f9b52. Fresh read-only hashing matched 263 registry archive checksums, all 12,361 recorded registry source-file hashes, and all 58 Rust target-library hashes, plus both preserved EFEE copies and the GUI/runtime table above. The recorded compiler is Rust 1.98.1, commit 48a229ceaefd4985c50990b14116b6d856af0985, Windows gnullvm, LLVM 22.1.8. No rustc or Cargo command was run in this audit. This desktop/server dependency graph is a conservative superset; it does not assert every inventoried package is linked into the server.

All 263 registry source file sets also match, excluding the packager's top-level target/ and .cargo-ok. The first audit enumerator mistakenly excluded any directory named target, reporting four cc-1.4.5/src/target/*.rs files absent; all four recorded hashes had already passed. Correcting that audit-only exclusion produced zero set differences. This was not a source or package defect; no production file changed.

Original server evidence remains .local/source7-post-routing-gates-status.json, .local/native-qa/source7-post-routing-binary-hashes.json, and harness/experiments/textual-authoring-20260911-local/provenance.json: September 7 workspace binary build exit 0, recorded server 56/56, formatting and strict Clippy. The previous clean-package server review exercised health, exact OpenAPI, persistence and restart. These are historical results, not reruns by this audit. Neither embedded compiler paths nor source equality proves every historical linker/environment input or a reproducible build. Reusing the exact accepted artifact requires no such new claim.

Exact source preservation before packaging

Root committed the verified checkpoint during this audit. Fresh readback of b2c3e54001fc19a05423bcd5808ceea78d13ff59 matches 227/238 Git blobs to GUI5657's raw inputs. All eleven remaining differences are newline-only: behavior/creation.rs, behavior/scenario/workspace.rs, behavior/topology/contextual.rs, guide.rs, six semantic_review files (artifacts_view.rs, attachments_view.rs, keyed_rows.rs, keyed_tests.rs, keyed.rs, ordered.rs), and docs/openapi.json. Rust paths here are under crates/oa-desktop/src/.

The initial comparison against ca53f574e57381a523e946d5277b4081cff74355 had one additional real difference: the reviewed postboot test-only overflow-fixture correction. It is now committed: behavior/source_draft.rs Git bytes match required SHA256 85d543cc288e48b4c13001e4e386b5b54d9b1e349a5ac31e4e307572f2d8fb3c and the archived raw snapshot.

Ten newline cases reproduce by LF→CRLF. behavior/creation.rs has mixed newlines: only copying its exact frozen raw bytes reproduces SHA256 0fb19be3a5688c4bd3ca3643c47a97da7e7f85add8a860cd046a0d9cb3ce9dfc; uniform conversion does not. Do not reuse the previous release's seven-file restoration list blindly.

Use that exact verified checkpoint, or recompute differences if root selects another commit. In a new isolated package source tree, preserve only the identified exact raw inputs with precise -text attributes and a recorded reconstruction commit. Validate all 238 GUI inputs, the 120-file server closure, shared build resources and subsequent Git checkout bytes. Preserve the original build manifests and explain that the reconstruction commit records matching inputs; it is not the original build commit. Main-tree newline policy need not change. Newer documentation may ship from the verified checkpoint with its own packaging inventory, without pretending it was compiled into the older server.

Smallest authorized next execution

  1. Root selects/reserves the version and source commit, then authorizes an isolated directory such as .local/contextual-prerelease-20260911/. Prepare exact source as above and copy the three immutable inputs into a fresh private binary directory. Recheck hashes before and after copying. Existing .local/authoring-prerelease-20260911/{inventory.py,prepare.py,verify-committed.py,package.ps1} provide the prior mechanism, but contain old paths, hashes, version and seven-file assumptions; they must not be rerun unchanged or overwrite old evidence.
  2. Write new build-evidence JSON with exact target and binary hashes. Explain GUI5657's current gate, unchanged EFEE's historical build, reconstructed source identity and the development profile. Read-PackageBuildEvidence checks target/binary hashes; its source/profile/compiler prose is a caller assertion, so include the actual comparisons and original records.
  3. Obtain the short metadata lease and invoke the existing isolated scripts/package-windows.ps1 with -Target x86_64-pc-windows-gnullvm, the new -Version, private -BinaryDirectory, verified LLVM-MinGW root, new -BuildEvidence, explicit bundled Python path and fresh -OutputRoot. The script performs one locked offline Cargo metadata operation, strict notices and PE/runtime checks; it does not build/download. Generate fresh notices from the new source snapshot rather than relabeling the old inventory. Keep checksum-bound fonts, ordinary-file containment, refusal to overwrite, deterministic archive/readback and package-local document closure intact. No packaging redesign is needed.
  4. Record actual archive checksum/count, logs and source/artifact provenance. The packager's success remains NativeAcceptancePending. Root verifies fresh extraction with clean PATH/profile: desktop startup/help and a bounded contextual-source action, server startup/health and exact OpenAPI plus persistence/restart using the existing accepted smoke procedure. Publish the new ZIP/checksum/validation record only after these gates, with download readback; publication belongs to root.

The currently observed scripts are pinned by SHA256: package-windows.ps1 28997ff78565619ed9c9b185f66dc922808f1f0be17f522b430c6c415448663d; package-common.ps1 d859453a8230b4f305d822c8742b371a71e35df698109a5d55c948f6dfaf0640; windows-notices.ps1 a5328c05579e1b9ca09142ee99e87c12994d12764f7c69448e392883d718ef01; supplement manifest 93d47a4d91b9a888e7baef55e827fd462fb71c5892e4b6a89787d4fb227e62c2.

Release notes can cite the actual current 679/679, zero failed/ignored, immutable test SHA256 75ab0e151d85473631d5a145527f3f6b9768a3cd61ce66a0603a574e09557017, plus focused 26/26, strict all-target desktop Clippy, fmt and matching GUI build. Full-run evidence is harness/experiments/contextual-source-layout-full-20260911/. GUI5657 recovery/Lifeline/Machine evidence is separately archived by the native owner; do not transfer GUI52-only Chain results into a GUI5657 claim. This remains a Windows development-profile prerelease, not complete OA/SA product acceptance, optimized-build acceptance, peer-feature integration or Linux acceptance.