Skip to content

Release versioning proposal + live provider capability guard reference - #509

Merged
Seth Juarez (sethjuarez) merged 2 commits into
mainfrom
sethjuarez/release-versioning-proposal
Aug 26, 2026
Merged

Release versioning proposal + live provider capability guard reference#509
Seth Juarez (sethjuarez) merged 2 commits into
mainfrom
sethjuarez/release-versioning-proposal

Conversation

@sethjuarez

@sethjuarez Seth Juarez (sethjuarez) commented Aug 26, 2026

Copy link
Copy Markdown
Member

Combines the docs and Stage A code for the live-provider conformance work into a single mergeable PR. (Supersedes #510, now closed.)

1. Docs — release-versioning-proposal.md

Adds the proposal at the repo root (next to RELEASING.md) for a two-layer versioning strategy:

  • Layer 1 — a stable .prompty format version (the on-disk contract)
  • Layer 2independent semantic versioning per runtime, once we exit beta

§9 documents the live provider conformance vector design: structure-not-content assertions against real provider APIs (OpenAI / Anthropic / Foundry), emitted into every language runtime via the Typra emitter, with capability-gated self-skipping when provider credentials/capabilities are absent.

2. Code — Stage A Python runtime reference

  • tests/model/vector_adapters.pyVECTOR_CAPABILITIES predicates (provider:openai, provider:anthropic, provider:azure, provider:foundry, entra:foundry-project token probe, var:live-enabled) + a structure-not-content LiveChatConformance.complete adapter that reduces OpenAI/Foundry/Anthropic responses to {role, contentNonEmpty, finishReasonInEnum}.
  • tests/model/test_capability_guard_reference.py — pins the Typra 1.1.0 two-pass guard contract: unknown token → AssertionError ("never skips silently"), absent capability → pytest.skip("requirement unavailable: <token>"), author-order first-falsy; plus normalize-shape tests and a deselected live integration test.

Validation: ruff clean; 201 passed, 1 deselected (the live test) on the tests/model suite.

Out of scope (Stage B)

The schema requires vector + emitter pin bump to ^1.1.0 + regenerate are intentionally not included — blocked on the Typra emitter 1.1.0 publishing to npm.

Two-layer versioning strategy (format version + independent runtime semver) with a section on live provider conformance vectors and capability-gated skipping.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 697d7236-7ec4-4827-8f83-1826c72c1538
Stage A runtime reference: VECTOR_CAPABILITIES predicates + structure-not-content LiveChatConformance.complete adapter + a test pinning the Typra 1.1.0 two-pass guard contract. Stage B (schema requires vector + emitter pin ^1.1.0 + regenerate) is excluded, blocked on emitter 1.1.0 npm publish.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 697d7236-7ec4-4827-8f83-1826c72c1538
@sethjuarez Seth Juarez (sethjuarez) changed the title docs: add release versioning proposal Release versioning proposal + live provider capability guard reference Aug 26, 2026
@sethjuarez
Seth Juarez (sethjuarez) merged commit 3d4c27f into main Aug 26, 2026
36 checks passed
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.

1 participant