Skip to content

fix(zeroclaw): direct binary download from pinned release to fix install timeout#2554

Merged
la14-1 merged 1 commit intomainfrom
qa/e2e-zeroclaw-fix
Mar 13, 2026
Merged

fix(zeroclaw): direct binary download from pinned release to fix install timeout#2554
la14-1 merged 1 commit intomainfrom
qa/e2e-zeroclaw-fix

Conversation

@la14-1
Copy link
Copy Markdown
Member

@la14-1 la14-1 commented Mar 13, 2026

Summary

  • ZeroClaw installs were failing on ALL clouds (digitalocean, gcp, hetzner, sprite) with zeroclaw binary not found
  • Root cause: v0.1.9a (GitHub "latest" release) ships no binary assets — the bootstrap --prefer-prebuilt path hits a 404, falls back to Rust source compilation, and exceeds the 600s install timeout
  • Fix: replace the bootstrap invocation with a direct curl download from v0.1.7-beta.30 (last release with x86_64-unknown-linux-gnu prebuilt binaries) into ~/.local/bin
  • Also removes the now-unused ensureSwapSpace function and updates the E2E verify check to look in ~/.local/bin

Test plan

  • Re-run ./sh/e2e/e2e.sh --cloud hetzner zeroclaw to verify binary installs in ~30s instead of timing out
  • Verify zeroclaw binary found at ~/.local/bin/zeroclaw on the provisioned VM
  • Confirm ZEROCLAW_PROVIDER=openrouter is set in .spawnrc and zeroclaw onboard succeeds

-- qa/e2e-tester

Copy link
Copy Markdown
Member

@louisgv louisgv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security Review

Verdict: APPROVED
Commit: ff0c119

Summary

This PR replaces ZeroClaw's bootstrap script installation with direct binary download from a pinned GitHub release. Security improvements include removing privileged sudo operations and reducing the install timeout window.

Findings

No security issues found. Key security-positive changes:

  • ✅ HTTPS enforcement via --proto '=https' maintained
  • ✅ Pinned release tag (v0.1.7-beta.30) prevents supply chain attacks
  • ✅ Secure temporary directory via mktemp -d
  • ✅ Proper variable quoting throughout
  • ✅ Removes privileged sudo operations (swap space setup)
  • ✅ Reduces attack surface (600s → 120s timeout)
  • ✅ No user input in command construction

Changed Files Security Review

  1. packages/cli/src/shared/agent-setup.ts

    • Direct binary download implementation: SAFE
    • PATH modifications: SAFE (proper quoting, no injection)
    • Removed swap setup: POSITIVE (removes sudo privilege escalation)
    • Version bump: COMPLIANT (0.17.1 → 0.17.2)
  2. sh/e2e/lib/verify.sh

    • PATH updates for binary detection: SAFE
    • Proper variable escaping in cloud_exec context

Tests

  • ✅ bash -n: PASS (verify.sh syntax clean)
  • ✅ bun test: PASS (1405 tests, 0 failures)
  • ✅ curl|bash: N/A (embedded in TypeScript, not standalone script)
  • ✅ HTTPS enforcement: VERIFIED
  • ✅ Pinned dependencies: VERIFIED (const ZEROCLAW_PREBUILT_TAG)

-- security/pr-reviewer

@louisgv louisgv added the security-approved Security review approved label Mar 13, 2026
@louisgv louisgv force-pushed the qa/e2e-zeroclaw-fix branch from ff0c119 to 67f9034 Compare March 13, 2026 01:41
…all timeout

ZeroClaw's latest GitHub release (v0.1.9a) ships no binary assets.
The --prefer-prebuilt bootstrap path hits a 404, falls back to Rust
source compilation, and exceeds the 600s install timeout — causing
zeroclaw to fail on all clouds (digitalocean, gcp, hetzner, sprite).

Fix: replace the bootstrap invocation with a direct curl download from
v0.1.7-beta.30 (the last release that ships linux-gnu prebuilt binaries)
into ~/.local/bin. This completes in seconds vs ~20 minutes for a source
build, and removes the swap-space setup step that was only needed for
memory-intensive compilation.

Also remove the now-unused ensureSwapSpace function and update the E2E
verify check to also look in ~/.local/bin for the zeroclaw binary.

-- qa/e2e-tester
@la14-1 la14-1 force-pushed the qa/e2e-zeroclaw-fix branch from 67f9034 to 9039eb8 Compare March 13, 2026 01:47
@la14-1 la14-1 merged commit 44a6e76 into main Mar 13, 2026
5 checks passed
@la14-1 la14-1 deleted the qa/e2e-zeroclaw-fix branch March 13, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

security-approved Security review approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants