From 9b945de7c04c44b8ea2a593901822a9b94a39d50 Mon Sep 17 00:00:00 2001 From: DavidKoleczek <45405824+DavidKoleczek@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:09:23 -0400 Subject: [PATCH] chore(release): cut amplifier-agent 0.14.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Engine-only release. Adds the gemini and vllm provider modules as valid provider.module host-config values, and carries the Windows durability fixes for the serve lifecycle and UTF-8/BOM file reads. No wrapper release: wrappers/typescript and wrappers/python-py are unchanged since wrapper-v0.7.1. PROTOCOL_VERSION stays at 0.3.0, so no cross-component coordination is required. 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 323b147e..350528dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.14.0] — 2026-08-19 + ### Added - **Gemini provider.** `provider.module: "gemini"` is now a valid host-config value, @@ -57,6 +59,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 is the user-profile ACL. POSIX behaviour is unchanged: enforcement still fails closed rather than writing a plaintext `api_key` at a looser mode. +- **Windows-authored files are read as UTF-8 with an optional BOM.** Windows tooling + (Notepad, Windows PowerShell 5.1 `Set-Content`/`Out-File`) writes UTF-8 with a + byte-order mark by default. Read as plain `utf-8`, that mark survives as a leading + U+FEFF that is invisible in every editor but defeats any check anchored at position 0. + Three consequences, all now fixed and all no-ops on POSIX and for BOM-free files: + - A BOM-prefixed agent `.md` spawned a sub-agent with the wrong tools, or none, and + said nothing. The frontmatter check `text.startswith("---")` was false, so the whole + file was treated as a plain instruction and `tools`, `hooks`, `model_role`, and + `meta` were silently dropped from the overlay. + - A BOM-prefixed `credentials.json` was reported as corrupt when it was valid. The BOM + reached `json.loads`, and the failure surfaced as "not valid JSON" — wrong and + unactionable. + - A genuinely non-UTF-8 `credentials.json` killed the CLI with a raw traceback. The + read decoded with the platform default (cp1252 on Windows) and the resulting + `UnicodeDecodeError` escaped a handler that caught only `JSONDecodeError`, taking + down `auth list`/`status`/`set` and every provider credential lookup behind `run`, + `models`, and `serve`. It is now a clean error naming the file and the remediation. + +### Notes + +- **Windows installs need git long-path support enabled first.** This repo ships + evaluation fixtures whose paths reach ~178 characters, and `uv tool install --from + git+...` clones into a deep temporary build directory, pushing them past Windows' + 260-character `MAX_PATH`. The install fails during checkout, before the build starts, + with `fatal: cannot create directory ... Filename too long`. Run + `git config --global core.longpaths true` once before installing; see `docs/INSTALL.md` + for the accompanying OS-level `LongPathsEnabled` registry key. + ## [0.13.0] — 2026-08-18 ### Added diff --git a/pyproject.toml b/pyproject.toml index b72e9f1b..b29ababc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = 'amplifier-agent' -version = '0.13.0' +version = '0.14.0' requires-python = '>=3.12' license = 'MIT' dependencies = [ diff --git a/uv.lock b/uv.lock index 66145a54..1fc8f9d7 100644 --- a/uv.lock +++ b/uv.lock @@ -16,7 +16,7 @@ members = [ [[package]] name = "amplifier-agent" -version = "0.13.0" +version = "0.14.0" source = { editable = "." } dependencies = [ { name = "amplifier-foundation" },