Skip to content

Commit d1f1d68

Browse files
Merge pull request #16 from AgoraIO/release/v0.2.1
Release/v0.2.1
2 parents 3715e64 + fe90d74 commit d1f1d68

49 files changed

Lines changed: 967 additions & 314 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ body:
1818
attributes:
1919
label: CLI version
2020
description: Output of `agora --version`
21-
placeholder: "e.g. agora-cli 0.2.0 (commit abc1234, built 2026-05-05)"
21+
placeholder: "e.g. agora-cli 0.2.1 (commit abc1234, built 2026-05-20)"
2222
validations:
2323
required: true
2424

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ contact_links:
1010
url: https://console.agora.io
1111
about: Manage your Agora account, projects, and credentials.
1212
- name: Agora CLI documentation
13-
url: https://github.com/AgoraIO/cli/tree/main/agora-cli-go/docs
13+
url: https://github.com/AgoraIO/cli/tree/main/docs
1414
about: Installation, automation, error code catalog, and JSON envelope reference.

.github/workflows/apt-repo.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939

4040
steps:
4141
- name: Check out repository
42-
uses: actions/checkout@v4
42+
uses: actions/checkout@v6
4343

4444
- name: Install apt tools
4545
run: sudo apt-get install -y --no-install-recommends dpkg-dev apt-utils

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525

2626
steps:
2727
- name: Check out repository
28-
uses: actions/checkout@v4
28+
uses: actions/checkout@v6
2929

3030
- name: Set up Go
3131
uses: actions/setup-go@v5
@@ -136,7 +136,7 @@ jobs:
136136
download_dir="$fixture_root/download/v${version}"
137137
install_dir="$PWD/.tmp/install-bin"
138138
bad_install_dir="$PWD/.tmp/install-bin-bad"
139-
archive="agora-cli-go_v${version}_${goos}_${goarch}.tar.gz"
139+
archive="agora-cli_v${version}_${goos}_${goarch}.tar.gz"
140140
141141
rm -rf "$fixture_root" "$install_dir" "$bad_install_dir"
142142
mkdir -p "$download_dir"
@@ -191,7 +191,7 @@ jobs:
191191
$downloadDir = Join-Path $fixtureRoot "download/v$version"
192192
$installDir = Join-Path $PWD '.tmp/install-bin'
193193
$badInstallDir = Join-Path $PWD '.tmp/install-bin-bad'
194-
$archive = "agora-cli-go_v$version" + "_windows_${arch}.zip"
194+
$archive = "agora-cli_v$version" + "_windows_${arch}.zip"
195195
196196
Remove-Item -Recurse -Force $fixtureRoot, $installDir, $badInstallDir -ErrorAction SilentlyContinue
197197
New-Item -ItemType Directory -Force -Path $downloadDir | Out-Null

.github/workflows/govulncheck.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919

2020
steps:
2121
- name: Check out repository
22-
uses: actions/checkout@v4
22+
uses: actions/checkout@v6
2323

2424
- name: Set up Go
2525
uses: actions/setup-go@v5

.github/workflows/pages.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
steps:
3030
- name: Check out repository
31-
uses: actions/checkout@v4
31+
uses: actions/checkout@v6
3232

3333
- name: Set up Go
3434
uses: actions/setup-go@v5
@@ -70,5 +70,5 @@ jobs:
7070
steps:
7171
- name: Deploy to GitHub Pages
7272
id: deployment
73-
uses: actions/deploy-pages@v4
73+
uses: actions/deploy-pages@v5
7474

.github/workflows/release.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
steps:
3030
- name: Check out repository
31-
uses: actions/checkout@v4
31+
uses: actions/checkout@v6
3232
with:
3333
fetch-depth: 0 # GoReleaser needs full history for changelog
3434

@@ -57,13 +57,13 @@ jobs:
5757
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5858

5959
- name: Set up QEMU
60-
uses: docker/setup-qemu-action@v3
60+
uses: docker/setup-qemu-action@v4
6161

6262
- name: Set up Docker Buildx
63-
uses: docker/setup-buildx-action@v3
63+
uses: docker/setup-buildx-action@v4
6464

6565
- name: Log in to GitHub Container Registry
66-
uses: docker/login-action@v3
66+
uses: docker/login-action@v4
6767
with:
6868
registry: ghcr.io
6969
username: ${{ github.actor }}
@@ -107,10 +107,10 @@ jobs:
107107

108108
steps:
109109
- name: Check out repository
110-
uses: actions/checkout@v4
110+
uses: actions/checkout@v6
111111

112112
- name: Set up Node.js
113-
uses: actions/setup-node@v4
113+
uses: actions/setup-node@v6
114114
with:
115115
node-version: "20"
116116
registry-url: "https://registry.npmjs.org"
@@ -159,7 +159,7 @@ jobs:
159159
set -euo pipefail
160160
mkdir -p dist
161161
gh release download "${{ steps.ver.outputs.tag }}" \
162-
--pattern "agora-cli-go_*" \
162+
--pattern "agora-cli_*" \
163163
--pattern "checksums.txt" \
164164
--dir dist
165165
echo "Downloaded artifacts:"
@@ -183,7 +183,7 @@ jobs:
183183
file="$(echo "$line" | awk '{print $2}')"
184184
# Only verify our archive files (not e.g. .deb/.rpm we don't repackage).
185185
case "$file" in
186-
agora-cli-go_*_linux_*.tar.gz|agora-cli-go_*_darwin_*.tar.gz|agora-cli-go_*_windows_*.zip) ;;
186+
agora-cli_*_linux_*.tar.gz|agora-cli_*_darwin_*.tar.gz|agora-cli_*_windows_*.zip) ;;
187187
*) continue ;;
188188
esac
189189
if [ ! -f "$file" ]; then
@@ -211,7 +211,7 @@ jobs:
211211
stage_platform() {
212212
local goos="$1" goarch="$2" npm_pkg="$3" bin_name="$4" archive_ext="$5"
213213
local pkg_dir="packaging/npm/${npm_pkg}"
214-
local archive="agora-cli-go_${tag}_${goos}_${goarch}.${archive_ext}"
214+
local archive="agora-cli_${tag}_${goos}_${goarch}.${archive_ext}"
215215
216216
mkdir -p "${pkg_dir}/bin"
217217
if [ "$archive_ext" = "zip" ]; then

.goreleaser.yaml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,15 @@ builds:
2020
- -trimpath
2121
ldflags:
2222
- -s -w
23-
- -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.version={{ .Version }}
24-
- -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.commit={{ .ShortCommit }}
25-
- -X github.com/agora/cli-workspace/agora-cli-go/internal/cli.date={{ .Date }}
23+
- -X github.com/AgoraIO/cli/internal/cli.version={{ .Version }}
24+
- -X github.com/AgoraIO/cli/internal/cli.commit={{ .ShortCommit }}
25+
- -X github.com/AgoraIO/cli/internal/cli.date={{ .Date }}
2626

27-
# Preserve existing archive naming so install scripts (and future package managers)
28-
# continue to work without changes.
27+
# Archive naming matches install.sh, install.ps1, and agora upgrade self-update.
2928
archives:
3029
- id: agora-cli
3130
ids: [agora-cli]
32-
name_template: 'agora-cli-go_{{ .Tag }}_{{ .Os }}_{{ .Arch }}'
31+
name_template: 'agora-cli_{{ .Tag }}_{{ .Os }}_{{ .Arch }}'
3332
formats:
3433
- tar.gz
3534
format_overrides:

AGENTS.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ When adding a command:
200200
4. Add the command to the README command model
201201
5. Add a stable JSON result shape to `docs/automation.md`
202202
6. Call out breaking JSON or exit-code changes in `CHANGELOG.md` and migration notes in `docs/automation.md` when behavior is intentional.
203+
7. If the command is exposed through MCP, update `mcpTools()` and refresh the compact tool-surface summary in `docs/llms.txt`.
203204

204205
## CI and Release
205206

@@ -209,7 +210,7 @@ When adding a command:
209210
| `release.yml` | `v*` tag | Builds cross-platform binaries, publishes GitHub release and package channels |
210211
| `apt-repo.yml` | published release | Updates the signed apt repository |
211212

212-
Tagging `v0.2.0` (or any `v*` semver tag) triggers the release workflow automatically.
213+
Tagging `v0.2.1` (or any `v*` semver tag) triggers the release workflow automatically.
213214

214215
## Gotchas
215216

@@ -219,7 +220,8 @@ Tagging `v0.2.0` (or any `v*` semver tag) triggers the release workflow automati
219220
| Headless OAuth | Use `--no-browser` to print a URL instead of opening a browser |
220221
| `quickstart env write``project env write` | Template-aware paths and variable names vs generic dotenv block |
221222
| `add` namespace | Reserved and hidden; must behave as not-found from the user's perspective |
222-
| `doctor --deep` | Flag exists but deep checks are not fully implemented; don't document as stable yet |
223+
| `doctor --deep` | Stable workspace checks for `.agora` metadata and quickstart env consistency; prefer `--deep --json` in repo-bound automation. |
224+
| `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. |
223225
| App certificate required | `quickstart env write` and `init` fail env injection if the project has no certificate |
224226

225227
## npm Distribution (Node Wrapper)
@@ -248,7 +250,7 @@ packaging/npm/
248250
3. If the platform package is missing, the shim prints a helpful error pointing to Homebrew or GitHub releases
249251

250252
**Release flow (automated and active):** the `publish-npm` job in `release.yml`:
251-
1. Downloads release archives and `checksums.txt` from the GitHub release
253+
1. Downloads release archives (`agora-cli_v*`, v0.2.1+) and `checksums.txt` from the GitHub release
252254
2. Verifies SHA-256 of every archive against `checksums.txt`; fails the job on mismatch
253255
3. Extracts the binary for each platform into the corresponding package's `bin/`
254256
4. Stamps the tag version into all `package.json` files (wrapper + 6 platform packages, including `optionalDependencies` values)

CHANGELOG.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,67 @@ Earlier entries pre-date this convention and only carry their version's compare
1515

1616
## [Unreleased]
1717

18+
## [0.2.1] - 2026-05-20
19+
20+
Automation hardening, quickstart reliability fixes, agent introspection and MCP progress improvements, and release-artifact rename.
21+
22+
### Added
23+
24+
- Emit a `clone:override` progress event when `AGORA_QUICKSTART_<TEMPLATE>_REPO_URL` overrides the clone URL, so workshop and CI runs can confirm which fork they cloned.
25+
- Document `AGORA_QUICKSTART_<TEMPLATE>_REPO_URL` in `agora env-help` and the automation reference.
26+
- Add MCP `notifications/progress` forwarding for long-running tools when clients pass `_meta.progressToken`.
27+
- Add `headlessSafe` and `interactivity` metadata to `agora introspect --json` command records.
28+
- Add automation contract tests for representative `docs/automation.md` examples.
29+
30+
### Changed
31+
32+
- `agora open` now defaults to URL-only behavior in CI and non-TTY sessions (unless `--browser` is explicitly passed), and adds explicit `--browser` / `--no-browser` conflict validation.
33+
- `agora init` now requires `--template` in non-interactive (`--yes`) runs instead of silently selecting the first available template; init JSON output now includes `projectSelectionReason` for deterministic agent branching.
34+
- Block installer-managed `agora upgrade` in CI unless `AGORA_ALLOW_UPGRADE_IN_CI=1` is set; blocked runs return `status: "manual"` with `ciBlocked: true` and suggest `agora upgrade --check --json`.
35+
- Align `go.mod` module path with the public repository: `github.com/AgoraIO/cli` (replaces the workspace-only `github.com/agora/cli-workspace/agora-cli-go` path).
36+
- Rename GitHub release archives from `agora-cli-go_v*` to `agora-cli_v*` starting in v0.2.1 (install scripts and docs use the new name). `agora upgrade` selects the archive prefix from the target release version: `agora-cli-go_*` for v0.1.7–v0.2.0, `agora-cli_*` for v0.2.1+.
37+
38+
### Fixed
39+
40+
- Disable git credential helpers for quickstart clone subprocesses so `agora init` and `agora quickstart create` succeed in non-interactive agent and CI environments without macOS keychain access.
41+
- Pass `--` before the repo URL and target directory on `git clone` so values starting with `-` cannot be parsed as git options.
42+
- Fail fast with `QUICKSTART_GIT_MISSING` when `git` is not on `PATH`, with `QUICKSTART_REF_INVALID` for malformed `--ref` values, and with `QUICKSTART_REPO_OVERRIDE_INVALID` when the env override URL is malformed, instead of surfacing cryptic git errors.
43+
44+
### Upgrade notes
45+
46+
**Direct installer (`install.sh` / `install.ps1`):** Fresh installs and re-runs of the installer fetch the correct archive name automatically. If you are on v0.1.7 through v0.2.0 and `agora upgrade` fails to download v0.2.1+, re-run the installer once:
47+
48+
```bash
49+
curl -fsSL https://raw.githubusercontent.com/AgoraIO/cli/main/install.sh | sh
50+
```
51+
52+
Those older binaries only know the `agora-cli-go_*` archive prefix; after one reinstall, future upgrades use `agora-cli_*`.
53+
54+
**npm / package managers:** Use your package manager as usual (`npm update -g agoraio-cli`, etc.). Archive naming does not affect npm installs.
55+
56+
**Automation scripts:**
57+
58+
| Before | After |
59+
| ------ | ----- |
60+
| `agora init demo --yes` (silent template pick) | `agora init demo --template nextjs --yes` (required) |
61+
| `agora upgrade` in CI jobs | `agora upgrade --check --json` (non-mutating) |
62+
| `agora open --target docs` in CI | URL-only by default; pass `--browser` to force launch |
63+
64+
Set `AGORA_ALLOW_UPGRADE_IN_CI=1` only when a CI job intentionally needs to mutate the installed binary.
65+
66+
### Documentation
67+
68+
- Align `AGENTS.md` with shipped `project doctor --deep` behavior and document current `agora open` browser-launch rules.
69+
- Expand `docs/automation.md` and `docs/llms.txt` with MCP transport/auth caveats, headless CI guidance, init/upgrade automation fields, and `agora env-help` discovery pointers.
70+
- Update agent quickstart rule and skills examples to include deterministic init (`--new-project`) defaults.
71+
- Document MCP progress notifications (`_meta.progressToken`) in `docs/automation.md`, `docs/llms.txt`, `agora mcp serve` help, and the skills catalog.
72+
- Document envelope versioning policy, login NDJSON parsing, raw `project env` hints, and boolean config flag syntax (`--flag=false`) in automation and troubleshooting docs.
73+
- Surface enterprise install paths for locked-down environments in `README.md` and `docs/install.md`.
74+
- Fix contributor clone path in `CONTRIBUTING.md` to match the canonical `git clone … && cd cli/` layout.
75+
- Align npm package `repository.directory` paths with the repo root layout and update the issue template docs link.
76+
- Document archive naming and upgrade migration in `docs/install.md` and `docs/troubleshooting.md`.
77+
- Add a GitHub Pages skip link for keyboard navigation.
78+
1879
## [0.2.0] - 2026-05-05
1980

2081
### Added
@@ -199,7 +260,8 @@ Earlier entries pre-date this convention and only carry their version's compare
199260
- Support machine-readable JSON output for automation and agent workflows.
200261
- Ship automated release packaging through GoReleaser, including cross-platform archives, Linux packages, Homebrew, Scoop, npm wrapper packages, Docker images, and install scripts.
201262

202-
[Unreleased]: https://github.com/AgoraIO/cli/compare/v0.2.0...HEAD
263+
[Unreleased]: https://github.com/AgoraIO/cli/compare/v0.2.1...HEAD
264+
[0.2.1]: https://github.com/AgoraIO/cli/compare/v0.2.0...v0.2.1
203265
[0.2.0]: https://github.com/AgoraIO/cli/compare/v0.1.9...v0.2.0
204266
[0.1.9]: https://github.com/AgoraIO/cli/compare/v0.1.8...v0.1.9
205267
[0.1.8]: https://github.com/AgoraIO/cli/compare/v0.1.7...v0.1.8

0 commit comments

Comments
 (0)