From e13bc6ae12068a6a5f8aa781b68748c75f6daf40 Mon Sep 17 00:00:00 2001 From: Alex Bujduveanu Date: Thu, 12 Nov 2026 21:27:48 +0000 Subject: [PATCH 1/2] chore(release): 0.8.2 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .github/workflows/publish.yaml | 2 +- pyproject.toml | 2 +- upstreamer-changelog.md | 7 +++++++ uv.lock | 6 +++--- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 934bd53..f63cf31 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -111,7 +111,7 @@ jobs: # Downstream-only patch releases: versions upstream never published, # each mapped to the upstream release its tree is ported from. case "$VERSION" in - 0.8.1) BASE_VERSION="0.8.0" ;; + 0.8.1 | 0.8.2) BASE_VERSION="0.8.0" ;; *) BASE_VERSION="$VERSION" ;; esac TAG="@openrouter/agent@${BASE_VERSION}" diff --git a/pyproject.toml b/pyproject.toml index 1bff328..4bde30d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ name = "openrouter-agent-sdk" # says plainly which upstream version it is a port of. The verifier enforces the # match against upstream's package.json during a sync. See the Package Version # section of .upstreamer/upstreamer.md. -version = "0.8.1" +version = "0.8.2" description = "Python port of @openrouter/agent: OpenRouter tool orchestration, streaming, state, and format compatibility." readme = "README.md" requires-python = ">=3.10" diff --git a/upstreamer-changelog.md b/upstreamer-changelog.md index 4f1ad77..6ba3704 100644 --- a/upstreamer-changelog.md +++ b/upstreamer-changelog.md @@ -1,5 +1,12 @@ # openrouter-agent-sdk Changelog +## 0.8.2 — stop-condition approval fix + +Downstream-only fix on top of the 0.8.0 port; no new upstream work. + +- **Security:** tool calls that run when a `stop_when` condition fires (final-response handling) now go through the same approval check as a normal turn. Calls that require approval, including tools with `require_approval=True`, pause as `awaiting_approval` instead of executing. Before this, they ran with no approval decision. +- `call_model` raises when two client tools share a name (shipped in 0.8.1 but missing from its notes). + ## 0.8.1 — approval fix Downstream-only fix on top of the 0.8.0 port; no new upstream work. diff --git a/uv.lock b/uv.lock index 0283852..a684e0a 100644 --- a/uv.lock +++ b/uv.lock @@ -18,7 +18,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "idna" }, - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3b/72/5562aabb8dd7181e8e860622a38bea08d17842b99ecd4c91f84ac95251b0/anyio-4.14.1.tar.gz", hash = "sha256:8d648a3544c1a700e3ff78615cd679e4c5c3f149904287e73687b2596963629e", size = 254831, upload-time = "2026-06-24T20:56:06.017Z" } wheels = [ @@ -151,7 +151,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -379,7 +379,7 @@ wheels = [ [[package]] name = "openrouter-agent-sdk" -version = "0.8.1" +version = "0.8.2" source = { editable = "." } dependencies = [ { name = "openrouter" }, From 765c80aa5b039dbc47eebf2acaff7ebb8dbcdcea Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 12 Nov 2026 21:27:58 +0000 Subject: [PATCH 2/2] chore(release): keep uv.lock change to the version line --- uv.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uv.lock b/uv.lock index a684e0a..771a470 100644 --- a/uv.lock +++ b/uv.lock @@ -18,7 +18,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "idna" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3b/72/5562aabb8dd7181e8e860622a38bea08d17842b99ecd4c91f84ac95251b0/anyio-4.14.1.tar.gz", hash = "sha256:8d648a3544c1a700e3ff78615cd679e4c5c3f149904287e73687b2596963629e", size = 254831, upload-time = "2026-06-24T20:56:06.017Z" } wheels = [ @@ -151,7 +151,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [