diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 67c7355..d4931f6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -18,7 +18,7 @@ body: attributes: label: CLI version description: Output of `agora --version` - placeholder: "e.g. agora-cli 0.2.0 (commit abc1234, built 2026-05-05)" + placeholder: "e.g. agora-cli 0.2.1 (commit abc1234, built 2026-05-20)" validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 1e52270..22c3866 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -10,5 +10,5 @@ contact_links: url: https://console.agora.io about: Manage your Agora account, projects, and credentials. - name: Agora CLI documentation - url: https://github.com/AgoraIO/cli/tree/main/agora-cli-go/docs + url: https://github.com/AgoraIO/cli/tree/main/docs about: Installation, automation, error code catalog, and JSON envelope reference. diff --git a/.github/workflows/apt-repo.yml b/.github/workflows/apt-repo.yml index 342c787..07144d8 100644 --- a/.github/workflows/apt-repo.yml +++ b/.github/workflows/apt-repo.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install apt tools run: sudo apt-get install -y --no-install-recommends dpkg-dev apt-utils diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d6eda7..dcbeb82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v5 @@ -136,7 +136,7 @@ jobs: download_dir="$fixture_root/download/v${version}" install_dir="$PWD/.tmp/install-bin" bad_install_dir="$PWD/.tmp/install-bin-bad" - archive="agora-cli-go_v${version}_${goos}_${goarch}.tar.gz" + archive="agora-cli_v${version}_${goos}_${goarch}.tar.gz" rm -rf "$fixture_root" "$install_dir" "$bad_install_dir" mkdir -p "$download_dir" @@ -191,7 +191,7 @@ jobs: $downloadDir = Join-Path $fixtureRoot "download/v$version" $installDir = Join-Path $PWD '.tmp/install-bin' $badInstallDir = Join-Path $PWD '.tmp/install-bin-bad' - $archive = "agora-cli-go_v$version" + "_windows_${arch}.zip" + $archive = "agora-cli_v$version" + "_windows_${arch}.zip" Remove-Item -Recurse -Force $fixtureRoot, $installDir, $badInstallDir -ErrorAction SilentlyContinue New-Item -ItemType Directory -Force -Path $downloadDir | Out-Null diff --git a/.github/workflows/govulncheck.yml b/.github/workflows/govulncheck.yml index 925cea5..a029bc2 100644 --- a/.github/workflows/govulncheck.yml +++ b/.github/workflows/govulncheck.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v5 diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 2007bd1..c1798b1 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -28,7 +28,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v5 @@ -70,5 +70,5 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95a1ef7..ed4dc9f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 # GoReleaser needs full history for changelog @@ -57,13 +57,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -107,10 +107,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: "20" registry-url: "https://registry.npmjs.org" @@ -159,7 +159,7 @@ jobs: set -euo pipefail mkdir -p dist gh release download "${{ steps.ver.outputs.tag }}" \ - --pattern "agora-cli-go_*" \ + --pattern "agora-cli_*" \ --pattern "checksums.txt" \ --dir dist echo "Downloaded artifacts:" @@ -183,7 +183,7 @@ jobs: file="$(echo "$line" | awk '{print $2}')" # Only verify our archive files (not e.g. .deb/.rpm we don't repackage). case "$file" in - agora-cli-go_*_linux_*.tar.gz|agora-cli-go_*_darwin_*.tar.gz|agora-cli-go_*_windows_*.zip) ;; + agora-cli_*_linux_*.tar.gz|agora-cli_*_darwin_*.tar.gz|agora-cli_*_windows_*.zip) ;; *) continue ;; esac if [ ! -f "$file" ]; then @@ -211,7 +211,7 @@ jobs: stage_platform() { local goos="$1" goarch="$2" npm_pkg="$3" bin_name="$4" archive_ext="$5" local pkg_dir="packaging/npm/${npm_pkg}" - local archive="agora-cli-go_${tag}_${goos}_${goarch}.${archive_ext}" + local archive="agora-cli_${tag}_${goos}_${goarch}.${archive_ext}" mkdir -p "${pkg_dir}/bin" if [ "$archive_ext" = "zip" ]; then diff --git a/.goreleaser.yaml b/.goreleaser.yaml index bef7410..8f21dc2 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -20,16 +20,15 @@ builds: - -trimpath ldflags: - -s -w - - -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.version={{ .Version }} - - -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.commit={{ .ShortCommit }} - - -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.date={{ .Date }} + - -X github.com/AgoraIO/cli/internal/cli.version={{ .Version }} + - -X github.com/AgoraIO/cli/internal/cli.commit={{ .ShortCommit }} + - -X github.com/AgoraIO/cli/internal/cli.date={{ .Date }} -# Preserve existing archive naming so install scripts (and future package managers) -# continue to work without changes. +# Archive naming matches install.sh, install.ps1, and agora upgrade self-update. archives: - id: agora-cli ids: [agora-cli] - name_template: 'agora-cli-go_{{ .Tag }}_{{ .Os }}_{{ .Arch }}' + name_template: 'agora-cli_{{ .Tag }}_{{ .Os }}_{{ .Arch }}' formats: - tar.gz format_overrides: diff --git a/AGENTS.md b/AGENTS.md index 4d4d85d..f740631 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -200,6 +200,7 @@ When adding a command: 4. Add the command to the README command model 5. Add a stable JSON result shape to `docs/automation.md` 6. Call out breaking JSON or exit-code changes in `CHANGELOG.md` and migration notes in `docs/automation.md` when behavior is intentional. +7. If the command is exposed through MCP, update `mcpTools()` and refresh the compact tool-surface summary in `docs/llms.txt`. ## CI and Release @@ -209,7 +210,7 @@ When adding a command: | `release.yml` | `v*` tag | Builds cross-platform binaries, publishes GitHub release and package channels | | `apt-repo.yml` | published release | Updates the signed apt repository | -Tagging `v0.2.0` (or any `v*` semver tag) triggers the release workflow automatically. +Tagging `v0.2.1` (or any `v*` semver tag) triggers the release workflow automatically. ## Gotchas @@ -219,7 +220,8 @@ Tagging `v0.2.0` (or any `v*` semver tag) triggers the release workflow automati | Headless OAuth | Use `--no-browser` to print a URL instead of opening a browser | | `quickstart env write` ≠ `project env write` | Template-aware paths and variable names vs generic dotenv block | | `add` namespace | Reserved and hidden; must behave as not-found from the user's perspective | -| `doctor --deep` | Flag exists but deep checks are not fully implemented; don't document as stable yet | +| `doctor --deep` | Stable workspace checks for `.agora` metadata and quickstart env consistency; prefer `--deep --json` in repo-bound automation. | +| `open` browser launch | Auto-open happens only in interactive pretty TTY sessions outside CI. Use `--browser` to force opening or `--no-browser` for URL-only behavior. | | App certificate required | `quickstart env write` and `init` fail env injection if the project has no certificate | ## npm Distribution (Node Wrapper) @@ -248,7 +250,7 @@ packaging/npm/ 3. If the platform package is missing, the shim prints a helpful error pointing to Homebrew or GitHub releases **Release flow (automated and active):** the `publish-npm` job in `release.yml`: -1. Downloads release archives and `checksums.txt` from the GitHub release +1. Downloads release archives (`agora-cli_v*`, v0.2.1+) and `checksums.txt` from the GitHub release 2. Verifies SHA-256 of every archive against `checksums.txt`; fails the job on mismatch 3. Extracts the binary for each platform into the corresponding package's `bin/` 4. Stamps the tag version into all `package.json` files (wrapper + 6 platform packages, including `optionalDependencies` values) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2a9258..780299d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,67 @@ Earlier entries pre-date this convention and only carry their version's compare ## [Unreleased] +## [0.2.1] - 2026-05-20 + +Automation hardening, quickstart reliability fixes, agent introspection and MCP progress improvements, and release-artifact rename. + +### Added + +- Emit a `clone:override` progress event when `AGORA_QUICKSTART_