v0.4.0
What's new in 0.4.0
First release with a formal pluggable backend contract: authority_runtime.backends.Backend is now a runtime_checkable Protocol that any identity source can implement to plug into Carryall.
Highlights
BackendProtocol +load_backend()— codifies the seven-method contractMemoryBackend/SlosBackendalready satisfy. Config-driven loading viaCARRYALL_SLOS_CONFIGresolves backends by built-in name, entry-point registration, or dotted path.FakeCompiler— deterministic, rule-basedLLMCompilersubclass. No API key required. Keeps the same subset-validation guarantees as the OpenAI/Anthropic compilers. Ideal for CI and offline quickstarts.examples/quickstart_memory.py— full intent → compiled scopes → signed envelope → access-check loop, runnable in under a second afterpip install authority-runtime.- Entry-point registration — the built-in
memoryandslosbackends ship under theauthority_runtime.backendsentry-point group. Third-party adapters register alongside: seecarryall-baton-backendfor a ConductorOne Baton reference adapter.
Compatibility
Fully backward compatible. Decision / PolicyResult / DocumentMetadata moved to backends/base.py and are still re-exported from backends/slos.py. Configs without a "backend" key continue to instantiate a SlosBackend.
Tests
392 passing.
See PR #2 for the full diff.