Repository navigation
Release archives are heavy: offline archive 1.46 GiB, native installers ~300 MB each #802
Copy link
Copy link
Open
Description
The v0.0.12 release is heavy. The offline archive is 1.46 GiB, and each native installer is about 300 MB. Most of the offline archive is not needed on a given host.
Measured (v0.0.12, 1de83d7)
What each path downloads:
| Path | Download |
|---|---|
| Online Core install | oac-linux-amd64 6.9 MB, then GHCR images (linux/amd64, compressed): postgres 111 MiB, core 88 MiB, web 8 MiB, ingress 5 MiB |
| Add a node | Runtime image 358 MiB, plus node artifacts: msb 48 MiB, microsandbox-provider 40 MiB, libkrunfw 21 MiB, daemon 16 MiB, sandbox-node 16 MiB |
| Self-hosted machine | One native installer: linux-amd64 326 MB, darwin-arm64 293 MB, windows-amd64 289 MB |
| Offline host | oac-<commit>-linux-amd64-offline.tar.gz: 1,565,487,059 bytes |
The offline archive holds, by size (same layout as a local 9a663ff build):
- Runtime image archive: 356 MiB.
- Native installers for all three platforms: 311 + 280 + 275 = 866 MiB, more than half of the archive. A Linux host whose self-hosted machines are all Linux still carries the macOS and Windows installers (555 MiB).
images/database.tar111 MiB,images/core.tar87 MiB, node artifacts about 141 MiB.
The linux-amd64 native installer unpacks to 862 MiB. Its largest files are:
components/codex/bin/codex: 247 MiB.components/codex/bin/codex-code-mode-host: 66 MiB.- Claude Code's
claude-agent-sdk-linux-x64/claude: 209 MiB. components/node/bin/node: 118 MiB.oac-daemon: 16 MiB.- Files that look build-only:
components/minimax/native/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c9 MiB andcomponents/node/lib/node_modules/pnpm7 MiB.
The control archives oac-<commit>-linux-amd64.tar.gz (230 MB) and -linux-arm64.tar.gz (107 MB) are also published. I found no install path that downloads them: deploy/install.sh, deploy/install.ps1 and oac install fetch only the oac binary, compose.yaml and the checksums, and pull images from GHCR. The publisher reads native-installers/catalog.json from the amd64 control archive.
Constraints
- The Harness binaries are upstream builds. AGENTS.md has each Harness run natively through its maintained upstream SDK, so we do not rebuild or strip them.
- Per AGENTS.md, a size change needs a before/after measurement against this baseline, and must account for the complexity it adds.
Candidates to evaluate
- Offline archive: carry only the Linux native installer. The macOS and Windows installers are already separate release assets that an operator can add when their offline machines need them. This saves about 555 MiB (about 38%). It changes what
install.pycopies into the installation and what the offline hosts guide says. - Native installers: leave files the Harnesses do not load at run time out of the package, such as
sqlite3.cand the bundled pnpm (about 16 MiB per platform). - Control archives: confirm whether anything still downloads them. If nothing does, stop publishing them and have the publisher read the catalog from the native catalog asset instead (337 MB per release).
- Check whether
codex-code-mode-host(66 MiB) is needed for the features we enable, or is required by the upstream package as-is.
Acceptance
- The asset sizes before and after each change are recorded against this baseline.
- The install paths that change still pass on a fresh host: online install, offline install, node enrollment and self-hosted machine installation.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
SaladDay commentedon Oct 20, 2026
Progress against the baseline above:
b50d1712build).oac-daemon,bundle.json; 8.8 MiB on linux-amd64) plusnode(58.9) and one archive per Harness (codex 121.3, claude 99.2, minimax 22.8 MiB).oac-daemon installdownloads onlynodeand the selected Harness and caches them per version under the Runtime home. On mx, ten self_hosted Sessions (five codex, five claude) downloaded 368 MiB of native archives in total, against 3.0 GiB on v0.0.12. Connect took 15 s for codex and 20–21 s for claude, against 20 s and 25 s. codex and claude_sdk passed 36/36 on hosted and self_hosted.Still open, by size:
nodeand its Harness: 5.4 GB under~/.oac/environmentsfor those ten Sessions. Fixing this means sharing installed components across Environments of one version inside the native installer.oac-<commit>-linux-amd64.tar.gz(230 MB) and-linux-arm64.tar.gz(107 MB) still have no consumer apart from the publisher's catalog read (candidate 3).codex-code-mode-host(66 MiB, candidate 4).sqlite3.cand the bundled pnpm (about 16 MiB per platform, candidate 2): deferred, small.SaladDay commentedon Oct 21, 2026
Item 1 (per-Environment installed copies) is done in #805 (90ba725): self-hosted installations of one version on a machine share one read-only copy in
<Runtime home>/components/<version>.On mx (fresh install of main + #805 + #806, 10 self_hosted Sessions, codex and claude_sdk, 36/36 with hosted):
environmentsThe last uninstall removes the version's components; downloads of other versions are removed on install.
Also merged: #806 (67ccb3d) derives node limits from the host instead of the fixed 2 at once / 8 retained; mx2 now gets 3 / 14.
Remaining, not urgent: unused control archives (337 MB), codex-code-mode-host (66 MiB), small build-only files.