Compatibility Commitment
What this commits to
Per ADR-013. This document is the written commitment about what stigmem will not break, scaled to project resources and the v0.9.0a1 reset posture. Reviewed at every major release; tightening or loosening goes through an ADR amendment.
Stability tiersโ
experimental/<feature>/. Spec section may be draft. Breaking changes expected.Per-tier commitmentsโ
Stable features
Wire format: no breaking changes within the v1.x line after v1.0.0 ships. Public Python API: removing or renaming a public symbol requires a deprecation in v1.x followed by removal no earlier than v2.0.0. Default behavior: changes require a deprecation cycle.
Beta features
Subject to breaking changes in the next minor release with a CHANGELOG entry per change. Pin to specific versions; do not rely on a beta feature's wire format being stable across minor releases.
Experimental features
Subject to breaking changes in any release without notice. Use behind feature flags is at-your-own-risk. Per ADR-008 reintroduction gates, an experimental feature graduates to stable only after passing all five gates.
Deprecated features
A feature deprecated in vX.Y is supported through all subsequent vX.* releases. Removal may not happen earlier than vX+1.0. Operators have at least one major version of notice to migrate. The deprecated feature's page carries removed_in: and replacement: frontmatter.
Wire-format pinning via Stigmem-Version headerโ
Per ADR-012:
clients lock to a declared protocol version via the Stigmem-Version
request header. Server honors the pin; future server versions stay
backward-compatible to declared protocol versions for at least one
major version after a deprecation lands.
POST /v1/facts HTTP/1.1
Stigmem-Version: 0.9.0a1
Authorization: Bearer <api_key>
Content-Type: application/json
{ ... }
The pinning header is documented in Spec-15-Fact-Semantics (Wire Format). Server implementation is future hardened-core work.
Beta opt-in via Stigmem-Beta headerโ
Experimental wire-level features require an opt-in header per call:
POST /v1/facts HTTP/1.1
Stigmem-Version: 0.9.0a1
Stigmem-Beta: instruction-typed-facts
Authorization: Bearer <api_key>
Content-Type: application/json
{ ... }
Lists of supported beta names live at /v1/.well-known/stigmem in a
betas field. Beta names retire when the underlying feature graduates
per ADR-008 โ calls referring to a retired beta name receive
410 Gone with a deprecation header pointing at the now-stable
feature.
What this commitment does NOT coverโ
Implementation internals
Internal Python module structure, algorithm choices, performance characteristics โ not subject to the wire-format or public-API commitments above.
Operational defaults
Default rate-limit values, cache TTLs, log retention windows โ operators should pin via configuration, not rely on defaults remaining constant.
Pre-1.0 builds
Alpha and any future pre-stable builds have NO stability guarantee per ADR-001. Pin to specific versions; auto-upgrade is not safe.
Deferred features
experimental/<feature>/ โ subject to breaking changes in any release without notice until the feature graduates per ADR-008.