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
DecisionBackendcontracts 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:
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.