Files
ARCADIA-Studio/harness/release-authoring-prerelease-preparation-20260911.md
T

125 lines
16 KiB
Markdown

# Authoring milestone prerelease preparation — 2026-09-11
Owner: Codex-9e8r6t /root/palette_finish. The initial read-only inventory and plan are followed below by root-authorized isolated preparation and successful packaging results. A new archive now exists; clean-extraction acceptance and publication remain separate gates.
## Result and boundary
A coherent Windows milestone package can pair the immutable D4D9 desktop with the preserved EFEE server using the existing strict packaging script. Both have recorded build/validation evidence. Independent byte comparisons establish the shared source relationship; executable dates and the common `0.2.0` version are not used as evidence of equivalence.
The package must be generated from an isolated committed snapshot corresponding to those binaries. Running the script against the evolving working tree would describe different local source. No checkout, Cargo metadata, package invocation, application launch, or native input was performed for this inventory. The separately authorized oracle compiler slot and its results are recorded in `release-staged-source-authoring-oracle-20260911.md`.
The current script cannot package `arcadia.exe` as a CLI root. It accepts desktop/server roots only. Adding the CLI to an older package without a corresponding notice/source inventory is not proposed.
## Exact frozen inputs
Paths below are relative to the repository root. SHA256 values were reread from the actual files.
| Artifact | Bytes | SHA256 |
| --- | ---: | --- |
| `.local/behavior-creation-20260911/gui-verified/arcadia-studio.exe` | 111163904 | `d4d9c2bd937e301ff1009d7cb93a34ee5aa6dfc837ff7e87d468c85371b20c31` |
| `.local/native-qa/bin-source7-post-routing/arcadia-server.exe` | 39743488 | `efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665` |
| `.local/behavior-creation-20260911/gui-verified/libunwind.dll` | 190976 | `f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4` |
| `.local/source-cli-20260911/verified/arcadia.exe` — separate candidate | 20312064 | `bad169f8be78dcfa74b32714569c886dd2132727080684fc2ba618d5822e3559` |
The preserved server and mutable `.local/target-gnullvm/debug/arcadia-server.exe` currently have identical hashes. The preserved path is the proposed package input. The GUI's sibling `manifest.json` records its successful build from 08:49:00.3082487Z to 08:49:20.3746807Z on September 11, and 253 input hashes. It explains the behavior-equivalent history-fields let-chain correction after the full 653-test snapshot, followed by strict Clippy, formatting and the focused 63 history tests. The later contextual-source implementation is absent from this frozen GUI.
The server's hash is recorded in `.local/native-qa/source7-post-routing-binary-hashes.json` and the September 7 native acceptance report. `.local/source7-post-routing-gates-status.json` records the focused server gates, full server gate, formatting, workspace strict Clippy and successful workspace binary build (08:27:18.0824157Z start; 102.218 seconds). The contemporaneous report records server 56/56 and desktop 564/564. These historical gates are attributed to their original run, not rerun by this inventory.
## Source relationship, including exact line endings
Git commit `2ec72d4241fa8971fa6fe9f626937de9dfd7c7eb` and earlier `4bb4aaf` each match 246 of the GUI manifest's 253 raw input hashes. The seven differences are exactly LF versus CRLF. Converting each committed LF file to CRLF reproduces the expected GUI hash; current working bytes also match that expected hash:
```text
crates/oa-desktop/src/semantic_review/artifacts_view.rs
crates/oa-desktop/src/semantic_review/attachments_view.rs
crates/oa-desktop/src/semantic_review/keyed_rows.rs
crates/oa-desktop/src/semantic_review/keyed_tests.rs
crates/oa-desktop/src/semantic_review/keyed.rs
crates/oa-desktop/src/semantic_review/ordered.rs
docs/openapi.json
```
This is not a claim that all 253 Git blobs already match. An isolated exact-byte snapshot needs these seven byte restorations and scoped `-text` attributes so a subsequent Git checkout preserves them. The GUI manifest's original head `d114a271c5ecffcd7960fb8aa44d45989c10dc33` is historical context; its input manifest is the more precise comparison boundary. No live-tree line endings were changed.
The preserved server source snapshot is `.local/linux-qa/runtime/source7-20260907T082753190288Z.tar.gz`, SHA256 `cbb371a93a562e1e641d7629fe351e016d63e66fc9112499b3fed6d5cd171f78`. All 120 recorded core/server files were reread from that tar and match their recorded hashes and commit `2ec72d4` exactly. Its root Cargo manifest, lock, three shared build files and raw OpenAPI file match the GUI manifest as well. In particular:
| Shared input | SHA256 |
| --- | --- |
| `Cargo.toml` | `9bd014df6e8124c769d551a660f7a511341ff196f80c70008dbb9250efd22081` |
| `Cargo.lock` | `a6e070ed59b0ba19f18d60e8104494b777b470bd0268ae348cbe2b229790449f` |
| `docs/openapi.json` raw CRLF bytes | `c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967` |
The snapshot was also used for a Linux gate; that fact alone does not attest the Windows executable. The conclusion uses the preserved Windows hash/build records, explicit source comparison, shared dependency inputs and compiler evidence together. It is not a reproducible-build claim.
## Compiler, runtime and notice evidence
Direct `rustc -vV` from the configured toolchain reports Rust 1.98.1, commit `48a229ceaefd4985c50990b14116b6d856af0985`, host `x86_64-pc-windows-gnullvm`, LLVM 22.1.8. All three executables contain this exact `/rustc/<commit>/` path. All 58 current target-library hashes match the prior strict Windows notice inventory. Embedded compiler paths corroborate provenance; they do not establish every linker input.
The packager's required runtime is `.local/toolchain/llvm-mingw-20260826-ucrt-x86_64/x86_64-w64-mingw32/bin/libunwind.dll`, which matches the frozen sibling DLL above. The LLVM-MinGW root `LICENSE.TXT` is 15141 bytes, SHA256 `8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee`.
The existing notice-complete packaging verification archive is `.local/packaging-20260910/windows-b/ArcadiaStudio-packaging-check-20260910-b-x86_64-pc-windows-gnullvm.zip`, 32309306 bytes, 557 files, SHA256 `bc27e398d7268a4ee6e6c52ccc89f32bb0a4a970020ca198963501c49146e8c8`. It validates the packaging mechanism and its earlier inputs. It does not contain the proposed D4D9 combination and cannot be relabeled as that milestone. Prior Linux notice inventories and the inert ELF packaging fixture likewise do not establish a runnable Linux prerelease.
## Concrete preparation and packaging plan
Root selects the final version and coordinates checkout creation and the metadata lease. An illustrative version is `0.2.0-authoring.20260911.1`; it is not reserved by this report.
1. Create an isolated checkout under `.local/authoring-prerelease-20260911/source` from `2ec72d4`. Restore only the seven identified CRLF inputs, add exact-path `-text` attributes there, and commit the isolated byte-preserving snapshot. Recheck all 253 GUI inputs, all 120 server files, shared manifests/build inputs and a Git checkout round trip before packaging. Record the resulting commit, original base and seven restorations honestly. Do not describe the derived snapshot as the historical build commit.
2. Copy the frozen desktop and preserved server into a fresh private `bin` directory; reread both exact hashes. Keep the original GUI build manifest, server hash/gate records and source comparison inventory as provenance attachments. Do not use mutable target output as the source of the copy.
3. Prepare the packager's build-evidence JSON with `source_identity`, `profile`, `compiler`, `target` and `binary_sha256` entries for both executables. These strings must distinguish the reconstructed exact input snapshot from original build records. `Read-PackageBuildEvidence` checks target and binary hashes; descriptive source/compiler/profile fields remain caller assertions, so this report's underlying evidence remains necessary.
4. After release of the writer lease, invoke the script from the isolated checkout with the configured toolchain environment and absolute paths. This performs locked offline Cargo metadata, not compilation. Keep the strict font/supplement and license checks intact. It must produce a fresh notice inventory from that snapshot, not reuse a prior inventory against different local files.
5. Record the final ZIP checksum, exact file inventory and script logs. The script verifies archive membership and hashes, uses deterministic archive timestamps, checks ordinary PE imports and runtime closure, and refuses existing output/claim paths. Its successful result is still `NativeAcceptancePending`.
6. Root performs clean extraction with a clean runtime PATH, desktop/server launch and the chosen bounded example/first-run checks, then publishes the versioned runnable artifact with truthful milestone limitations. Dynamically loaded and delayed imports remain runtime checks. The prior native authoring report does not replace clean-package launch acceptance.
Illustrative invocation after those prerequisites, with variables deliberately supplied by the coordinating executor:
```powershell
& (Join-Path $milestoneSource 'scripts/package-windows.ps1') `
-Target x86_64-pc-windows-gnullvm `
-Version $milestoneVersion `
-BinaryDirectory $milestoneBin `
-LlvmMinGWRoot $verifiedLlvmMinGWRoot `
-BuildEvidence $milestoneBuildEvidence `
-Python 'C:\Users\User\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' `
-OutputRoot $milestoneOutputRoot
```
With the illustrative version and private output root, the expected new artifact path is `.local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-authoring.20260911.1-x86_64-pc-windows-gnullvm.zip`. This path is a plan, not an existing notice-complete deliverable.
The current `Get-ArcadiaNotices` root allowlist accepts `oa-desktop` and/or `oa-server`, and `package-windows.ps1` requires both named executables. A separate CLI package needs explicitly coordinated support for its root, exact CLI source/workspace snapshot, documentation and runtime/notice closure. Its new local workspace/lock entry is absent from the older GUI snapshot. CLI author tests and independent 183-assertion review establish its scoped functionality, not an archive's redistribution completeness.
## Coordination and durable evidence
Gitea issue 1 comment 172 coordinates publication ownership. Later user comment 178 explicitly authorizes programmatic reuse of existing MCP credentials for authenticated Git and direct Gitea REST asset upload, without printing or committing secrets. Thus the previously reported missing MCP upload method is not itself a publication blocker. Publication remains with root/the coordinated host; this worker neither read credentials nor attempted publication.
Private reproducible inventory: `.local/authoring-prerelease-20260911/inventory.py`, `inventory-output.log` and `inventory.json`. The JSON SHA256 is `3c78dea4e93dae186fd24ab826c6680178a2c7849c270a22deae2ff732f1857b`; it retains individual comparisons and all measured artifact hashes. An initial inventory script key typo (`target_libraries` instead of the existing `target_libraries_sha256`) was corrected before the successful inventory. It was not an application, compiler or packaging failure.
Next action belongs to root: choose this frozen milestone or wait for the newer contextual-source GUI, authorize the corresponding isolated source preparation and metadata window, and reserve the version. A newer GUI requires its own exact source/build comparison and native acceptance; none of this report silently transfers D4D9's evidence to it.
## Authorized preparation follow-up
Root selected `0.2.0-preview.authoring.20260911`, the frozen GUI/server milestone based on `2ec72d4`, and authorized private source/binary/evidence preparation and the unchanged package invocation. CLI source was separately committed and published at `01b76a1e89e93b7992f39e63560aa8b2ca2f69e0`. The newer AGENTS milestone-publication instruction exists on that current branch. Its changed Cargo workspace and lock are intentionally absent from the exact older GUI/server input snapshot.
The initially authorized checkout at `01b76a1` was cleanly retargeted to detached `2ec72d4` after root confirmed this source boundary. Private auxiliary commit `234e01e27d6935d213097b345d91d369f808af82` preserves the seven exact CRLF restorations and their scoped `-text` attributes. Ignoring end-of-line differences, its only diff is nine `.gitattributes` lines. It is a derived input-preservation commit, not the original GUI/server build commit or the chosen public base tag. The main working tree and shared packaging scripts were not changed.
`.local/authoring-prerelease-20260911/prepare.py` verified all 253 GUI inputs, all 120 server files and the three copied executable/runtime hashes. `preparation.json` records the comparisons. `verify-committed.py` additionally reads the Git blobs and a fresh `git checkout-index` output. `package.ps1` supplies exact frozen binary hashes and the explicit provenance assertion in `build-evidence.json`, invoking the isolated unchanged script with the selected version. The metadata slot was explicitly granted by release_audit and returned after the single Cargo metadata call; remaining notice scanning and archive work are read-only with respect to Cargo. Terminal packaging and round-trip results follow below when measured.
## Bounded separate CLI packaging design proposal
This proposal changes no scripts. Extend the notice collector's root allowlist to include `oa-cli`, keeping its existing exact local-source, lock, normal/build graph, Rust/runtime and supplement checks unchanged. Add a CLI-specific prebuilt entry point requiring exactly `arcadia.exe` and its checked runtime closure, invoking the collector with only `oa-cli` as its declared root. Share the existing ordinary PE import inspection rather than copying a divergent checker, and retain the common build-evidence, reserved-output, checksum and archive-readback helpers.
Its documentation closure should start with a CLI-specific package README and `docs/source-cli.md`, with examples linked by those documents. It should not promise a desktop executable. Use the exact `01b76a1` CLI workspace/lock/source inputs and preserved BAD169F8 build evidence, independently verify their hashes, and version it distinctly (for example an `ArcadiaCLI-…` archive). CLI native smoke is `--version`, `--help`, valid explicit-root check, preview byte equality and explicit write in a disposable example. Reject missing runtime, wrong binary hash, missing notice, unknown root, existing output and changed-source evidence just as the existing workflow does. Tests must also confirm that adding the allowlisted CLI root does not change the desktop/server default roots. This is a small packaging extension, not a saved-plan CLI feature or a waiver of distribution notices.
## Terminal package result and frozen handoff
The first package invocation passed, starting `2026-09-11T12:17:30.7730570Z`, finishing `12:21:23.0302800Z`, duration **232.2812442 seconds**. No packaging failure or retry occurred. The checked-in packaging scripts were used without modification. The separate committed-blob/fresh-checkout test passed all 253 input comparisons and confirmed the isolated source worktree remained clean.
Frozen ZIP: `.local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.authoring.20260911-x86_64-pc-windows-gnullvm.zip`.
- Bytes: **32618262**; package files: **559**.
- SHA256: **`664f30b6217689aca1492eb263b3d15777067d732fa890eeb028f435209dadfa`**.
- Notice inventory: **266 packages**, declared roots `oa-desktop` and `oa-server`; original lock hash `a6e070ed59b0ba19f18d60e8104494b777b470bd0268ae348cbe2b229790449f` retained.
- Executables/runtime: exact D4D9 desktop, EFEE server and F456 libunwind identities from the table above.
- Package script full archive membership/hash readback: **PASS**. Returned native status: **Pending**.
Private logs are `package-initial.log` and `package-initial-result.json`; `committed-roundtrip.json` retains the 253 committed and rechecked input hashes. The sibling package directory, ZIP and checksum are frozen. Root and the independent reviewer received the exact path, size and hash. The reviewer owns clean extraction and private packaged-server checks; root owns clean-package GUI acceptance and publication. This result does not claim those checks, a runnable Linux artifact, release-profile optimization, or native acceptance of the newer contextual-source GUI.