From 90f6252e4ee80d4aa29b33e28c0c567be5d87e04 Mon Sep 17 00:00:00 2001 From: chris-colinsky Date: Mon, 25 May 2026 19:30:31 -0700 Subject: [PATCH 1/2] chore(release): v0.9.0-rc1 Cut the rc1 tag candidate for v0.9.0. Bump pyproject, __version__, smoke-test assertion, and the bundled AGENTS.md header to 0.9.0rc1. Rename CHANGELOG [Unreleased] to [0.9.0] - 2026-05-25. v0.9.0 absorbs proposals 0009 / 0010 / 0019 / 0025 / 0026 / 0027 / 0028 / 0029 / 0030 (spec pin v0.17.0 -> v0.22.1) plus the agent-docs work (patterns docs section, bundled AGENTS.md, openarmature.patterns API, openarmature CLI). See the CHANGELOG [0.9.0] section for the full list. --- CHANGELOG.md | 2 +- pyproject.toml | 2 +- src/openarmature/AGENTS.md | 2 +- src/openarmature/__init__.py | 2 +- tests/test_smoke.py | 2 +- uv.lock | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b749d15..429167d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to `openarmature-python` are documented in this file. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The package follows [Semantic Versioning](https://semver.org/); pre-1.0 minor bumps may carry behavioral changes per [spec governance](https://github.com/LunarCommand/openarmature-spec/blob/main/GOVERNANCE.md). -## [Unreleased] +## [0.9.0] — 2026-05-25 ### Added diff --git a/pyproject.toml b/pyproject.toml index c2b37f8..d22d6ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "openarmature" -version = "0.8.0" +version = "0.9.0rc1" description = "Workflow framework for LLM pipelines and tool-calling agents." readme = "README.md" requires-python = ">=3.12" diff --git a/src/openarmature/AGENTS.md b/src/openarmature/AGENTS.md index 85bc0b9..925ff55 100644 --- a/src/openarmature/AGENTS.md +++ b/src/openarmature/AGENTS.md @@ -1,6 +1,6 @@ # OpenArmature — Agent documentation -*This is the agent guide bundled with the openarmature Python package, version 0.8.0 (spec v0.22.1). For the full docs site see [openarmature.ai](https://openarmature.ai). For the canonical spec text see [openarmature.org/capabilities](https://openarmature.org/capabilities/). For project-specific conventions for the code you're editing, see the host project's `AGENTS.md` or `CLAUDE.md`.* +*This is the agent guide bundled with the openarmature Python package, version 0.9.0rc1 (spec v0.22.1). For the full docs site see [openarmature.ai](https://openarmature.ai). For the canonical spec text see [openarmature.org/capabilities](https://openarmature.org/capabilities/). For project-specific conventions for the code you're editing, see the host project's `AGENTS.md` or `CLAUDE.md`.* ## TL;DR diff --git a/src/openarmature/__init__.py b/src/openarmature/__init__.py index dee7689..b8f2e28 100644 --- a/src/openarmature/__init__.py +++ b/src/openarmature/__init__.py @@ -24,5 +24,5 @@ sessions opening the project find the bundled docs automatically. """ -__version__ = "0.8.0" +__version__ = "0.9.0rc1" __spec_version__ = "0.22.1" diff --git a/tests/test_smoke.py b/tests/test_smoke.py index a862cc8..60661b2 100644 --- a/tests/test_smoke.py +++ b/tests/test_smoke.py @@ -8,7 +8,7 @@ def test_package_versions() -> None: - assert openarmature.__version__ == "0.8.0" + assert openarmature.__version__ == "0.9.0rc1" assert openarmature.__spec_version__ == "0.22.1" diff --git a/uv.lock b/uv.lock index aeb7465..f65b6d4 100644 --- a/uv.lock +++ b/uv.lock @@ -885,7 +885,7 @@ wheels = [ [[package]] name = "openarmature" -version = "0.8.0" +version = "0.9.0rc1" source = { editable = "." } dependencies = [ { name = "httpx" }, From 03004740327f2d8420422ccfc39a2e526d4f561b Mon Sep 17 00:00:00 2001 From: chris-colinsky Date: Mon, 25 May 2026 19:34:48 -0700 Subject: [PATCH 2/2] Fix stale Unreleased reference in CHANGELOG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Notes block on the v0.9.0 section said "over this Unreleased cycle" — a draft artifact from when the heading was [Unreleased]. Reads as stale now that the section is [0.9.0]. Replaced with "over the v0.9.0 cycle". --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 429167d..a10d99e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The ### Notes -- **Pinned spec version bumped from v0.17.0 to v0.22.1 over this Unreleased cycle.** Ten spec versions absorbed: v0.17.1 (proposal 0019, multi-provider wire-format extension — purely textual reframe of llm-provider §8 as a catalog of wire-format mappings; OpenAI-compatible body nested under §8.1), v0.18.0 (proposal 0009, per-instance fan-out resume — pipeline-utilities §10.3 / §10.7 revised, §10.11 added; the `append` reducer no-double-merge invariant is the load-bearing correctness story), v0.18.1 (fixture-only patch correcting an off-by-one literal in fixture 052's expected `results`), v0.19.0 (proposal 0010, bounded drain timeout — graph-engine §6 amended with the `timeout` parameter and `DrainSummary` return contract), v0.20.0 (proposal 0025, llm-provider `tool_choice` — §5 / §7 / §8.1.1 amended), v0.20.1 (proposal 0026, llm-provider §8.X wire-format mapping subsection template — purely textual §8 framing paragraph; the existing OpenAI §8.1 mapping is the template's reference shape so no python module-level work was needed), v0.21.0 (proposal 0027, explicit `result_is_error` discriminator on `fan_out_progress` per-instance entries — see Added above), v0.21.1 (proposal 0028, canonical source for `schema_version` — declared graph state class wins over runtime subclass shadowing; see Changed above), v0.22.0 (proposal 0029, strict `CheckpointRecordInvalid` on fan-out count drift — see Added above), and v0.22.1 (proposal 0030, drain snapshot semantic + timeout-input validation — purely textual; python already implemented both behaviors per the 0010 impl PR, so no module-level work needed). All existing conformance fixtures continue to pass. +- **Pinned spec version bumped from v0.17.0 to v0.22.1 over the v0.9.0 cycle.** Ten spec versions absorbed: v0.17.1 (proposal 0019, multi-provider wire-format extension — purely textual reframe of llm-provider §8 as a catalog of wire-format mappings; OpenAI-compatible body nested under §8.1), v0.18.0 (proposal 0009, per-instance fan-out resume — pipeline-utilities §10.3 / §10.7 revised, §10.11 added; the `append` reducer no-double-merge invariant is the load-bearing correctness story), v0.18.1 (fixture-only patch correcting an off-by-one literal in fixture 052's expected `results`), v0.19.0 (proposal 0010, bounded drain timeout — graph-engine §6 amended with the `timeout` parameter and `DrainSummary` return contract), v0.20.0 (proposal 0025, llm-provider `tool_choice` — §5 / §7 / §8.1.1 amended), v0.20.1 (proposal 0026, llm-provider §8.X wire-format mapping subsection template — purely textual §8 framing paragraph; the existing OpenAI §8.1 mapping is the template's reference shape so no python module-level work was needed), v0.21.0 (proposal 0027, explicit `result_is_error` discriminator on `fan_out_progress` per-instance entries — see Added above), v0.21.1 (proposal 0028, canonical source for `schema_version` — declared graph state class wins over runtime subclass shadowing; see Changed above), v0.22.0 (proposal 0029, strict `CheckpointRecordInvalid` on fan-out count drift — see Added above), and v0.22.1 (proposal 0030, drain snapshot semantic + timeout-input validation — purely textual; python already implemented both behaviors per the 0010 impl PR, so no module-level work needed). All existing conformance fixtures continue to pass. ## [0.8.0] — 2026-05-23