Skip to content

Releases: polyai/adk

v0.6.0

27 Mar 17:23
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.6.0 (2026-03-27)

This release is published under the Apache-2.0 License.

Features

  • Add resource caching and progress spinner for init/pull/branch (#50, 2d4fc0a)

Summary

Batch MultiResourceYamlResource writes during poly init so each YAML file is written once instead of once per resource, and add a progress spinner to init, pull, and branch switch so the CLI doesn't appear stuck on large projects.

Also edited CONTRIBUTING.md to edit the clone url - changed org to PolyAI.

Motivation

poly init is very slow on projects with many pronunciations (or other multi-resource YAML types) because save() rewrites the full YAML file for every single item. On large projects like pacden, the process appears stuck with no output. The save_to_cache + write_cache_to_file pattern already exists for poly pull — this reuses it for init and adds a progress spinner across all three commands.

Changes

  • Use save_to_cache=True for all MultiResourceYamlResource saves during init_project(), then flush to disk once via write_cache_to_file() - Add an optional on_save(current, total) callback to init_project(), pull_project(), _update_multi_resource_yaml_resources(), _update_pulled_resources(), and switch_branch() for progress reporting - Wire up console.status() spinners in cli.py for init, pull, and branch switch, using nullcontext to skip the spinner in --json mode - Progress counter includes both multi-resource (per batch total) and non-multi-resource types for an accurate total

  • CONTRIBUTING.md to edit the clone url - changed org from PolyAI-LDN to PolyAI.

Test strategy

  • Added/updated unit tests - [x] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [x] pytest passes (361 tests, 0 failures) - [x] No breaking changes to the poly CLI interface (or migration path documented) - [x] Commit messages follow conventional commits

Screenshots / Logs Before: Screenshot 2026-03-25 at 10 04 14 PM

After: Screenshot 2026-03-25 at 10 04 01 PM


Detailed Changes: v0.5.1...v0.6.0

v0.5.1

27 Mar 11:07
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.5.1 (2026-03-27)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Display branch name instead of branch id (#45, 5a54240)

Summary Display new branch name in CLI when the tool switches branch

Motivation On push when creating a new branch, users would be shown branch ID not new branch name

Changes

  • Change logger level for some logs to hide on usual CLI usage - Make it more clear when a branch id is used in logs - When branch_id changes, output this in CLI with new branch name - Update auto branch name to exclude sdk-user

Test strategy

  • Added/updated unit tests - [x] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [x] pytest passes - [x] No breaking changes to the poly CLI interface (or migration path documented) - [x] Commit messages follow conventional commits

Screenshots / Logs Screenshot 2026-03-26 at 15 54 24


Co-authored-by: Copilot [email protected]


Detailed Changes: v0.5.0...v0.5.1

v0.5.0

26 Mar 14:33
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.5.0 (2026-03-26)

This release is published under the Apache-2.0 License.

Features

  • cli: Machine-readable --json, projection-based pull/push, and serialized push commands (#41, cb91e2a)

Summary

Adds a global-style --json mode across poly subcommands so stdout is a single JSON object for scripting and CI. Introduces --from-projection / optional projection output for init and pull, and --output-json-commands on push to include the queued Agent Studio commands (as dicts). Moves console helpers under poly.output and adds json_output helpers (including protobuf → JSON via MessageToDict).

Motivation

Operators and automation need stable, parseable CLI output and the ability to drive pull/push from a captured projection (without hitting the projection API). Exposing staged push commands supports dry-run review and integration testing.

Closes #23

Changes

  • Wire json_parent (--json) into relevant subparsers; many code paths now emit structured JSON and exit with non-zero on failure where appropriate. - Add --from-projection (JSON string or - for stdin) to pull and push; SyncClientHandler.pull_resources uses an inline projection when provided instead of fetching. - Add --output-json-projection on init / pull (and related flows) to include the projection in JSON output when requested. - Add --output-json-commands on push to append serialized commands to the JSON payload; push_project returns (success, message, commands). - pull_project returns (files_with_conflicts, projection); pull_resources returns (resources, projection). - New poly/output/json_output.py (json_print, commands_to_dicts); relocate console.py to poly/output/console.py and update imports. - Update project_test mocks/expectations for new return shapes; uv.lock updated for dependencies.

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Note for reviewers: The CLI remains backward compatible (new flags only). AgentStudioProject.pull_project / push_project (and pull_resources on the handler) change return types vs main; any direct Python callers must be updated to unpack the new tuples and optional projection_json argument.

Screenshots / Logs


Co-authored-by: Oliver Eisenberg [email protected]

Co-authored-by: Claude Sonnet 4.6 [email protected]


Detailed Changes: v0.4.1...v0.5.0

v0.4.1

26 Mar 14:06
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.4.1 (2026-03-26)

This release is published under the Apache-2.0 License.

Bug Fixes

Summary Fix issue where merges were marked as successful when there is an internal API error

Motivation

This error breaks pipelines that rely on this output

Closes #

Changes

  • Make success response more explicit instead of relying on errors/conflicts lists

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [x] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [x] pytest passes - [x] No breaking changes to the poly CLI interface (or migration path documented) - [x] Commit messages follow conventional commits

Screenshots / Logs

  • Guard uv.lock checkout in coverage workflow (#42, 2383405)

Summary

  • Prevent coverage CI from failing when uv.lock is absent on a branch
  • Wrap both git checkout -- uv.lock calls with a conditional git rev-parse --verify check before and after the base branch checkout step

🤖 Generated with Claude Code

Co-authored-by: Claude Sonnet 4.6 [email protected]

Chores

  • Add pytest-cov and coverage to dev dependencies (#36, 649ccb7)

Summary

  • Adds pytest-cov>=6.0.0 and coverage>=7.0.0 to the [dev] optional dependencies in pyproject.toml

Test plan

  • Run uv pip install -e ".[dev]" and verify pytest-cov and coverage install successfully image

🤖 Generated with Claude Code


Co-authored-by: Claude Sonnet 4.6 [email protected]

Documentation

Summary

Motivation

Closes #

Changes

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Screenshots / Logs


Detailed Changes: v0.4.0...v0.4.1

v0.4.0

25 Mar 10:03
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.4.0 (2026-03-25)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Update API key reference in auto-update-docs workflow (#38, d9de6fe)

Summary

Motivation

Closes #

Changes

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Screenshots / Logs


Co-authored-by: Benjamin Levin [email protected]

Documentation

Summary

Adds a GitHub Actions workflow that automatically keeps the docs in sync with the codebase. Every time a PR is merged to main that touches `src/`, the workflow diffs what changed, sends the diff and all current docs to Claude, and opens a new PR with any suggested updates for human review before they are merged.

Motivation

The docs are fully hand-maintained today. Any new CLI flag, changed command behaviour, new resource type, or schema change requires a manual docs PR — and that update often doesn't happen. This automates the detection and drafting of those updates.

Changes

  • `.github/workflows/auto-update-docs.yaml` — triggers on push to main when `src/` changes, runs the agent script, opens a docs PR if anything was updated - `docs/scripts/update_docs.py` — gets the git diff, reads all current markdown files (reference pages first), calls Claude with both, and writes back any files Claude says need updating. PR body written to `/tmp/pr_summary.md` for the workflow to use

Test strategy

  • N/A (docs, config, or trivial change)

The `build-docs.yaml` workflow runs `mkdocs build --strict` on every PR — that is the validation gate for the docs side. The agent workflow is triggered by source code merges, not this PR, so it will not self-test. To test manually: merge a code PR touching `src/` and check the Actions tab for the `Auto-update docs` run.

Checklist

Setup required

One secret must be added before the workflow will do anything:

Settings → Secrets and variables → Actions → New repository secret

| Name | Value | |---|---| | `ANTHROPIC_API_KEY` | Anthropic API key (personal or shared team key) |

`GITHUB_TOKEN` (used to open the docs PR) is provided automatically by GitHub — no setup needed.

How it works

  1. Engineer merges a PR that changes `src/` 2. `auto-update-docs` workflow fires and diffs `HEAD~1..HEAD` 3. Claude reads the diff and all 32 docs pages (reference pages first), identifies anything stale 4. Script writes updated files to disk; PR body written to `/tmp/pr_summary.md` 5. Workflow opens a PR: `docs: auto-update from ` 6. Engineer reviews, edits if needed, and merges

Co-authored-by: Claude Sonnet 4.6 [email protected]

  • Removing the em-dashes from the docs (#33, e643138)

Summary

Motivation

Closes #

Changes

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Screenshots / Logs

Summary

Update licensing page to point to licenses.json. Also include missing MLP license text Fixes deployment for docs

Motivation

Use licenses.json as the one source of truth, to avoid having to maintain two lists

Changes

  • Update main license info, remove table and point to licenses.json - Remove GNU license text - Add MLP license text - Update docs build and deploy steps to point to the correct place

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Co-authored-by: Aaron Forinton [email protected]

Summary

Documents the poly docs --output flag and the rules file workflow for AI coding tools across the CLI reference and Build an agent tutorial.

Motivation

Discussions in Slack

Closes #

Changes

Test strategy

  • Added/updated unit tests - [ ] Manual CLI testing (poly <command>) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [ ] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits

Screenshots / Logs

Features

Summary

- Adds support for creating API Integrations using `yaml` files. - API Secrets are still managed by the UI - Updates docs

Motivation

Aligns with Agent Studio features

Changes

  • API Integrations yaml file can be created in the /config dir.

Test strategy

  • Added/updated unit tests - [x] Manual CLI testing (poly <command>) - [x] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass - [x] pytest passes - [x] No breaking changes to the poly CLI interface (or migration path documented) - [x] Commit messages follow conventional commits

Screenshots / Logs


Detailed Changes: v0.3.3...v0.4.0

v0.3.3

19 Mar 10:34
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.3.3 (2026-03-19)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Fix merge for multiresourceyaml resources (#122) (#28, 054d552)

Summary Fix incorrect merge behaviour for MultiResourceYamlResource types by performing the 3-way merge at the file level rather than per-resource.

Motivation MultiResourceYamlResource types (e.g. entities) store multiple resources in a single YAML file. The previous code performed the 3-way merge per-resource and then wrote each resource individually, which meant the common ancestor used for the merge was wrong and resources from the same file would overwrite each other. It would also crash. <img width="415" height="133" alt="image (1)"

src="https://github.com/user-attachments/assets/388eff5f-2185-4a5b-ab5f-0b32f866452d" />

Changes - Before the merge loop, serialise the original resources into a file-level cache to use as the common ancestor - Skip the per-resource string merge for MultiResourceYamlResource types during the main loop; instead accumulate them into the cache - After the main loop, perform the 3-way merge at the file level and write the result - Gate write_cache_to_file behind force mode, since non-force mode now handles writing via the file-level merge loop

Test strategy - [x] Added/updated unit tests - [x] Manual CLI testing (poly pull) - [x] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

Checklist - [ ] ruff check . and ruff format --check . pass - [x] pytest passes - [ ] No breaking changes to the poly CLI interface (or migration path documented) - [ ] Commit messages follow conventional commits - [ ] ## Screenshots / Logs Screenshot 2026-03-13 at 18 57 34


Co-authored-by: Copilot Autofix powered by AI [email protected]


Detailed Changes: v0.3.2...v0.3.3

v0.3.2

18 Mar 17:51
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.3.2 (2026-03-18)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Add missing variable referencing sms (#29, c1469f7)

Summary SMS text should be able to reference variables, add this with validation

Changes

  • Have variable swap for SMS templates
  • Add validations

Test strategy

  • Added/updated unit tests
  • Manual CLI testing (poly <command>)
  • Tested against a live Agent Studio project
  • N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass
  • pytest passes
  • No breaking changes to the poly CLI interface (or migration path documented)
  • Commit messages follow conventional commits

Detailed Changes: v0.3.1...v0.3.2

v0.3.1

17 Mar 14:45
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.3.1 (2026-03-17)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Reference variables even if commented out (#21, 4298d09)

Summary AS allows references even if commented out. Align here

Changes

  • Don't remove comments when searching for variables

Test strategy

  • Added/updated unit tests
  • Manual CLI testing (poly <command>)
  • Tested against a live Agent Studio project
  • N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass
  • pytest passes
  • No breaking changes to the poly CLI interface (or migration path documented)
  • Commit messages follow conventional commits

Detailed Changes: v0.3.0...v0.3.1

v0.3.0

16 Mar 23:19
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.3.0 (2026-03-16)

This release is published under the Apache-2.0 License.

Features

  • Add shell completion for bash, zsh, and fish (#22, 2c563ff)

Summary

Adds a poly completion <shell> command that prints a shell completion script, enabling tab completion for all poly/adk commands, subcommands, and flags.

Motivation

Shell completion is a standard ergonomic feature for any CLI tool — especially one with 12+ subcommands and numerous flags. Without it, users must remember exact command names and flags, slowing down daily use. Every major comparable CLI (Google ADK, AWS AgentCore, gh, kubectl) ships with completion support.

Changes

  • Add argcomplete>=3.0.0 dependency (Apache 2.0 — passes license checks) - Call argcomplete.autocomplete(parser) in main() — this is the hook that makes tab completion work at runtime; it exits immediately when not in a completion context, so there is zero overhead for normal CLI usage - Add completion subparser with bash, zsh, fish choices and per-shell installation instructions in the help text - Add AgentStudioCLI.print_completion() classmethod - Both poly and adk entry points are registered in the generated scripts

Usage

# Zsh — add to ~/.zshrc eval "$(poly completion zsh)"

# Fish — add to ~/.config/fish/completions/poly.fish poly completion fish | source ```

## Test strategy

- [x] Added unit tests for all three shells and invalid shell rejection - [ ] Manual CLI testing (`poly <command>`) - [ ] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)

## Checklist

- [ ] `ruff check .` and `ruff format --check .` pass - [ ] `pytest` passes - [x] No breaking changes to the `poly` CLI interface (or migration path documented) - [x] Commit messages follow [conventional commits](https://www.conventionalcommits.org/)

---

**Detailed Changes**: [v0.2.3...v0.3.0](https://github.com/polyai/adk/compare/v0.2.3...v0.3.0)

v0.2.3

16 Mar 16:27
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.2.3 (2026-03-16)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Read ASR and DTMF if not included (#20, bc5add7)

Summary If ASR and DTMF not included, still read them as defaults

Motivation Would error if created without these fields

Changes

  • Filter on None not empty dicts

Test strategy

  • Added/updated unit tests
  • Manual CLI testing (poly <command>)
  • Tested against a live Agent Studio project
  • N/A (docs, config, or trivial change)

Checklist

  • ruff check . and ruff format --check . pass
  • pytest passes
  • No breaking changes to the poly CLI interface (or migration path documented)
  • Commit messages follow conventional commits

Screenshots / Logs


Detailed Changes: v0.2.2...v0.2.3