From e3fa874343c8d25ac75a8a018502afd912de12c8 Mon Sep 17 00:00:00 2001 From: parvahuja <17094219+parvahuja@users.noreply.github.com> Date: Mon, 3 Aug 2026 19:22:24 +0000 Subject: [PATCH] chore: release `v0.10.0` --- .changelog/eager-sharks-drink.md | 5 ----- .changelog/error-hints.md | 5 ----- .changelog/good-doves-play.md | 5 ----- .changelog/jolly-fish-shout.md | 5 ----- .changelog/mcp-challenge-core-metadata.md | 5 ----- .changelog/mcp-v1-compat.md | 5 ----- .changelog/multipart-retry-body.md | 5 ----- .changelog/preserve-receipt-subscription-id.md | 5 ----- .changelog/safe-bees-bow.md | 5 ----- CHANGELOG.md | 17 +++++++++++++++++ pyproject.toml | 2 +- 11 files changed, 18 insertions(+), 46 deletions(-) delete mode 100644 .changelog/eager-sharks-drink.md delete mode 100644 .changelog/error-hints.md delete mode 100644 .changelog/good-doves-play.md delete mode 100644 .changelog/jolly-fish-shout.md delete mode 100644 .changelog/mcp-challenge-core-metadata.md delete mode 100644 .changelog/mcp-v1-compat.md delete mode 100644 .changelog/multipart-retry-body.md delete mode 100644 .changelog/preserve-receipt-subscription-id.md delete mode 100644 .changelog/safe-bees-bow.md diff --git a/.changelog/eager-sharks-drink.md b/.changelog/eager-sharks-drink.md deleted file mode 100644 index 7a41786..0000000 --- a/.changelog/eager-sharks-drink.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: minor ---- - -Added a transport-neutral `PaymentRuntime` class that provides reusable primitives for matching payment challenges and creating credentials without depending on HTTPX. Refactored `PaymentTransport` and `Client` to accept either a `methods` list or a pre-built `runtime` instance, and consolidated the `Method` protocol into `mpp.runtime`. diff --git a/.changelog/error-hints.md b/.changelog/error-hints.md deleted file mode 100644 index abe73f3..0000000 --- a/.changelog/error-hints.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: minor ---- - -Add `hint` field to `PaymentError` problem details. `PaymentRequiredError`, `MalformedCredentialError`, and `PaymentMethodUnsupportedError` now include a default hint pointing users to wallet documentation. diff --git a/.changelog/good-doves-play.md b/.changelog/good-doves-play.md deleted file mode 100644 index 1638e2d..0000000 --- a/.changelog/good-doves-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Added Python 3.14 to the list of declared supported versions in package classifiers and added Python 3.11 to the CI test matrix. diff --git a/.changelog/jolly-fish-shout.md b/.changelog/jolly-fish-shout.md deleted file mode 100644 index bf5c3b8..0000000 --- a/.changelog/jolly-fish-shout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: minor ---- - -Improved HTTP challenge parsing to correctly split merged `WWW-Authenticate` headers with quoted commas, added pass-through support for streaming request bodies on ordinary and unrelated 402 responses, and introduced `PaymentOutcomeUnknownError` (consolidated from the MCP client into core) to surface explicit errors when a paid retry outcome is uncertain due to network failures or task cancellation. diff --git a/.changelog/mcp-challenge-core-metadata.md b/.changelog/mcp-challenge-core-metadata.md deleted file mode 100644 index f5ac670..0000000 --- a/.changelog/mcp-challenge-core-metadata.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Preserved MCP challenge metadata when converting MCP challenges to core payment challenges. diff --git a/.changelog/mcp-v1-compat.md b/.changelog/mcp-v1-compat.md deleted file mode 100644 index 2fa95f7..0000000 --- a/.changelog/mcp-v1-compat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Prevent the optional MCP SDK from resolving to incompatible 2.x releases. diff --git a/.changelog/multipart-retry-body.md b/.changelog/multipart-retry-body.md deleted file mode 100644 index d06904f..0000000 --- a/.changelog/multipart-retry-body.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Handle multipart (`files=`) and streaming bodies on paid 402 retry. Multipart bodies are buffered and replayed identically; async generator bodies raise `PaymentError` before any I/O. diff --git a/.changelog/preserve-receipt-subscription-id.md b/.changelog/preserve-receipt-subscription-id.md deleted file mode 100644 index 23e21d6..0000000 --- a/.changelog/preserve-receipt-subscription-id.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Preserve `subscriptionId` when parsing and formatting payment receipts. diff --git a/.changelog/safe-bees-bow.md b/.changelog/safe-bees-bow.md deleted file mode 100644 index 217d1b3..0000000 --- a/.changelog/safe-bees-bow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -pympp: patch ---- - -Fixed MCP payment error detection to support the current MCP SDK's `McpError` shape, where error code and data are nested under an `error` attribute rather than directly on the exception. Added helper functions `_error_code` and `_error_data` to extract these fields from both error shapes. diff --git a/CHANGELOG.md b/CHANGELOG.md index b10a78a..f78fe3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 0.10.0 (2026-08-03) + +### Minor Changes + +- Added a transport-neutral `PaymentRuntime` class that provides reusable primitives for matching payment challenges and creating credentials without depending on HTTPX. Refactored `PaymentTransport` and `Client` to accept either a `methods` list or a pre-built `runtime` instance, and consolidated the `Method` protocol into `mpp.runtime`. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Add `hint` field to `PaymentError` problem details. `PaymentRequiredError`, `MalformedCredentialError`, and `PaymentMethodUnsupportedError` now include a default hint pointing users to wallet documentation. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Improved HTTP challenge parsing to correctly split merged `WWW-Authenticate` headers with quoted commas, added pass-through support for streaming request bodies on ordinary and unrelated 402 responses, and introduced `PaymentOutcomeUnknownError` (consolidated from the MCP client into core) to surface explicit errors when a paid retry outcome is uncertain due to network failures or task cancellation. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) + +### Patch Changes + +- Added Python 3.14 to the list of declared supported versions in package classifiers and added Python 3.11 to the CI test matrix. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Preserved MCP challenge metadata when converting MCP challenges to core payment challenges. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Prevent the optional MCP SDK from resolving to incompatible 2.x releases. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Handle multipart (`files=`) and streaming bodies on paid 402 retry. Multipart bodies are buffered and replayed identically; async generator bodies raise `PaymentError` before any I/O. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Preserve `subscriptionId` when parsing and formatting payment receipts. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) +- Fixed MCP payment error detection to support the current MCP SDK's `McpError` shape, where error code and data are nested under an `error` attribute rather than directly on the exception. Added helper functions `_error_code` and `_error_data` to extract these fields from both error shapes. (by @ParvAhuja, [#202](https://github.com/tempoxyz/pympp/pull/202)) + ## 0.9.1 (2026-07-01) ### Patch Changes diff --git a/pyproject.toml b/pyproject.toml index 7596fbc..5d654ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pympp" -version = "0.9.1" +version = "0.10.0" description = "Python SDK for the Machine Payments Protocol (MPP)" readme = "README.md" requires-python = ">=3.11"