Files
ARCADIA-Studio/harness/release-linux-cli-packaging-ytr83r-20260911.md
T

6.2 KiB

Linux portable CLI inclusion — 2026-09-11

Owner: Codex-ytr83r /root/linux_build_plan. Root assigned full Linux portable package inclusion of the existing source authoring CLI; Gitea ownership304 and scoped shared-helper authorization306. Rust/Cargo source freeze remains cb611a71df53704abc5ebe4290b916e17ee96bf1; no Rust, Cargo, WSL, server, GUI, native package execution or Git mutation by this worker. Root owns compiler/setup/native acceptance. This supersedes the earlier Linux build-plan finding that CLI inclusion was undecided.

Final change

scripts/package-linux.ps1 now requires all three prebuilt native ELF files: arcadia-studio, arcadia-server, arcadia. Each uses the same strict ELF inspection, captured hash, build-evidence validation, copy-time unchanged-input verification, package metadata and checksum inventory. Full-package notice roots are explicitly desktop/server/CLI; -ServerNoticesOnly remains server-only. START-HERE identifies ./arcadia --help and its source authoring purpose. Runtime metadata removes the obsolete portal-dialog implication, preserving Ubuntu24.04 as the historical validation baseline and requiring current native checks.

Two minimal shared changes were necessary and explicitly authorized: windows-notices.ps1 admits oa-cli as an explicit root while preserving default desktop/server selection; package-artifacts.py assigns and verifies0755 for root-level arcadia alongside the other two binaries. All other archive files remain0644; a nested examples/arcadia regression ensures a basename match cannot accidentally make documentation executable. No shared-helper refactor, notice relaxation, container graph change or optional binary omission was added.

The notice collector traverses CLI normal/build dependencies, records actual CLI workspace source hashes and workspace license, and continues enforcing locked archives, exact supplements/fonts and Rust sysroot notices/target-library hashes. Read-PackageBuildEvidence already validates every supplied binary hash key; no change needed. A two-binary evidence document now correctly fails because the CLI hash is mandatory for a full package.

docs/linux-packaging.md consistently names three binaries/modes/build-evidence hashes and all three notice roots. Its new CLI paragraph gives explicit-entry check/lint/stabilize/rename-alias guidance, preview/default and --write/--json behavior, and separate-project-copy acceptance. Shared portable README was left unchanged: it links the platform guide and contains no claim excluding the CLI. The full bundle's START-HERE plus Linux guide make launch/discovery concrete.

Validation

  • Existing scripts/test-package-artifacts.py:11 passed in2.965seconds, exit0, using bundled Python. Extended archive test verifies deterministic bytes, all three executable modes, exact CLI payload readback and nested same-name data0644. Existing ELF loader/dependency/RPATH, archive integrity/refusal, document closure and synthetic container invariants remain passing. No executable fixture is launched.
  • Existing scripts/test-windows-notices.ps1: passed with its explicitly mocked Cargo/rustc functions; no real toolchain calls. Added synthetic CLI plus a CLI-only transitive dependency and verified exact full-root identity, source/license inventory, dev/unreachable exclusion. Original default Windows and server-only Linux selection plus strict stale-archive/font/supplement/runtime refusals remain passing. Fixture retained at C:/Temp/arcadia-notices-c07d38edff1f4a38999d2648ef1012cb.
  • Direct synthetic Read-PackageBuildEvidence checks: three correct hashes accepted; absent and mismatching CLI hashes rejected. Retained corrected fixture at C:/Temp/arcadia-cli-evidence-bc74b663b4ef4e79b039cb02715289fe. First ad-hoc fixture failed before meaningful validation because PowerShell OrderedDictionary has no Clone method; changed only the ephemeral fixture to a Hashtable and reran with terminating errors. No production defect or pass was inferred from that failed attempt.
  • PowerShell7.6.5 parser: zero errors for package-linux.ps1, windows-notices.ps1 and test-windows-notices.ps1. git diff --check passed on all six modified files. Source review confirms unchanged server-notices-only path and strict generic copy/build-evidence logic.

No new duplicate test file was needed; the established artifact/notice suites cover the actual serialization and dependency-graph boundaries. These checks establish packaging logic on synthetic inputs, not an actual Linux distributable or Ubuntu compatibility.

Root-owned next action

After serialized native builds and acceptance, supply the same-source Linux directory with all three binaries, matching Linux Cargo archive cache, Rust compiler/sysroot reports and target libraries, Python3.11+, Git and PowerShell7. Run the existing package command with fresh version/output names and build evidence including all three lowercase SHA256 hashes. Missing/unreviewed CLI ELF, missing CLI evidence or notice inputs must stop packaging; do not fall back to a two-binary bundle.

Extract into a new Linux directory, verify checksums and0755 modes, then actually run Studio, server and CLI from an unrelated working directory. CLI acceptance should reuse the existing source fixture contracts for check, preview, exact write and unchanged repeat on a copy. Native GUI/path-entry/Undo/Redo and actual server process-restart/ETag gates remain separate. Ubuntu26.04 success does not prove the documented Ubuntu24.04 baseline. This worker produced no archive/release and updated no common Wiki or acceptance ledger.

Frozen SHA256

File SHA256
scripts/package-linux.ps1 1715EC6ACED5C642D4F8D8023B221F4D934B4305A51BF07F2090CC509135ED53
scripts/windows-notices.ps1 AC70B61937076416C50B104FD9F7E127880748764FA59C21105312CB291369ED
scripts/package-artifacts.py 655711B051A3CD2D478D9B15BA27BE9B63C5B056BE80ADE8DA4DABC6BB46A91C
scripts/test-package-artifacts.py 4E984EC557F5B48B7E27A399F6D7C6E4239352DC24C1CA212088C7BAC58802A4
scripts/test-windows-notices.ps1 1D5B1FE5461D25D72D217CDF3658B9AAA18C7AEA9919AEC28F13087489C9CE89
docs/linux-packaging.md 1E6EEEE7AC23CFCBA5803354855E5E364A101507D97C30A862ACFE0062A07A6D