DOCS / PROJECT

Stability and compatibility

Know exactly what stays compatible across the 1.x line—and what is provisional or internal.

PHASE 1 · PRE-1.0PYTHON 3.11+EDIT ON GITHUB ↗

Stability levels

A public import is not automatically stable. The public API inventory in the repository defines three levels, and only the surfaces it lists as stable carry the 1.x compatibility promise.

LevelMeaning
StableChanges follow semantic versioning; backward-incompatible changes wait for a major release.
ProvisionalPublicly usable and documented, but feedback may still require a breaking change before promotion.
InternalNo compatibility promise; importing it couples you to implementation details.

The stable 1.x surface

SurfaceStable contract
Domain and applicationPublic models and services exported by lumis_sdk.domain and lumis_sdk.application.
PortsProtocols exported by lumis_sdk.ports; new optional methods require a new protocol or a major release.
Configuration and documentslumis.dev/v1 Project, rule, DiagnosisReport, PluginManifest, Playbook, and RecoveryPolicy envelopes with their checked schemas.
Plugin discoveryStatic manifest semantics, the entry-point group, compatibility intervals, support statuses, and default-deny authority checks.
Memory portAsynchronous MemoryStore behavior and the reusable contract suite—not database tables or SQL.
CLICommand names, exit-code classes, and documented JSON output of rules validate, rules test, plugins list, and plugins doctor.
TestkitDocumented fixtures and contract assertions exported by lumis_sdk.testkit.

Additive optional fields may appear in a minor release; required fields, field meaning, enum removal, and default behavior do not change incompatibly within 1.x.

Provisional and internal

  • Future executor and verifier protocols are intentionally absent and require an accepted RFC.
  • ActionProposal is a stable Python model, but its standalone schema remains provisional as a cross-language wire format.
  • Concrete adapters are reference implementations—documented constructor behavior is supported; private helpers and storage layout are internal.
  • Replay metric breadth, lexical ranking weights, and benchmark numbers are provisional; truth semantics and score-component visibility are stable.
  • Anything starting with an underscore, storage layouts, SQL statements, and repository automation are internal.