diff --git a/CHANGELOG.md b/CHANGELOG.md index c259ce3..8b1f4ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ stability commitment. See [ROADMAP.md](ROADMAP.md) for planned milestones. ## [Unreleased] +## [0.13.2] — 2026-10-07 + +Patch release: the PyPI package `admina`, an alias of `admina-framework`, +and the `mistral` extra on mistralai 3.x. The code of the framework is +unchanged from 0.13.1. + ### Added - The PyPI package `admina`: `pip install admina` installs @@ -22,6 +28,14 @@ stability commitment. See [ROADMAP.md](ROADMAP.md) for planned milestones. admina-framework from the same tag. `scripts/check-versions.py` checks its version and its admina-framework pin. +### Changed + +- The `mistral` extra accepts `mistralai>=1.0,<4`, and the lockfile has + mistralai 3.1.0. The Mistral adapter imports `Mistral` from + `mistralai.client` when the package root does not export it, and its + `chat.complete()` call and the response fields it reads (`choices`, + `message.content`, `usage.total_tokens`) are the same in 3.x. + ### Notes - `tests/test_iban_it.py::test_matching_time_on_long_runs` (a 50 ms budget @@ -2218,7 +2232,8 @@ environment in `docker-compose.benchmark.yml`. --- -[Unreleased]: https://github.com/admina-org/admina/compare/v0.13.1...HEAD +[Unreleased]: https://github.com/admina-org/admina/compare/v0.13.2...HEAD +[0.13.2]: https://github.com/admina-org/admina/compare/v0.13.1...v0.13.2 [0.13.1]: https://github.com/admina-org/admina/compare/v0.13.0...v0.13.1 [0.13.0]: https://github.com/admina-org/admina/compare/v0.12.2...v0.13.0 [0.12.2]: https://github.com/admina-org/admina/compare/v0.12.1...v0.12.2 diff --git a/ROADMAP.md b/ROADMAP.md index af0ba66..917f037 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -6,7 +6,7 @@ not on a calendar. Scope may shift in response to user feedback, security findings, or upstream changes in the governance landscape (EU AI Act implementing acts, new frameworks, new attack classes). -The current release is **0.13.1**. Admina is pre-1.0: the public API may +The current release is **0.13.2**. Admina is pre-1.0: the public API may still evolve before the 1.0 stability commitment, so a minor release may carry a declared breaking change once its replacement is in place. Shipped detail lives in [CHANGELOG.md](CHANGELOG.md). diff --git a/admina/__init__.py b/admina/__init__.py index cda0138..ab5a834 100644 --- a/admina/__init__.py +++ b/admina/__init__.py @@ -23,7 +23,7 @@ from admina.sdk import ComplianceKit, GovernedAgent, GovernedData, GovernedModel -__version__ = "0.13.1" +__version__ = "0.13.2" __all__ = [ "__version__", diff --git a/core-rust/Cargo.lock b/core-rust/Cargo.lock index adee246..8d68a72 100644 --- a/core-rust/Cargo.lock +++ b/core-rust/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "admina_core" -version = "0.13.1" +version = "0.13.2" dependencies = [ "chrono", "hex", diff --git a/core-rust/Cargo.toml b/core-rust/Cargo.toml index 0eabd3d..e626d2f 100644 --- a/core-rust/Cargo.toml +++ b/core-rust/Cargo.toml @@ -15,7 +15,7 @@ [package] name = "admina_core" -version = "0.13.1" +version = "0.13.2" edition = "2021" description = "Admina governance engines — Rust core with Python bindings" license = "Apache-2.0" diff --git a/core-rust/pyproject.toml b/core-rust/pyproject.toml index d0a2429..43d2f1b 100644 --- a/core-rust/pyproject.toml +++ b/core-rust/pyproject.toml @@ -19,7 +19,7 @@ build-backend = "maturin" [project] name = "admina-core" -version = "0.13.1" +version = "0.13.2" description = "Admina governance engines — Rust core with Python bindings (firewall, PII, loop breaker, hash chain)" readme = "README.md" requires-python = ">=3.11" diff --git a/core-rust/uv.lock b/core-rust/uv.lock index 3639ea3..82123dc 100644 --- a/core-rust/uv.lock +++ b/core-rust/uv.lock @@ -4,5 +4,5 @@ requires-python = ">=3.11" [[package]] name = "admina-core" -version = "0.13.1" +version = "0.13.2" source = { editable = "." } diff --git a/packaging/admina/pyproject.toml b/packaging/admina/pyproject.toml index 6359b52..5c8544c 100644 --- a/packaging/admina/pyproject.toml +++ b/packaging/admina/pyproject.toml @@ -25,7 +25,7 @@ build-backend = "setuptools.build_meta" [project] name = "admina" -version = "0.13.1" +version = "0.13.2" description = "Admina — governed AI development framework (installs admina-framework)" readme = "README.md" requires-python = ">=3.11" @@ -40,7 +40,7 @@ classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 3", ] -dependencies = ["admina-framework==0.13.1"] +dependencies = ["admina-framework==0.13.2"] [project.urls] Homepage = "https://admina.org" @@ -49,21 +49,21 @@ Documentation = "https://github.com/admina-org/admina#readme" Changelog = "https://github.com/admina-org/admina/blob/main/CHANGELOG.md" [project.optional-dependencies] -proxy = ["admina-framework[proxy]==0.13.1"] -proxy-minimal = ["admina-framework[proxy-minimal]==0.13.1"] -nlp = ["admina-framework[nlp]==0.13.1"] -telemetry = ["admina-framework[telemetry]==0.13.1"] -rust = ["admina-framework[rust]==0.13.1"] -full = ["admina-framework[full]==0.13.1"] -openai = ["admina-framework[openai]==0.13.1"] -ollama = ["admina-framework[ollama]==0.13.1"] -anthropic = ["admina-framework[anthropic]==0.13.1"] -mistral = ["admina-framework[mistral]==0.13.1"] -gemini = ["admina-framework[gemini]==0.13.1"] -bedrock = ["admina-framework[bedrock]==0.13.1"] -adapters = ["admina-framework[adapters]==0.13.1"] -presidio = ["admina-framework[presidio]==0.13.1"] -all = ["admina-framework[all]==0.13.1"] +proxy = ["admina-framework[proxy]==0.13.2"] +proxy-minimal = ["admina-framework[proxy-minimal]==0.13.2"] +nlp = ["admina-framework[nlp]==0.13.2"] +telemetry = ["admina-framework[telemetry]==0.13.2"] +rust = ["admina-framework[rust]==0.13.2"] +full = ["admina-framework[full]==0.13.2"] +openai = ["admina-framework[openai]==0.13.2"] +ollama = ["admina-framework[ollama]==0.13.2"] +anthropic = ["admina-framework[anthropic]==0.13.2"] +mistral = ["admina-framework[mistral]==0.13.2"] +gemini = ["admina-framework[gemini]==0.13.2"] +bedrock = ["admina-framework[bedrock]==0.13.2"] +adapters = ["admina-framework[adapters]==0.13.2"] +presidio = ["admina-framework[presidio]==0.13.2"] +all = ["admina-framework[all]==0.13.2"] [tool.setuptools] packages = [] diff --git a/pyproject.toml b/pyproject.toml index 04fba6d..0c5ae60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ build-backend = "setuptools.build_meta" [project] name = "admina-framework" -version = "0.13.1" +version = "0.13.2" description = "Admina — governed AI development framework" readme = "README.md" requires-python = ">=3.11" diff --git a/uv.lock b/uv.lock index 5aadb3b..6a7ce8c 100644 --- a/uv.lock +++ b/uv.lock @@ -10,12 +10,12 @@ resolution-markers = [ [[package]] name = "admina-core" -version = "0.13.1" +version = "0.13.2" source = { directory = "core-rust" } [[package]] name = "admina-framework" -version = "0.13.1" +version = "0.13.2" source = { editable = "." } dependencies = [ { name = "click" }, @@ -164,7 +164,7 @@ requires-dist = [ { name = "httpx", marker = "extra == 'proxy'", specifier = ">=0.25,<1" }, { name = "httpx", marker = "extra == 'proxy-minimal'", specifier = ">=0.25,<1" }, { name = "jinja2", specifier = ">=3.1,<4" }, - { name = "mistralai", marker = "extra == 'mistral'", specifier = ">=1.0,<3" }, + { name = "mistralai", marker = "extra == 'mistral'", specifier = ">=1.0,<4" }, { name = "numpy", marker = "extra == 'proxy'", specifier = ">=1.24,<2" }, { name = "ollama", marker = "extra == 'ollama'", specifier = ">=0.3,<1" }, { name = "openai", marker = "extra == 'openai'", specifier = ">=1.0,<4" }, @@ -1093,15 +1093,15 @@ wheels = [ [[package]] name = "httpcore2" -version = "2.12.0" +version = "2.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "h11" }, { name = "truststore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/be/ad/f4f0e57345f1870f3e8cb624e058d7eca6e5a27d33bcc3311d9b618734cd/httpcore2-2.12.0.tar.gz", hash = "sha256:9293522bba0aa7c4c8e9e3f040c16575bd8868e155a77fa30c7a9085a5eae648", size = 67548, upload-time = "2026-08-18T13:22:08.211Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/f3/1db7aa2bc2524062192bb0e0323969492d1883152a232fe36eea65f4e35c/httpcore2-2.13.1.tar.gz", hash = "sha256:e0aa977abe17e69a3b820a24542a6fa88702676d83880b8d194dcd18408e5103", size = 68071, upload-time = "2026-09-23T07:47:22.372Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/74/d370e55600d9bcfa0d9794b0166126d49291a3d2b20c268fc98c453a4948/httpcore2-2.12.0-py3-none-any.whl", hash = "sha256:7e04258ce01013d7d615e5b910a3b27fac937d7a95038227e79652b4ba3b4ceb", size = 83074, upload-time = "2026-08-18T13:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/09/ba/a4568248771ce81957bfb7cc600264a40fbcda092391ee1c415c50be4bea/httpcore2-2.13.1-py3-none-any.whl", hash = "sha256:e1e05d4f25f7d7d496bfb96748f6f4b67657b03da069b3a68c36069f3db73d0a", size = 83423, upload-time = "2026-09-23T07:47:19.365Z" }, ] [[package]] @@ -1157,7 +1157,7 @@ wheels = [ [[package]] name = "httpx2" -version = "2.12.0" +version = "2.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio", marker = "sys_platform != 'emscripten'" }, @@ -1167,9 +1167,9 @@ dependencies = [ { name = "truststore", marker = "sys_platform != 'emscripten'" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7f/f8/579a8b51e42e38ee32647df9f08aa25643ae788e275cc625b199829c4671/httpx2-2.12.0.tar.gz", hash = "sha256:7631fe9887a8a2275f4a2540e053aa670fcc50742864a9ae7c66e609fdcf12cf", size = 100040, upload-time = "2026-08-18T13:22:09.086Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/44/474bef2a0e9d90f1715d32cb98b0738695ca17ba324095fb2497ed7fbd59/httpx2-2.13.1.tar.gz", hash = "sha256:e48744a19e3af5ee48313d0ce5fe941d5422fae5705ea922a4aabf94d7800dfa", size = 100405, upload-time = "2026-09-23T07:47:23.052Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/95/411ba65569158e862368917aaf56597f3e5fa3b91b0502919638465a08f3/httpx2-2.12.0-py3-none-any.whl", hash = "sha256:cc8b6eecb8661c146b8f89a60e97456ee086e91a784ed31ac450c3a9e613dd36", size = 95427, upload-time = "2026-08-18T13:22:06.834Z" }, + { url = "https://files.pythonhosted.org/packages/d8/9c/6fe8931fd9f381042a9e4c7d5a7b4cbf7016b252bec0c99a49fce42c3326/httpx2-2.13.1-py3-none-any.whl", hash = "sha256:6dff50fabc270ee5fd25d845d0b078ed20564579744d6d962850975996d2f9a4", size = 95597, upload-time = "2026-09-23T07:47:20.995Z" }, ] [[package]] @@ -1520,11 +1520,11 @@ wheels = [ [[package]] name = "mistralai" -version = "2.4.9" +version = "3.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "eval-type-backport" }, - { name = "httpx" }, + { name = "httpx2" }, { name = "jsonpath-python" }, { name = "opentelemetry-api" }, { name = "opentelemetry-semantic-conventions" }, @@ -1532,9 +1532,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/f1/f22fa0fac767279df95e0796f37520eae0678a75b62d7bca3e85c46b684b/mistralai-2.4.9.tar.gz", hash = "sha256:9a6465b8bddf825d76cf80ab54d55bb8089fdf5aafc0a7943ae74c825df97939", size = 471000, upload-time = "2026-06-03T13:04:22.565Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/70/9d77d64634e21a9e45260de277a21fb4640942153b94c8bb085c7aff4207/mistralai-3.1.0.tar.gz", hash = "sha256:d3e67fcdb41da61588c753b3dba829f98021a24c321922e4aab2f617cce93435", size = 638928, upload-time = "2026-10-06T15:53:06.335Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/bc/977b65cddce185dce0414d14c783040a9f9d647bbfe9b0f5c74ff9262816/mistralai-2.4.9-py3-none-any.whl", hash = "sha256:8e2f8a58697455f2113b4f6d0d1bd28d66d3eb51f94ff24b9d22a21dea531520", size = 1121336, upload-time = "2026-06-03T13:04:20.694Z" }, + { url = "https://files.pythonhosted.org/packages/61/f0/d98c55038924e006f250cdc9b9181b1c792baffe3f69b27bd4b86704fa6a/mistralai-3.1.0-py3-none-any.whl", hash = "sha256:49c461b6a0778447c8f83d41a7cdc9a063082f6a2b29942da538049fcb31d675", size = 1519498, upload-time = "2026-10-06T15:53:04.125Z" }, ] [[package]]