Skip to content

release: prepare Agora CLI v0.2.9 - #63

Open
digitallysavvy wants to merge 26 commits into
mainfrom
release/v0.2.9
Open

release: prepare Agora CLI v0.2.9#63
digitallysavvy wants to merge 26 commits into
mainfrom
release/v0.2.9

Conversation

@digitallysavvy

@digitallysavvy digitallysavvy commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Prepare Agora CLI v0.2.9 with consistent quickstart environment setup, official recipe-backed initialization, explicit project selection, Android onboarding, Windows installer compatibility, dependency maintenance, and expanded test coverage.

This release rollup incorporates #57, #58, #59, #60, #61, and #62, and adds official recipe discovery and initialization.

Changes

  • Add official recipe discovery with agora recipes list/show.
  • Add agora init --recipe <slug> as a second initialization source alongside built-in quickstarts.
  • Resolve versioned recipe detail metadata before project creation and use the API-provided cli.env contract without guessing paths or credential keys.
  • Record recipe provenance in .agora/project.json and expose recipe discovery and initialization through MCP and introspection.
  • Add the Android conversational AI client/server quickstart to agora init and agora quickstart.
  • Write Python and Go credentials to server/.env using AGORA_APP_ID and AGORA_APP_CERTIFICATE.
  • Remove generation of unsupported APP_ID and APP_CERTIFICATE names.
  • Add quickstart create --template-only for explicit clone-only workflows.
  • Prompt interactive users to select a project when no project context resolves.
  • Return QUICKSTART_PROJECT_REQUIRED before cloning in JSON, CI, non-TTY, and --yes workflows without a project.
  • Expose template-only quickstart creation through MCP.
  • Add PowerShell 7 detection and actionable execution-policy guidance.
  • Upgrade the Go toolchain to 1.26.6 to resolve reachable standard-library vulnerabilities.
  • Upgrade actions/setup-node and actions/setup-go to v7.
  • Expand quickstart, recipe, environment, project-resolution, and automation documentation.
  • Prepare the changelog and command reference for v0.2.9.

CLI behavior

Before v0.2.9, agora init did not accept recipes:

$ agora init recipe-smoke --recipe tool-calling
# --recipe was not supported

With v0.2.9, users can discover an official recipe and initialize it directly:

$ agora recipes list --type ai
$ agora recipes show tool-calling
$ agora init recipe-smoke \
    --recipe tool-calling \
    --project Testing \
    --dir /tmp/agora-recipe-smoke \
    --json

Representative result fields:

{
  "ok": true,
  "command": "init",
  "data": {
    "sourceType": "recipe",
    "recipe": "tool-calling",
    "projectAction": "existing",
    "envPath": "server/.env.local",
    "envStatus": "created",
    "status": "ready"
  }
}

For quickstarts without a resolvable project, clone-only behavior is now explicit:

# Before: silently cloned without binding an Agora project.
$ agora quickstart create python --yes

# After: select/provide a project, or request clone-only behavior explicitly.
$ agora quickstart create python --template-only

Testing

  • go test ./...
  • go vet ./...
  • make lint
  • Overall statement coverage: 74.9%
  • internal/cli statement coverage: 74.9%
  • cmd/gendocs statement coverage: 93.9%
  • Production recipe API smoke tests for all, ai, and rtc filtering, official-only results, detail metadata, and non-official 404 behavior
  • Production CLI smoke tests for agora recipes list/show
  • End-to-end agora init --recipe tool-calling using an existing test project

The end-to-end recipe smoke test confirmed project reuse, recipe resolution, repository cloning, upstream .git removal, API-defined server/.env.local creation, and recipe provenance in .agora/project.json.

Coverage includes public CLI behavior for:

  • Quickstart, recipe, and init workflows
  • Project and webhook commands
  • Config, telemetry, logout, and completion commands
  • Install doctor success and failure states
  • Upgrade checks, downloads, checksums, and archive extraction
  • Command-reference generation

Rollout status

The upstream quickstart migrations are complete:

The official recipes API is merged and deployed:

  • feat(recipes): add official recipe API and CLI setup metadata AgoraIO-Community/agora-recipes#35 is merged and deployed.
  • https://recipes.agora.io/api/v1 returns schema version 1 with 48 official recipes: 33 AI and 15 RTC.
  • The API exposes only official recipes; non-official recipe detail requests return RECIPE_NOT_FOUND.
  • Official recipes without cli.env remain discoverable and return RECIPE_INIT_UNSUPPORTED; their implementation repositories will be updated separately to support initialization.

Compatibility notes

  • agora quickstart create no longer silently performs a clone-only workflow when no project resolves. Use --template-only explicitly, select a project interactively, or provide --project for deterministic automation.
  • In non-interactive agora init runs, pass exactly one of --template or --recipe. Omitting the initialization source returns INIT_SOURCE_REQUIRED, replacing the template-specific QUICKSTART_TEMPLATE_REQUIRED error.

dependabot Bot and others added 20 commits July 28, 2026 12:53
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6 to 7.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
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.

3 participants