Skip to content

feat(release): ship the embedded package runtime in every archive - #42

Merged
robinbraemer merged 4 commits into
mainfrom
feat/pkg-subcommand
Aug 17, 2026
Merged

feat(release): ship the embedded package runtime in every archive#42
robinbraemer merged 4 commits into
mainfrom
feat/pkg-subcommand

Conversation

@robinbraemer

Copy link
Copy Markdown
Member

Bundles the target-native Akuapkg runtime under node_modules/@akua-dev next to the akua executable in every release archive, so a clean install runs the full akua pkg flow (init → check → render → inspect) offline from one download.

  • Release packaging (scripts/runtime/release-*) stages the per-target runtime and verifies it in the archive manifest and smoke.
  • Install docs (README, architecture) describe the new archive layout (libexec-style install with a symlinked executable).
  • CI/release workflows install with --os='*' --cpu='*' so cross-target runtimes are available for packaging.
  • Fixes the stale usage-error regression on main: interactive flag errors render the structured stdout usage_error contract (exit 2); main CI never ran to catch it because runner-group access for this repo is still pending.

Local verification: bun test (151 pass), bun run build (tsc + bundle), bun run generate:check, smoke akua pkg version / akua pkg --help.

Note: CI in this repo is currently blocked — jobs queue on akua-x64-ci-v2/akua-heavy-ci-v2 because the agentos-ci runner group has not been granted to this repository yet.

🤖 Generated with Claude Code

Every release archive now bundles the target-native Akuapkg runtime under
node_modules/@akua-dev next to the akua executable, so a clean install can run
the full `akua pkg` flow offline from one download. Install docs, release
smoke, and CI matrices exercise `akua pkg version` and an init → check →
render → inspect flow per target.

Also updates the stale usage-error regression: interactive flag errors render
the structured stdout usage_error contract (exit 2), not raw Effect CLI stderr
text; main CI never ran to catch it because runner-group access is pending.

Rationale: agents must get cloud commands and package tooling from one
installable artifact; a runtime resolved at first use would break offline and
pinned-version guarantees.
Rejected: publishing akuapkg separately per platform and lazy-downloading at
runtime — breaks provenance and adds a network dependency to first render.
Tested: bun install --frozen-lockfile; bun test (151 pass); bun run build
(tsc --noEmit + bundle); bun run generate:check; local smoke akua pkg
version / pkg --help.
Not-tested: release archive smoke on non-host targets (runs in release CI).
Point AGENTS.md at node_modules/effect/AGENTS.md and effect/src as the
required first read before writing Effect code, per the effect-ts setup
skill.
The merged non-TTY structured-output fix makes piped runs forward --json to
embedded pkg invocations, which is the intended agent behavior; this test
asserts the interactive arg passthrough, so it now pins stdoutIsTTY: true.

Rationale: keep the embed test about arg forwarding, not output-mode
selection.
Tested: bun test (164 pass, 0 fail).
Replaces the /tmp symlink workaround from earlier local iteration with
the published package. Pinned to ^0.9.4 — 0.9.3 shipped without
dist/execute.js (akua-dev/akuapkg#100 fixed the publish pipeline).

Rationale: akua pkg needs the real npm package to install correctly
for end users; the symlink only worked on this machine.
Tested: bun test (164 pass); bun run build; bun run generate:check;
bun -e "import('@akua-dev/sdk/execute')" resolves; akua pkg version
prints 0.9.4 end to end.
@robinbraemer
robinbraemer merged commit c873e0a into main Aug 17, 2026
7 checks passed
@robinbraemer
robinbraemer deleted the feat/pkg-subcommand branch August 17, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant