Skip to content

Bump spec pin to v0.45.0 + textual-only acks#128

Merged
chris-colinsky merged 2 commits into
mainfrom
chore/spec-pin-v0.45.0-textual-acks
Jun 3, 2026
Merged

Bump spec pin to v0.45.0 + textual-only acks#128
chris-colinsky merged 2 commits into
mainfrom
chore/spec-pin-v0.45.0-textual-acks

Conversation

@chris-colinsky

Copy link
Copy Markdown
Member

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:

# Proposal Status this PR Targets
0047 Implicit prefix-cache wire-byte stability not-yet v0.13.0
0048 Read-symmetric invocation metadata + queryable observer not-yet next PR in v0.12.0 cycle
0049 Typed LLM completion event not-yet v0.13.0
0050 Failure-isolation middleware + call-level retry not-yet v0.14.0
0051 Langfuse trace I/O implementation-surface caveat textual-only, since=0.12.0 shipped this PR
0052 Implementation attribution attributes not-yet PR 3 of v0.12.0 cycle
0053 §3.4 shared-parent boundary clarification textual-only, since=0.12.0 shipped this PR

Textual-only reasoning: 0051 codifies the Langfuse SDK round-trip requirement that the v0.11.0 (proposal 0043) trace_input_from_state / trace_output_from_state caller-hook shape already satisfies — the python implementation's existing LangfuseClient integration round-trips through trace.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

  • Submodule advances to v0.45.0 tag (SHA defb8f9)
  • pyproject.toml [tool.openarmature].spec_version = "0.45.0"
  • src/openarmature/__init__.py __spec_version__ = "0.45.0"
  • conformance.toml spec_pin = "v0.45.0" + seven new entries per the table above
  • CHANGELOG.md [Unreleased] > Changed bullet describing the pin bump + the two textual-only acks
  • src/openarmature/AGENTS.md regenerated against the new pin

Deferral 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_FIXTURES pattern:

  • New helper tests/conformance/_deferral.py — factors the fixture-level skip_if_deferred(fixture_id, deferrals) skip-call out so the message format stays consistent across files
  • tests/conformance/test_fixture_parsing.py — 29 new entries
  • tests/conformance/test_llm_provider.py — 5 new entries (0047 wire-byte, 0050 call-level retry)
  • tests/conformance/test_prompt_management.py — new _DEFERRED_FIXTURES dict; gates fixture 032 on 0047
  • tests/conformance/test_observability.py fixture-028 runner — case-level skip-list for the two new 0052-related rejection cases (doesn't use the shared helper because it's a continue inside an async loop, not pytest.skip)

tests/test_smoke.py::test_package_versions expected __spec_version__ updated to "0.45.0".

Test plan

  • uv run pytest — 1088 passed, 294 skipped, 0 failed
  • uv run python scripts/check_conformance_manifest.py — clean
  • uv run mkdocs build --strict — clean
  • uv run ruff check + pyright — clean

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.
Copilot AI review requested due to automatic review settings June 3, 2026 22:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, and conformance.toml.
  • Add/extend conformance deferral plumbing so newly introduced fixtures/cases are skipped until their implementing PRs land.
  • Regenerate bundled AGENTS.md content against the new spec pin and document the bump in CHANGELOG.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.

Comment thread tests/conformance/test_observability.py Outdated
Comment thread tests/conformance/_deferral.py Outdated
- ``_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".
@chris-colinsky chris-colinsky merged commit 301910c into main Jun 3, 2026
6 checks passed
@chris-colinsky chris-colinsky deleted the chore/spec-pin-v0.45.0-textual-acks branch June 3, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants