Bump spec pin to v0.45.0 + textual-only acks#128
Merged
Conversation
First PR of the v0.12.0 cycle. Mechanical pin bump from spec v0.38.0 → v0.45.0, picking up seven new accepted proposals: - 0047 wire-byte stability (queued for v0.13.0) - 0048 read-symmetric metadata + queryable observer (next PR in this cycle) - 0049 typed LLM completion event (v0.13.0) - 0050 retry & failure-isolation primitives (v0.14.0) - 0051 Langfuse trace I/O implementation-surface caveat (textual-only; pin bump documents the caveat, the v0.11.0 proposal 0043 caller-hook shape already matches) - 0052 implementation attribution attributes (PR 3 of this cycle) - 0053 §3.4 shared-parent boundary clarification (textual-only; behavior already matches fixtures 034 + 039) Mechanical changes: - Submodule advances to v0.45.0 tag (SHA defb8f9). - ``pyproject.toml`` ``[tool.openarmature].spec_version`` → ``"0.45.0"``; ``openarmature.__spec_version__`` matches. - ``conformance.toml`` ``spec_pin`` → ``"v0.45.0"``; seven new entries (0047-0053): 0051 + 0053 as ``textual-only`` with ``since = "0.12.0"``; the rest as ``not-yet``. - ``CHANGELOG.md`` ``[Unreleased]`` notes the pin bump and the two textual-only acks. - ``src/openarmature/AGENTS.md`` regenerated against the new pin. Deferral plumbing for the not-yet implementation surface: - ``tests/conformance/_deferral.py`` (new): factors the fixture-level ``skip_if_deferred(fixture_id, deferrals)`` helper out of the per-file ``_DEFERRED_FIXTURES`` skip-call sites so the message format stays consistent. - ``tests/conformance/test_fixture_parsing.py``: 29 new fixtures added to ``_DEFERRED_FIXTURES`` with per-proposal deferral notes; both skip-call sites now use the shared helper. - ``tests/conformance/test_llm_provider.py``: 5 new fixtures deferred (proposals 0047, 0050); skip-call site moved to the helper. - ``tests/conformance/test_prompt_management.py``: new ``_DEFERRED_FIXTURES`` dict gates fixture 032 (cross-variable-substring-stability) on proposal 0047; skip-call site uses the helper. - ``tests/conformance/test_observability.py`` fixture-028 runner: case-level skip-list for the two new ``rejects_reserved_oa_name_implementation_*`` cases (proposal 0052; lands in PR 3 of this cycle). Doesn't use the shared helper because the case-level skip is ``continue`` inside an async loop, not ``pytest.skip``. - ``tests/test_smoke.py::test_package_versions``: expected ``__spec_version__`` updated to "0.45.0". Verified: 1088 passed, 294 skipped (the deferred fixtures); conformance guard clean; mkdocs strict clean; ruff + pyright clean.
There was a problem hiding this comment.
Pull request overview
This PR bumps the pinned openarmature-spec version from v0.38.0 to v0.45.0 and updates the Python package + conformance manifest to acknowledge the newly accepted proposals, including two “textual-only” acknowledgments that require no behavioral changes.
Changes:
- Advance spec pin/version across runtime (
__spec_version__),pyproject.toml, andconformance.toml. - Add/extend conformance deferral plumbing so newly introduced fixtures/cases are skipped until their implementing PRs land.
- Regenerate bundled
AGENTS.mdcontent against the new spec pin and document the bump inCHANGELOG.md.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_smoke.py | Updates expected __spec_version__ to match the new spec pin. |
| tests/conformance/test_prompt_management.py | Adds fixture-level deferral for a newly pinned prompt-management fixture. |
| tests/conformance/test_observability.py | Adds case-level deferrals for newly introduced reserved-key rejection cases. |
| tests/conformance/test_llm_provider.py | Centralizes fixture-level deferral skipping via shared helper; adds new deferred fixture IDs. |
| tests/conformance/test_fixture_parsing.py | Centralizes fixture-level deferral skipping via shared helper; adds new deferred fixture IDs. |
| tests/conformance/_deferral.py | Introduces shared skip_if_deferred() helper to standardize skip formatting. |
| src/openarmature/AGENTS.md | Regenerated doc bundle reflecting spec v0.45.0. |
| src/openarmature/init.py | Updates __spec_version__ constant to 0.45.0. |
| pyproject.toml | Updates [tool.openarmature].spec_version to 0.45.0. |
| conformance.toml | Updates spec_pin to v0.45.0 and adds entries for proposals 0047–0053. |
| CHANGELOG.md | Documents the spec pin bump and the textual-only acknowledgments. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- ``_deferred_cases`` in ``_run_fixture_028``: dict[str, str] → set[str]. The case-level skip uses ``continue`` (not ``pytest.skip``) so the reason values had nowhere to surface; rationale stays in the per-block comment above the set. - ``_deferral.py`` docstring: drop the awkward escaped pluralization (``\\s`` rendered as a literal ``\s``) in favor of plain prose: "it executes ``continue`` inside an async loop".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First PR of the v0.12.0 cycle. Mechanical spec-pin bump from v0.38.0 → v0.45.0, picking up seven new accepted proposals:
not-yetnot-yetnot-yetnot-yettextual-only, since=0.12.0not-yettextual-only, since=0.12.0Textual-only reasoning: 0051 codifies the Langfuse SDK round-trip requirement that the v0.11.0 (proposal 0043)
trace_input_from_state/trace_output_from_statecaller-hook shape already satisfies — the python implementation's existingLangfuseClientintegration round-trips throughtrace.update()exactly as the clarified spec text describes. 0053 tightens the §3.4 shared-parent classification to predicate the invocation span on whether at least one fan-out or parallel-branches dispatch is on the augmenter's call-stack path; behavior already matches via existing fixtures 034 (outermost-serial reaches the invocation span) + 039 (nested cases do not).Mechanical changes
defb8f9)pyproject.toml[tool.openarmature].spec_version = "0.45.0"src/openarmature/__init__.py__spec_version__ = "0.45.0"conformance.tomlspec_pin = "v0.45.0"+ seven new entries per the table aboveCHANGELOG.md[Unreleased] > Changedbullet describing the pin bump + the two textual-only ackssrc/openarmature/AGENTS.mdregenerated against the new pinDeferral plumbing
The pin bump sweeps in 29 new conformance fixtures whose harness directives don't ship until their implementing PRs. All gated via the established
_DEFERRED_FIXTURESpattern:tests/conformance/_deferral.py— factors the fixture-levelskip_if_deferred(fixture_id, deferrals)skip-call out so the message format stays consistent across filestests/conformance/test_fixture_parsing.py— 29 new entriestests/conformance/test_llm_provider.py— 5 new entries (0047 wire-byte, 0050 call-level retry)tests/conformance/test_prompt_management.py— new_DEFERRED_FIXTURESdict; gates fixture 032 on 0047tests/conformance/test_observability.pyfixture-028 runner — case-level skip-list for the two new 0052-related rejection cases (doesn't use the shared helper because it's acontinueinside an async loop, notpytest.skip)tests/test_smoke.py::test_package_versionsexpected__spec_version__updated to "0.45.0".Test plan
uv run pytest— 1088 passed, 294 skipped, 0 faileduv run python scripts/check_conformance_manifest.py— cleanuv run mkdocs build --strict— cleanuv run ruff check+pyright— clean