diff --git a/.release-please-manifest.json b/.release-please-manifest.json index d1f09730f..30e6f9c78 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "9.0.0-beta.3" + ".": "9.0.0-beta.4" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 17a8bf90d..02846df99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -143,6 +143,45 @@ change public consumer defaults. See [format-kind migration](docs/canonical-format-kinds-migration.md). +## [9.0.0-beta.4](https://github.com/adcontextprotocol/adcp-client-python/compare/v9.0.0-beta.3...v9.0.0-beta.4) (2026-10-16) + + +### ⚠ BREAKING CHANGES + +* **reporting:** row storage tables, provider inputs and locators are renamed to the AdCP names above, REPORTING_ROW_ENCODING_V1 is replaced by REPORTING_ROW_FORMAT_V1 and REPORTING_ROW_ALGORITHM_V1, and {period_date} renders the source timezone date as YYYY-MM-DD instead of the UTC date as yyyy/MM/dd, and a custom key template without {revision_key} is refused unless its binding is read_only. create_schema migrates existing databases; stop older writers first. + +### Features + +* **client:** cap agent response size by default ([#1504](https://github.com/adcontextprotocol/adcp-client-python/issues/1504)) ([d5195a9](https://github.com/adcontextprotocol/adcp-client-python/commit/d5195a9525239124416741808addcbcf0f0a8a98)) +* **identity:** add experimental AdCP 3.3 agent identity ([#1502](https://github.com/adcontextprotocol/adcp-client-python/issues/1502)) ([3961d1c](https://github.com/adcontextprotocol/adcp-client-python/commit/3961d1cf7a235c4d45673370521b1aec9bc4c496)) +* **reporting:** add current-revision host reads ([#1473](https://github.com/adcontextprotocol/adcp-client-python/issues/1473)) ([13ca2c5](https://github.com/adcontextprotocol/adcp-client-python/commit/13ca2c502818777bf1eef2f2cd5e8bfbac196dcf)) +* **reporting:** add GCS, S3 and Azure Blob row providers ([#1468](https://github.com/adcontextprotocol/adcp-client-python/issues/1468)) ([fde127d](https://github.com/adcontextprotocol/adcp-client-python/commit/fde127db8992bc6f62303ebbfcbf8f0617be33f4)) +* **reporting:** add the shared host change feed and registered consumers ([#1472](https://github.com/adcontextprotocol/adcp-client-python/issues/1472)) ([b7012e0](https://github.com/adcontextprotocol/adcp-client-python/commit/b7012e05591f3e7823314ab39d65cb1cc723324a)) +* **reporting:** align row storage with AdCP stored names and the period date rule ([#1485](https://github.com/adcontextprotocol/adcp-client-python/issues/1485)) ([47084e8](https://github.com/adcontextprotocol/adcp-client-python/commit/47084e83a4a2cfd879db4127e26c3fb54fd73dd8)) +* **reporting:** migrate legacy inline rows to verified chunks ([#1466](https://github.com/adcontextprotocol/adcp-client-python/issues/1466)) ([bf7e3a6](https://github.com/adcontextprotocol/adcp-client-python/commit/bf7e3a62b38975ed037bc8dbd440bfb2ebe440d4)) +* **reporting:** retire expired periods with tombstones and holds ([#1474](https://github.com/adcontextprotocol/adcp-client-python/issues/1474)) ([c527b18](https://github.com/adcontextprotocol/adcp-client-python/commit/c527b1866bf544ca0926eb844b316136a2172a5c)) +* **reporting:** schedule retention in the production worker ([#1476](https://github.com/adcontextprotocol/adcp-client-python/issues/1476)) ([5c23598](https://github.com/adcontextprotocol/adcp-client-python/commit/5c23598b420725987c3ed0f79c923ead19f1d6be)) +* **reporting:** store revision rows as verified chunks in PostgreSQL ([#1464](https://github.com/adcontextprotocol/adcp-client-python/issues/1464)) ([54a133e](https://github.com/adcontextprotocol/adcp-client-python/commit/54a133ed8e1723e20f1d575b68af88e214afede3)) +* **reporting:** sweep abandoned uploads and prune expired row sets ([#1469](https://github.com/adcontextprotocol/adcp-client-python/issues/1469)) ([e32daba](https://github.com/adcontextprotocol/adcp-client-python/commit/e32daba5c78b5c49ebeee25730b42acb0a1c72d6)) +* **reporting:** write row chunks to object storage with fenced uploads ([#1467](https://github.com/adcontextprotocol/adcp-client-python/issues/1467)) ([83f62c9](https://github.com/adcontextprotocol/adcp-client-python/commit/83f62c9bcef7cca65abae376fe796e6df13eb064)) + + +### Bug Fixes + +* **reporting:** answer unreadable exact revision reads with SERVICE_UNAVAILABLE ([#1471](https://github.com/adcontextprotocol/adcp-client-python/issues/1471)) ([623b2c1](https://github.com/adcontextprotocol/adcp-client-python/commit/623b2c1603d2c59dc3d5429f7e44c469a3550fcb)) +* **reporting:** keep feed consumer checkpoints forward-only ([#1515](https://github.com/adcontextprotocol/adcp-client-python/issues/1515)) ([0de3f57](https://github.com/adcontextprotocol/adcp-client-python/commit/0de3f57c7e3a434c6d774e880663ca8c4908841c)), closes [#1509](https://github.com/adcontextprotocol/adcp-client-python/issues/1509) +* **reporting:** keep retention moving past stuck work and make it visible ([#1482](https://github.com/adcontextprotocol/adcp-client-python/issues/1482)) ([4623104](https://github.com/adcontextprotocol/adcp-client-python/commit/462310439d05b92cdfe510b9aac571a8a9f28f0c)) +* **reporting:** reject a change page that crossed a concurrent prune ([#1516](https://github.com/adcontextprotocol/adcp-client-python/issues/1516)) ([73d1261](https://github.com/adcontextprotocol/adcp-client-python/commit/73d12611effa9adeb8a588992428a60864e6a006)), closes [#1508](https://github.com/adcontextprotocol/adcp-client-python/issues/1508) +* **reporting:** truncate account feed pages at the first in-flight change and match JS backoff ([#1483](https://github.com/adcontextprotocol/adcp-client-python/issues/1483)) ([21f4216](https://github.com/adcontextprotocol/adcp-client-python/commit/21f4216addc5e39f30b076288889b57f8d1cb455)) +* **server:** advertise compact output schemas so discovery is servable ([#1507](https://github.com/adcontextprotocol/adcp-client-python/issues/1507)) ([d908aaa](https://github.com/adcontextprotocol/adcp-client-python/commit/d908aaa98caa88e5b0cd992037eb5010dc009da1)) +* **server:** collect stranded defs, memoize the escape hatch, soften a claim ([#1513](https://github.com/adcontextprotocol/adcp-client-python/issues/1513)) ([fc285b0](https://github.com/adcontextprotocol/adcp-client-python/commit/fc285b057406f0e715412d1d53bb86a281503fb2)), closes [#1507](https://github.com/adcontextprotocol/adcp-client-python/issues/1507) +* **types:** model macro_resolution_capabilities on Format ([#1505](https://github.com/adcontextprotocol/adcp-client-python/issues/1505)) ([eb66de8](https://github.com/adcontextprotocol/adcp-client-python/commit/eb66de84c7445abe0de185947d886290b08eb14f)) + + +### Performance Improvements + +* **types:** reduce canonical creative serialization overhead ([#1521](https://github.com/adcontextprotocol/adcp-client-python/issues/1521)) ([bde770b](https://github.com/adcontextprotocol/adcp-client-python/commit/bde770b76ab9c07fd6e8bb11394dd868ddb09984)) + ## [9.0.0-beta.3](https://github.com/adcontextprotocol/adcp-client-python/compare/v9.0.0-beta.2...v9.0.0-beta.3) (2026-10-10) diff --git a/pyproject.toml b/pyproject.toml index 2aebdd30a..2e420f9d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "adcp" -version = "9.0.0b3" +version = "9.0.0b4" description = "Official Python client for the Ad Context Protocol (AdCP)" authors = [ {name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}