diff --git a/.github/scripts/sync-readme.sh b/.github/scripts/sync-readme.sh deleted file mode 100755 index cc746fd34..000000000 --- a/.github/scripts/sync-readme.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/env bash -# sync-readme.sh โ€” Auto-update "What's New" and "Recent Contributors" in all READMEs -# Called by the sync-readme GitHub Actions workflow on each release. -set -euo pipefail - -# --- Resolve version and ranges --- - -LATEST_TAG=$(git tag --sort=-creatordate | head -1 || echo "") -if [ -z "$LATEST_TAG" ]; then - echo "No tags found โ€” skipping README sync" - exit 0 -fi - -VERSION="${LATEST_TAG#v}" - -# Find previous stable tag for contributor range -PREV_STABLE=$(git tag --sort=-creatordate \ - | grep -v "^${LATEST_TAG}$" \ - | grep -vE '\-beta\.' \ - | head -1 || echo "") - -FEAT_RANGE="${PREV_STABLE:+${PREV_STABLE}..}${LATEST_TAG}" -CONTRIB_RANGE="${PREV_STABLE:+${PREV_STABLE}..}${LATEST_TAG}" - -# --- Build "What's New" table rows --- - -FEATURES=$(git log "$FEAT_RANGE" --pretty=format:"%s" --no-merges \ - | grep -iE '^feat(\(|:)' \ - | sed 's/^feat(\([^)]*\)): /| \1 | /' \ - | sed 's/^feat: /| General | /' \ - | sed 's/ (#[0-9]*)$//' \ - | sort -uf \ - | while IFS= read -r line; do echo "${line} |"; done || true) - -if [ -z "$FEATURES" ]; then - FEATURES="| General | Incremental improvements and polish |" -fi - -MONTH_YEAR=$(date -u +"%B %Y") - -# --- Build contributor list --- - -GIT_AUTHORS=$(git log "$CONTRIB_RANGE" --pretty=format:"%an" --no-merges | sort -uf || true) -CO_AUTHORS=$(git log "$CONTRIB_RANGE" --pretty=format:"%b" --no-merges \ - | grep -ioE 'Co-Authored-By: *[^<]+' \ - | sed 's/Co-Authored-By: *//i' \ - | sed 's/ *$//' \ - | sort -uf || true) - -ALL_CONTRIBUTORS=$(printf "%s\n%s" "$GIT_AUTHORS" "$CO_AUTHORS" \ - | sort -uf \ - | grep -v '^$' \ - | grep -viE '\[bot\]$|^dependabot|^github-actions|^copilot|^ZeroClaw Bot|^ZeroClaw Runner|^ZeroClaw Agent|^blacksmith' \ - || true) - -CONTRIBUTOR_COUNT=$(echo "$ALL_CONTRIBUTORS" | grep -c . || echo "0") - -CONTRIBUTOR_LIST=$(echo "$ALL_CONTRIBUTORS" \ - | while IFS= read -r name; do - [ -z "$name" ] && continue - echo "- **${name}**" - done || true) - -# --- Write temp files for section content --- - -WHATS_NEW_FILE=$(mktemp) -cat > "$WHATS_NEW_FILE" < "$CONTRIBUTORS_FILE" <)\n.*?()', - r'\1\n' + whats_new + r'\2', - content, - flags=re.DOTALL -) - -content = re.sub( - r'()\n.*?()', - r'\1\n' + contributors + r'\2', - content, - flags=re.DOTALL -) - -with open(readme_path, 'w') as f: - f.write(content) -PYEOF - - UPDATED=$((UPDATED + 1)) -done - -rm -f "$WHATS_NEW_FILE" "$CONTRIBUTORS_FILE" - -echo "README synced: ${LATEST_TAG} โ€” ${CONTRIBUTOR_COUNT} contributors โ€” ${UPDATED} files updated" diff --git a/.github/workflows/release-beta-on-push.yml b/.github/workflows/release-beta-on-push.yml index 0e0ca0970..f2adf1b4d 100644 --- a/.github/workflows/release-beta-on-push.yml +++ b/.github/workflows/release-beta-on-push.yml @@ -170,6 +170,11 @@ jobs: target: aarch64-apple-darwin artifact: zeroclaw ext: tar.gz + - os: ubuntu-latest + target: aarch64-linux-android + artifact: zeroclaw + ext: tar.gz + ndk: true - os: windows-latest target: x86_64-pc-windows-msvc artifact: zeroclaw.exe @@ -194,6 +199,10 @@ jobs: sudo apt-get update -qq sudo apt-get install -y ${{ matrix.cross_compiler }} + - name: Setup Android NDK + if: matrix.ndk + run: echo "$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin" >> "$GITHUB_PATH" + - name: Build release shell: bash run: | @@ -304,3 +313,13 @@ jobs: platforms: linux/amd64,linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max + + # โ”€โ”€ Post-publish: only run after ALL artifacts are live โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + tweet: + name: Tweet Release + needs: [version, publish, docker, redeploy-website] + uses: ./.github/workflows/tweet-release.yml + with: + release_tag: ${{ needs.version.outputs.tag }} + release_url: https://github.com/zeroclaw-labs/zeroclaw/releases/tag/${{ needs.version.outputs.tag }} + secrets: inherit diff --git a/.github/workflows/release-stable-manual.yml b/.github/workflows/release-stable-manual.yml index f5a550dda..cf765714e 100644 --- a/.github/workflows/release-stable-manual.yml +++ b/.github/workflows/release-stable-manual.yml @@ -171,6 +171,11 @@ jobs: target: aarch64-apple-darwin artifact: zeroclaw ext: tar.gz + - os: ubuntu-latest + target: aarch64-linux-android + artifact: zeroclaw + ext: tar.gz + ndk: true - os: windows-latest target: x86_64-pc-windows-msvc artifact: zeroclaw.exe @@ -195,6 +200,10 @@ jobs: sudo apt-get update -qq sudo apt-get install -y ${{ matrix.cross_compiler }} + - name: Setup Android NDK + if: matrix.ndk + run: echo "$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin" >> "$GITHUB_PATH" + - name: Build release shell: bash run: | @@ -344,3 +353,13 @@ jobs: platforms: linux/amd64,linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max + + # โ”€โ”€ Post-publish: only run after ALL artifacts are live โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + tweet: + name: Tweet Release + needs: [validate, publish, docker, crates-io, redeploy-website] + uses: ./.github/workflows/tweet-release.yml + with: + release_tag: ${{ needs.validate.outputs.tag }} + release_url: https://github.com/zeroclaw-labs/zeroclaw/releases/tag/${{ needs.validate.outputs.tag }} + secrets: inherit diff --git a/.github/workflows/sync-readme.yml b/.github/workflows/sync-readme.yml deleted file mode 100644 index a3c555548..000000000 --- a/.github/workflows/sync-readme.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Sync README - -on: - release: - types: [published] - workflow_dispatch: - -permissions: - contents: write - -jobs: - sync: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - with: - fetch-depth: 0 - token: ${{ secrets.RELEASE_TOKEN }} - - - name: Sync README sections - run: bash .github/scripts/sync-readme.sh - - - name: Commit and push - run: | - git config user.name "ZeroClaw Bot" - git config user.email "bot@zeroclawlabs.ai" - if git diff --quiet -- 'README*.md'; then - echo "No README changes โ€” skipping commit" - exit 0 - fi - git add README*.md - git commit -m "docs(readme): auto-sync What's New and Contributors" - git push origin HEAD:master diff --git a/.github/workflows/tweet-release.yml b/.github/workflows/tweet-release.yml index 9916b2101..8f872452a 100644 --- a/.github/workflows/tweet-release.yml +++ b/.github/workflows/tweet-release.yml @@ -1,8 +1,26 @@ name: Tweet Release on: - release: - types: [published] + # Called by release workflows AFTER all publish steps (docker, crates, website) complete. + workflow_call: + inputs: + release_tag: + description: "Release tag (e.g. v0.3.0 or v0.3.0-beta.42)" + required: true + type: string + release_url: + description: "GitHub Release URL" + required: true + type: string + secrets: + TWITTER_CONSUMER_API_KEY: + required: false + TWITTER_CONSUMER_API_SECRET_KEY: + required: false + TWITTER_ACCESS_TOKEN: + required: false + TWITTER_ACCESS_TOKEN_SECRET: + required: false workflow_dispatch: inputs: tweet_text: @@ -26,7 +44,7 @@ jobs: id: check shell: bash env: - RELEASE_TAG: ${{ github.event.release.tag_name || '' }} + RELEASE_TAG: ${{ inputs.release_tag || '' }} MANUAL_TEXT: ${{ inputs.tweet_text || '' }} run: | # Manual dispatch always proceeds @@ -62,8 +80,8 @@ jobs: if: steps.check.outputs.skip != 'true' shell: bash env: - RELEASE_TAG: ${{ github.event.release.tag_name || '' }} - RELEASE_URL: ${{ github.event.release.html_url || '' }} + RELEASE_TAG: ${{ inputs.release_tag || '' }} + RELEASE_URL: ${{ inputs.release_url || '' }} MANUAL_TEXT: ${{ inputs.tweet_text || '' }} run: | set -euo pipefail diff --git a/Cargo.lock b/Cargo.lock index fca73a8e9..d5fe22f4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7963,7 +7963,7 @@ dependencies = [ [[package]] name = "zeroclawlabs" -version = "0.3.0" +version = "0.3.1" dependencies = [ "aardvark-sys", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 8de081753..33df49f78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ resolver = "2" [package] name = "zeroclawlabs" -version = "0.3.0" +version = "0.3.1" edition = "2021" authors = ["theonlyhennygod"] license = "MIT OR Apache-2.0" diff --git a/README.ar.md b/README.ar.md index 487a7f496..991c47b0a 100644 --- a/README.ar.md +++ b/README.ar.md @@ -88,11 +88,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ zeroclaw version # ุนุฑุถ ุงู„ุฅุตุฏุงุฑ ูˆู…ุนู„ูˆู…ุงุช ุงู„ุจู†ุง -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.bn.md b/README.bn.md index 202fcef4d..40d4fc2b4 100644 --- a/README.bn.md +++ b/README.bn.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.cs.md b/README.cs.md index 238b7ab5d..2d5d40555 100644 --- a/README.cs.md +++ b/README.cs.md @@ -88,11 +88,11 @@ Postaveno studenty a ฤleny komunit Harvard, MIT a Sundai.Club. -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Stavรญme v open source protoลพe nejlepลกรญ nรกpady pล™ichรกzejรญ odkudkoliv. Pok -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.da.md b/README.da.md index 50656c8fa..140687dca 100644 --- a/README.da.md +++ b/README.da.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Hvis ZeroClaw er nyttigt for dig, overvej venligst at kรธbe os en kaffe: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.de.md b/README.de.md index d66ae6054..eb75fcf16 100644 --- a/README.de.md +++ b/README.de.md @@ -92,11 +92,11 @@ Erstellt von Studenten und Mitgliedern der Harvard, MIT und Sundai.Club Gemeinsc -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -429,12 +429,13 @@ Wir bauen in Open Source, weil die besten Ideen von รผberall kommen. Wenn du das -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.el.md b/README.el.md index b54c1a4c7..85106e1d9 100644 --- a/README.el.md +++ b/README.el.md @@ -56,11 +56,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -189,12 +189,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.es.md b/README.es.md index 99a7243e2..1341b2a9e 100644 --- a/README.es.md +++ b/README.es.md @@ -88,11 +88,11 @@ Construido por estudiantes y miembros de las comunidades de Harvard, MIT y Sunda -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Construimos en cรณdigo abierto porque las mejores ideas vienen de todas partes. -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.fi.md b/README.fi.md index e3fa41aff..210bcf025 100644 --- a/README.fi.md +++ b/README.fi.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Jos ZeroClaw on hyรถdyllinen sinulle, harkitse kahvin ostamista meille: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.fr.md b/README.fr.md index 4b2d490a1..10a13298b 100644 --- a/README.fr.md +++ b/README.fr.md @@ -86,11 +86,11 @@ Construit par des รฉtudiants et membres des communautรฉs Harvard, MIT et Sundai. -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -423,12 +423,13 @@ Nous construisons en open source parce que les meilleures idรฉes viennent de par -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.he.md b/README.he.md index f45f68982..7a19e648b 100644 --- a/README.he.md +++ b/README.he.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -208,12 +208,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.hi.md b/README.hi.md index ea56660df..7e23e2370 100644 --- a/README.hi.md +++ b/README.hi.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.hu.md b/README.hu.md index 7303016e2..05c9f8477 100644 --- a/README.hu.md +++ b/README.hu.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Ha a ZeroClaw hasznos az ร–n szรกmรกra, kรฉrjรผk, fontolja meg, hogy vesz nekรผn -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.id.md b/README.id.md index 88eed9c95..b44a1c5d9 100644 --- a/README.id.md +++ b/README.id.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Jika ZeroClaw berguna bagi Anda, mohon pertimbangkan untuk membelikan kami kopi: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.it.md b/README.it.md index f26918f46..7f4df5034 100644 --- a/README.it.md +++ b/README.it.md @@ -88,11 +88,11 @@ Costruito da studenti e membri delle comunitร  Harvard, MIT e Sundai.Club. -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Costruiamo in open source perchรฉ le migliori idee vengono da ovunque. Se stai l -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.ja.md b/README.ja.md index c2bcc87c6..bec3cf91c 100644 --- a/README.ja.md +++ b/README.ja.md @@ -77,11 +77,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -237,12 +237,13 @@ zeroclaw agent --provider anthropic -m "hello" -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.ko.md b/README.ko.md index 1e03800c6..764954ae5 100644 --- a/README.ko.md +++ b/README.ko.md @@ -88,11 +88,11 @@ Harvard, MIT, ๊ทธ๋ฆฌ๊ณ  Sundai.Club ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•™์ƒ๋“ค๊ณผ ๋ฉค๋ฒ„๋“ค์ด -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ ZeroClaw๊ฐ€ ๋‹น์‹ ์˜ ์ž‘์—…์— ๋„์›€์ด ๋˜์—ˆ๊ณ  ์ง€์†์ ์ธ ๊ฐœ๋ฐœ์„ ์ง€ -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.md b/README.md index 55fa3c98e..5c2337045 100644 --- a/README.md +++ b/README.md @@ -85,13 +85,6 @@ Built by students and members of the Harvard, MIT, and Sundai.Club communities.

Trait-driven architecture ยท secure-by-default runtime ยท provider/channel/tool swappable ยท pluggable everything

- -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) - -| Area | Highlights | -|---|---| -| General | Incremental improvements and polish | - ### ๐Ÿ“ข Announcements @@ -481,16 +474,6 @@ A heartfelt thank you to the communities and institutions that inspire and fuel We're building in the open because the best ideas come from everywhere. If you're reading this, you're part of it. Welcome. ๐Ÿฆ€โค๏ธ - -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: - - - -Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ - ## โš ๏ธ Official Repository & Impersonation Warning diff --git a/README.nb.md b/README.nb.md index 44fbaa3e6..751b79d6f 100644 --- a/README.nb.md +++ b/README.nb.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Hvis ZeroClaw er nyttig for deg, vennligst vurder รฅ kjรธpe oss en kaffe: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.nl.md b/README.nl.md index de3e64108..c3ffd6792 100644 --- a/README.nl.md +++ b/README.nl.md @@ -88,11 +88,11 @@ Gebouwd door studenten en leden van de Harvard, MIT en Sundai.Club gemeenschappe -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ We bouwen in open source omdat de beste ideeรซn van overal komen. Als je dit lee -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.pl.md b/README.pl.md index f6a453854..b32099dd7 100644 --- a/README.pl.md +++ b/README.pl.md @@ -88,11 +88,11 @@ Zbudowany przez studentรณw i czล‚onkรณw spoล‚ecznoล›ci Harvard, MIT i Sundai.Clu -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Budujemy w open source poniewaลผ najlepsze pomysล‚y przychodzฤ… zewszฤ…d. Jeล›li -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.pt.md b/README.pt.md index 900727ec1..706c041a6 100644 --- a/README.pt.md +++ b/README.pt.md @@ -88,11 +88,11 @@ Construรญdo por estudantes e membros das comunidades Harvard, MIT e Sundai.Club. -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Construรญmos em cรณdigo aberto porque as melhores ideias vรชm de todo lugar. Se -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.ro.md b/README.ro.md index 07a9d4d39..6a6e0c4be 100644 --- a/README.ro.md +++ b/README.ro.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Dacฤƒ ZeroClaw รฎศ›i este util, te rugฤƒm sฤƒ iei รฎn considerare sฤƒ ne cumperi -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.ru.md b/README.ru.md index 37d4c31c6..59818b8f9 100644 --- a/README.ru.md +++ b/README.ru.md @@ -77,11 +77,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -237,12 +237,13 @@ zeroclaw agent --provider anthropic -m "hello" -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.sv.md b/README.sv.md index d56bcf143..9c3b6032c 100644 --- a/README.sv.md +++ b/README.sv.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ Om ZeroClaw รคr anvรคndbart fรถr dig, vรคnligen รถvervรคg att kรถpa en kaffe til -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.th.md b/README.th.md index 7092c7b49..e0dec813a 100644 --- a/README.th.md +++ b/README.th.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.tl.md b/README.tl.md index b773986f3..7b1b66b3e 100644 --- a/README.tl.md +++ b/README.tl.md @@ -88,11 +88,11 @@ Binuo ng mga mag-aaral at miyembro ng Harvard, MIT, at Sundai.Club na komunidad. -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ Kami ay bumubuo sa open source dahil ang mga pinakamahusay na ideya ay nagmumula -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.tr.md b/README.tr.md index 6397f63c5..8a952f9a6 100644 --- a/README.tr.md +++ b/README.tr.md @@ -88,11 +88,11 @@ Harvard, MIT ve Sundai.Club topluluklarฤฑnฤฑn รถฤŸrencileri ve รผyeleri tarafฤฑn -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -425,12 +425,13 @@ En iyi fikirler her yerden geldiฤŸi iรงin aรงฤฑk kaynakta inลŸa ediyoruz. Bunu o -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.uk.md b/README.uk.md index 9a348506c..7165ed5e4 100644 --- a/README.uk.md +++ b/README.uk.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -190,12 +190,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.ur.md b/README.ur.md index b213fea9b..f73b47988 100644 --- a/README.ur.md +++ b/README.ur.md @@ -59,11 +59,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -208,12 +208,13 @@ channels: -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.vi.md b/README.vi.md index ffc5794ec..b37f7b305 100644 --- a/README.vi.md +++ b/README.vi.md @@ -86,11 +86,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -468,12 +468,13 @@ Chรบng tรดi xรขy dแปฑng cรดng khai vรฌ รฝ tฦฐแปŸng hay ฤ‘แบฟn tแปซ khแบฏp nฦกi. -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/README.zh-CN.md b/README.zh-CN.md index a48ef72ad..754f4ab6c 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -77,11 +77,11 @@ -### ๐Ÿš€ What's New in v0.3.0-beta.196 (March 2026) +### ๐Ÿš€ What's New in v0.3.1 (March 2026) | Area | Highlights | |---|---| -| General | Incremental improvements and polish | +| ci | add Termux (aarch64-linux-android) release target | @@ -242,12 +242,13 @@ zeroclaw agent --provider anthropic -m "hello" -### ๐ŸŒŸ Recent Contributors (v0.3.0-beta.196) - -0 -0 contributors shipped features, fixes, and improvements in this release cycle: +### ๐ŸŒŸ Recent Contributors (v0.3.1) +3 contributors shipped features, fixes, and improvements in this release cycle: +- **Argenis** +- **argenis de la rosa** +- **Claude Opus 4.6** Thank you to everyone who opened issues, reviewed PRs, translated docs, and helped test. Every contribution matters. ๐Ÿฆ€ diff --git a/dev/test-termux-release.sh b/dev/test-termux-release.sh new file mode 100755 index 000000000..c43bf3ab7 --- /dev/null +++ b/dev/test-termux-release.sh @@ -0,0 +1,261 @@ +#!/usr/bin/env bash +# Termux release validation script +# Validates the aarch64-linux-android release artifact for Termux compatibility. +# +# Usage: +# ./dev/test-termux-release.sh [version] +# +# Examples: +# ./dev/test-termux-release.sh 0.3.1 +# ./dev/test-termux-release.sh # auto-detects from Cargo.toml +# +set -euo pipefail + +BLUE='\033[0;34m' +GREEN='\033[0;32m' +RED='\033[0;31m' +YELLOW='\033[0;33m' +BOLD='\033[1m' +DIM='\033[2m' +RESET='\033[0m' + +pass() { echo -e " ${GREEN}โœ“${RESET} $*"; } +fail() { echo -e " ${RED}โœ—${RESET} $*"; FAILURES=$((FAILURES + 1)); } +info() { echo -e "${BLUE}โ†’${RESET} ${BOLD}$*${RESET}"; } +warn() { echo -e "${YELLOW}!${RESET} $*"; } + +FAILURES=0 +TARGET="aarch64-linux-android" +VERSION="${1:-}" + +if [[ -z "$VERSION" ]]; then + if [[ -f Cargo.toml ]]; then + VERSION=$(sed -n 's/^version = "\([^"]*\)"/\1/p' Cargo.toml | head -1) + fi +fi + +if [[ -z "$VERSION" ]]; then + echo "Usage: $0 " + echo " e.g. $0 0.3.1" + exit 1 +fi + +TAG="v${VERSION}" +ASSET_NAME="zeroclaw-${TARGET}.tar.gz" +ASSET_URL="https://github.com/zeroclaw-labs/zeroclaw/releases/download/${TAG}/${ASSET_NAME}" +TEMP_DIR="$(mktemp -d -t zeroclaw-termux-test-XXXXXX)" + +cleanup() { rm -rf "$TEMP_DIR"; } +trap cleanup EXIT + +echo +echo -e "${BOLD}Termux Release Validation โ€” ${TAG}${RESET}" +echo -e "${DIM}Target: ${TARGET}${RESET}" +echo + +# --- Test 1: Release tag exists --- +info "Checking release tag ${TAG}" +if gh release view "$TAG" >/dev/null 2>&1; then + pass "Release ${TAG} exists" +else + fail "Release ${TAG} not found" + echo -e "${RED}Release has not been published yet. Wait for the release workflow to complete.${RESET}" + exit 1 +fi + +# --- Test 2: Android asset is listed --- +info "Checking for ${ASSET_NAME} in release assets" +ASSETS=$(gh release view "$TAG" --json assets -q '.assets[].name') +if echo "$ASSETS" | grep -q "$ASSET_NAME"; then + pass "Asset ${ASSET_NAME} found in release" +else + fail "Asset ${ASSET_NAME} not found in release" + echo "Available assets:" + echo "$ASSETS" | sed 's/^/ /' + exit 1 +fi + +# --- Test 3: Download the asset --- +info "Downloading ${ASSET_NAME}" +if curl -fsSL "$ASSET_URL" -o "$TEMP_DIR/$ASSET_NAME"; then + FILESIZE=$(wc -c < "$TEMP_DIR/$ASSET_NAME" | tr -d ' ') + pass "Downloaded successfully (${FILESIZE} bytes)" +else + fail "Download failed from ${ASSET_URL}" + exit 1 +fi + +# --- Test 4: Archive integrity --- +info "Verifying archive integrity" +if tar -tzf "$TEMP_DIR/$ASSET_NAME" >/dev/null 2>&1; then + pass "Archive is a valid gzip tar" +else + fail "Archive is corrupted or not a valid tar.gz" + exit 1 +fi + +# --- Test 5: Contains zeroclaw binary --- +info "Checking archive contents" +CONTENTS=$(tar -tzf "$TEMP_DIR/$ASSET_NAME") +if echo "$CONTENTS" | grep -q "^zeroclaw$"; then + pass "Archive contains 'zeroclaw' binary" +else + fail "Archive does not contain 'zeroclaw' binary" + echo "Contents:" + echo "$CONTENTS" | sed 's/^/ /' +fi + +# --- Test 6: Extract and inspect binary --- +info "Extracting and inspecting binary" +tar -xzf "$TEMP_DIR/$ASSET_NAME" -C "$TEMP_DIR" +BINARY="$TEMP_DIR/zeroclaw" + +if [[ -f "$BINARY" ]]; then + pass "Binary extracted" +else + fail "Binary not found after extraction" + exit 1 +fi + +# --- Test 7: ELF format and architecture --- +info "Checking binary format" +FILE_INFO=$(file "$BINARY") +if echo "$FILE_INFO" | grep -q "ELF"; then + pass "Binary is ELF format" +else + fail "Binary is not ELF format: $FILE_INFO" +fi + +if echo "$FILE_INFO" | grep -qi "aarch64\|ARM aarch64"; then + pass "Binary targets aarch64 architecture" +else + fail "Binary does not target aarch64: $FILE_INFO" +fi + +if echo "$FILE_INFO" | grep -qi "android\|bionic"; then + pass "Binary is linked for Android/Bionic" +else + # Android binaries may not always show "android" in file output, + # check with readelf if available + if command -v readelf >/dev/null 2>&1; then + INTERP=$(readelf -l "$BINARY" 2>/dev/null | grep -o '/[^ ]*linker[^ ]*' || true) + if echo "$INTERP" | grep -qi "android\|bionic"; then + pass "Binary uses Android linker: $INTERP" + else + warn "Could not confirm Android linkage (interpreter: ${INTERP:-unknown})" + warn "file output: $FILE_INFO" + fi + else + warn "Could not confirm Android linkage (readelf not available)" + warn "file output: $FILE_INFO" + fi +fi + +# --- Test 8: Binary is stripped --- +info "Checking binary optimization" +if echo "$FILE_INFO" | grep -q "stripped"; then + pass "Binary is stripped (release optimized)" +else + warn "Binary may not be stripped" +fi + +# --- Test 9: Binary is not dynamically linked to glibc --- +info "Checking for glibc dependencies" +if command -v readelf >/dev/null 2>&1; then + NEEDED=$(readelf -d "$BINARY" 2>/dev/null | grep NEEDED || true) + if echo "$NEEDED" | grep -qi "libc\.so\.\|libpthread\|libdl"; then + # Check if it's glibc or bionic + if echo "$NEEDED" | grep -qi "libc\.so\.6"; then + fail "Binary links against glibc (libc.so.6) โ€” will not work on Termux" + else + pass "Binary links against libc (likely Bionic)" + fi + else + pass "No glibc dependencies detected" + fi +else + warn "readelf not available โ€” skipping dynamic library check" +fi + +# --- Test 10: SHA256 checksum verification --- +info "Verifying SHA256 checksum" +CHECKSUMS_URL="https://github.com/zeroclaw-labs/zeroclaw/releases/download/${TAG}/SHA256SUMS" +if curl -fsSL "$CHECKSUMS_URL" -o "$TEMP_DIR/SHA256SUMS" 2>/dev/null; then + EXPECTED=$(grep "$ASSET_NAME" "$TEMP_DIR/SHA256SUMS" | awk '{print $1}') + if [[ -n "$EXPECTED" ]]; then + if command -v sha256sum >/dev/null 2>&1; then + ACTUAL=$(sha256sum "$TEMP_DIR/$ASSET_NAME" | awk '{print $1}') + elif command -v shasum >/dev/null 2>&1; then + ACTUAL=$(shasum -a 256 "$TEMP_DIR/$ASSET_NAME" | awk '{print $1}') + else + warn "No sha256sum or shasum available" + ACTUAL="" + fi + + if [[ -n "$ACTUAL" && "$ACTUAL" == "$EXPECTED" ]]; then + pass "SHA256 checksum matches" + elif [[ -n "$ACTUAL" ]]; then + fail "SHA256 mismatch: expected=$EXPECTED actual=$ACTUAL" + fi + else + warn "No checksum entry for ${ASSET_NAME} in SHA256SUMS" + fi +else + warn "Could not download SHA256SUMS" +fi + +# --- Test 11: install.sh Termux detection --- +info "Validating install.sh Termux detection" +INSTALL_SH="install.sh" +if [[ ! -f "$INSTALL_SH" ]]; then + INSTALL_SH="$(dirname "$0")/../install.sh" +fi + +if [[ -f "$INSTALL_SH" ]]; then + if grep -q 'TERMUX_VERSION' "$INSTALL_SH"; then + pass "install.sh checks TERMUX_VERSION" + else + fail "install.sh does not check TERMUX_VERSION" + fi + + if grep -q 'aarch64-linux-android' "$INSTALL_SH"; then + pass "install.sh maps to aarch64-linux-android target" + else + fail "install.sh does not map to aarch64-linux-android" + fi + + # Simulate Termux detection (mock uname as Linux since we may run on macOS) + detect_result=$( + bash -c ' + TERMUX_VERSION="0.118" + os="Linux" + arch="aarch64" + case "$os:$arch" in + Linux:aarch64|Linux:arm64) + if [[ -n "${TERMUX_VERSION:-}" || -d "/data/data/com.termux" ]]; then + echo "aarch64-linux-android" + else + echo "aarch64-unknown-linux-gnu" + fi + ;; + esac + ' + ) + if [[ "$detect_result" == "aarch64-linux-android" ]]; then + pass "Termux detection returns correct target (simulated)" + else + fail "Termux detection returned: $detect_result (expected aarch64-linux-android)" + fi +else + warn "install.sh not found โ€” skipping detection tests" +fi + +# --- Summary --- +echo +if [[ "$FAILURES" -eq 0 ]]; then + echo -e "${GREEN}${BOLD}All tests passed!${RESET}" + echo -e "${DIM}The Termux release artifact for ${TAG} is valid.${RESET}" +else + echo -e "${RED}${BOLD}${FAILURES} test(s) failed.${RESET}" + exit 1 +fi diff --git a/install.sh b/install.sh index e7c8f9899..f29502330 100755 --- a/install.sh +++ b/install.sh @@ -187,7 +187,12 @@ detect_release_target() { echo "x86_64-unknown-linux-gnu" ;; Linux:aarch64|Linux:arm64) - echo "aarch64-unknown-linux-gnu" + # Termux on Android needs the android target, not linux-gnu + if [[ -n "${TERMUX_VERSION:-}" || -d "/data/data/com.termux" ]]; then + echo "aarch64-linux-android" + else + echo "aarch64-unknown-linux-gnu" + fi ;; Linux:armv7l|Linux:armv6l) echo "armv7-unknown-linux-gnueabihf" @@ -534,6 +539,8 @@ install_system_deps() { openssl \ perl \ ca-certificates + elif have_cmd pkg && [[ -n "${TERMUX_VERSION:-}" ]]; then + pkg install -y build-essential pkg-config git curl openssl perl else warn "Unsupported Linux distribution. Install compiler toolchain + pkg-config + git + curl + OpenSSL headers + perl manually." fi @@ -1192,6 +1199,17 @@ fi if [[ "$SKIP_INSTALL" == false ]]; then step_dot "Installing zeroclaw to cargo bin" + + # Clean up stale cargo install tracking from the old "zeroclaw" package name + # (renamed to "zeroclawlabs"). Without this, `cargo install zeroclawlabs` from + # crates.io fails with "binary already exists as part of `zeroclaw`". + if have_cmd cargo; then + if [[ -f "$HOME/.cargo/.crates.toml" ]] && grep -q '^"zeroclaw ' "$HOME/.cargo/.crates.toml" 2>/dev/null; then + step_dot "Removing stale cargo tracking for old 'zeroclaw' package name" + cargo uninstall zeroclaw 2>/dev/null || true + fi + fi + cargo install --path "$WORK_DIR" --force --locked step_ok "ZeroClaw installed" else