Skip to content

SchemaRouter 0.3.0

SchemaRouter 0.3.0 is the first non-prerelease release of the 0.3 line.

It promotes the validated 0.3.0a1 feature set without intentional public API changes and removes the need for --pre during normal PyPI installation. SchemaRouter remains pre-1.0: later 0.x minor releases may still introduce deliberate compatibility changes under the documented versioning policy.

Highlights

  • provider-neutral bounded DecisionBackend contracts with deterministic fallback;
  • optional Jev / TypeSafe System One decision backend through schemarouter[jev];
  • first-class LangChain and LlamaIndex bridges that retain SchemaRouter execution authority;
  • OpenAPI, MCP, OPTIMADE, Python callable, and allowlisted third-party adapter paths;
  • a checked-in 144-case multilingual/adversarial decision-routing benchmark corpus;
  • machine-readable OpenAPI compatibility reporting;
  • authenticated MCP trusted-header support and injectable MCPClientFactory;
  • trusted sync/async per-call approval callbacks;
  • per-run logical-call, attempt, remote-attempt, elapsed-time, per-tool, and cost-unit budgets;
  • optional privacy-preserving OpenTelemetry run/tool spans through schemarouter[otel];
  • strict package, type, coverage, integration, documentation, and release validation.

Installation

Core package:

pip install schemarouter

Optional integrations:

pip install "schemarouter[mcp]"
pip install "schemarouter[langchain]"
pip install "schemarouter[llamaindex]"
pip install "schemarouter[jev]"
pip install "schemarouter[otel]"

Compatibility and validation

The release gate covers:

  • Python 3.10 through 3.14;
  • Windows + Python 3.14 smoke execution;
  • Pyright static typing;
  • an 82% branch-coverage floor;
  • declared minimum runtime dependency versions;
  • wheel and sdist build plus clean-install smoke tests;
  • strict MkDocs build;
  • LangChain, LlamaIndex, Jev, MCP, and OpenTelemetry integration suites;
  • package metadata, license inclusion, quickstart execution, and release artifact verification.

Python 3.15 remains a separate non-blocking forward-compatibility preview. Public OpenAPI and OPTIMADE live smokes remain external signals rather than deterministic merge blockers.

Security model

0.3.0 preserves the fail-closed execution model established during the alpha cycle:

  • unknown schema members and bounded-decision option IDs cannot become executable;
  • stale schema fingerprints and invoker bindings are rejected;
  • remote metadata and model output cannot grant mutation or destructive authority;
  • credentials remain outside planner/model state;
  • retries are read-only by default;
  • approval failure and budget exhaustion fail closed;
  • OpenTelemetry export omits payload values and exception messages by default;
  • OpenAPI runtime responses are bounded before decoding.

From 0.3.0a1

There are no intentional public API changes between 0.3.0a1 and 0.3.0. The non-prerelease release primarily promotes the validated alpha surface, finalizes repository enforcement and documentation deployment, and makes standard installation available without --pre.

Live provider benchmark evidence and additional open bounded-decision backends remain follow-up research tracks rather than blockers for the deterministic core release.