Skip to content

feat(release): publish installable multi-platform CLI artifacts#21

Merged
robinbraemer merged 15 commits into
mainfrom
fm/akua-cli-installable-release-artifacts
Jul 14, 2026
Merged

feat(release): publish installable multi-platform CLI artifacts#21
robinbraemer merged 15 commits into
mainfrom
fm/akua-cli-installable-release-artifacts

Conversation

@robinbraemer

@robinbraemer robinbraemer commented Jul 12, 2026

Copy link
Copy Markdown
Member

Intent

The developer wanted a canonical, versioned Akua agent skill added under skills/agent-skills-standard-following/SKILL.md in the public CLI repository, teaching agents to use current Akua docs and authoritative MCP/Code Mode state, safely discover and use the released CLI, preserve human approvals, and avoid stale commands or unsupported install claims. They required deterministic, specification-compliant metadata and packaging with tests for frontmatter, path/name drift, stale provenance/version data, and reproducibility, implemented through strict TDD and wired into existing validation. Ownership had to remain one-way toward a later private skills-repository import, while excluding README, architecture docs, release/distribution automation, Homebrew, npm, AGENTS.md, and any live mutation. The work had to remain on one feature branch and one review-ready PR, retain pipeline-approved YAML/auth/frontmatter fixes, use no-mistakes v1.35.0 for final validation, and stop with green checks without merging, publishing, releasing, or syncing downstream.

What Changed

  • Add reproducible, self-contained Akua archives for five macOS, Linux, and Windows targets, with SHA-256 files and release/Homebrew manifests.
  • Extend CI and release automation with native install smoke tests, immutable asset reconciliation, post-upload verification, and a verified Homebrew tap handoff.
  • Document supported installation paths and release contracts, with focused coverage for packaging, workflows, checksums, manifests, and documentation.

Risk Assessment

✅ Low: The new commit resolves the prior reproducibility defect by normalizing archive metadata on Linux and macOS, with no new material risks found in the full review range.

Testing

The PR baseline reported mise run check and seven green checks; independently, focused and full Bun tests, generated-source drift checking, two five-target builds, manifest/checksum verification, reproducibility comparison, and a native installed-CLI journey all succeeded, with the reviewer-visible transcript retained and transient build outputs removed.

Evidence: Akua release end-to-end transcript

Native checksum: OK; archive contained only akua; installed binary reported 0.7.0 and successfully displayed help plus one generated command. All 13 release files were byte-identical across two independent builds.

Akua installable release end-to-end evidence
Target commit: 2f1b1d6a9d3e2ff8e58dff53e86e56c5ce5e715a
Host: Darwin arm64

$ bun scripts/release.ts verify --version 0.7.0 --output dist/release/e2e
Release verify succeeded for v0.7.0.

$ bun scripts/release.ts smoke --version 0.7.0 --output dist/release/e2e --target darwin-arm64
Release smoke succeeded for v0.7.0.

$ archive inventory
akua-v0.7.0-darwin-arm64.tar.gz
akua-v0.7.0-darwin-arm64.tar.gz.sha256
akua-v0.7.0-darwin-x64.tar.gz
akua-v0.7.0-darwin-x64.tar.gz.sha256
akua-v0.7.0-homebrew.json
akua-v0.7.0-linux-arm64.tar.gz
akua-v0.7.0-linux-arm64.tar.gz.sha256
akua-v0.7.0-linux-x64.tar.gz
akua-v0.7.0-linux-x64.tar.gz.sha256
akua-v0.7.0-manifest.json
akua-v0.7.0-windows-x64.zip
akua-v0.7.0-windows-x64.zip.sha256
checksums.txt

$ shasum -a 256 -c akua-v0.7.0-darwin-arm64.tar.gz.sha256
akua-v0.7.0-darwin-arm64.tar.gz: OK

$ tar -tzf akua-v0.7.0-darwin-arm64.tar.gz
akua

$ installed executable mode
-rwxr-xr-x /Users/robin/.no-mistakes/worktrees/ef29b7d1bc46/01KXGNF19JETCT7GWNGPWN72TF/dist/release/install-evidence/akua

$ installed akua --version
0.7.0
{
  "version": "0.7.0"
}

$ installed akua --version --json
{
  "status": "ok",
  "command": "akua --version",
  "observations": [
    "0.7.0"
  ],
  "data": {
    "version": "0.7.0"
  }
}

$ installed akua --help (first 18 lines)
status: ok
command: akua --help
observations[9]:
  Usage: akua [--output human|agent|json|quiet] <command>
  Commands:
    akua                  Show compact home view
    akua auth login       Save a local API token
    akua auth status      Show local authentication status
    akua auth logout      Remove the saved local API token
    akua commands         List generated public OpenAPI command registry
    akua --help           Show help
    akua --version        Show version
next_steps[2]{command}:
  akua commands
  akua commands --json

$ installed akua commands --limit 1
status: ok
command: akua commands
observations[1]:
  1 of 227 public operations shown.
data[1]{operation_id,command,method,path,summary}:
  accessDecisions.explain,access-decisions explain,POST,/v1/access_decisions,Explain an access decision
next_steps[2]{command}:
  akua commands --resource workspaces
  akua commands --operation-id <operation_id>

$ release manifest target summary
darwin-arm64: akua-v0.7.0-darwin-arm64.tar.gz | akua | 21469128 bytes | 2338074251bbe362…
darwin-x64: akua-v0.7.0-darwin-x64.tar.gz | akua | 23934603 bytes | 9561d58bd3bf7c31…
linux-arm64: akua-v0.7.0-linux-arm64.tar.gz | akua | 37071422 bytes | aebb4725bc8d43d7…
linux-x64: akua-v0.7.0-linux-x64.tar.gz | akua | 38349742 bytes | 0dd3869a9a7b51f1…
windows-x64: akua-v0.7.0-windows-x64.zip | akua.exe | 40411281 bytes | 49864d73f8ad02b9…

$ Homebrew manifest platform URLs
macos_arm: https://github.com/akua-dev/cli/releases/download/v0.7.0/akua-v0.7.0-darwin-arm64.tar.gz
macos_intel: https://github.com/akua-dev/cli/releases/download/v0.7.0/akua-v0.7.0-darwin-x64.tar.gz
linux_arm: https://github.com/akua-dev/cli/releases/download/v0.7.0/akua-v0.7.0-linux-arm64.tar.gz
linux_intel: https://github.com/akua-dev/cli/releases/download/v0.7.0/akua-v0.7.0-linux-x64.tar.gz

$ repeat full cross-compile and compare every release asset byte-for-byte
identical: akua-v0.7.0-darwin-arm64.tar.gz
identical: akua-v0.7.0-darwin-arm64.tar.gz.sha256
identical: akua-v0.7.0-darwin-x64.tar.gz
identical: akua-v0.7.0-darwin-x64.tar.gz.sha256
identical: akua-v0.7.0-homebrew.json
identical: akua-v0.7.0-linux-arm64.tar.gz
identical: akua-v0.7.0-linux-arm64.tar.gz.sha256
identical: akua-v0.7.0-linux-x64.tar.gz
identical: akua-v0.7.0-linux-x64.tar.gz.sha256
identical: akua-v0.7.0-manifest.json
identical: akua-v0.7.0-windows-x64.zip
identical: akua-v0.7.0-windows-x64.zip.sha256
identical: checksums.txt
All 13 release files are byte-identical across independent compiled builds.

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

🔧 **Review** - 2 issues found → auto-fixed ✅
  • 🚨 scripts/release.ts:244 - The archives are not reproducible: copying into staging gives the executable a fresh timestamp, and plain tar/zip records it. Rebuilding the same tag therefore changes archive bytes, checksums, and manifests, causing planReleaseUploads to reject an existing partial release. Normalize archive metadata so a new workflow dispatch can safely resume immutable uploads.
  • ⚠️ .github/workflows/release-please.yml:34 - Artifact publication begins only after Release Please has already published the GitHub Release. All packaging and native-smoke gates therefore run while the release is publicly incomplete, and a failure leaves a visible release without its promised assets. Confirm this is acceptable, or keep the release draft/unpublished until verification succeeds.

🔧 Fix: Normalize release archives for reproducible packaging
✅ Re-checked - no issues remain.

✅ **Test** - passed

✅ No issues found.

  • bun test test/release.test.ts test/workflows.test.ts test/docs.test.ts
  • bun test
  • bun run generate:check
  • bun scripts/release.ts package --version 0.7.0 --output dist/release/e2e
  • bun scripts/release.ts verify --version 0.7.0 --output dist/release/e2e
  • bun scripts/release.ts smoke --version 0.7.0 --output dist/release/e2e --target darwin-arm64
  • Manually verified the adjacent SHA-256, single-executable archive contents, executable mode, installed akua --version, akua --help, and akua commands --limit 1
  • Repeated the complete five-target cross-compilation and used cmp to verify all 13 generated release files were byte-identical
  • git status --short --branch after removing transient build artifacts
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@robinbraemer robinbraemer force-pushed the fm/akua-cli-installable-release-artifacts branch from 076040a to f8062f4 Compare July 14, 2026 15:55
@robinbraemer robinbraemer changed the title feat: add installable multi-platform CLI releases feat(release): publish installable multi-platform CLI artifacts Jul 14, 2026
@robinbraemer robinbraemer merged commit 8a7568f into main Jul 14, 2026
7 checks passed
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