API Stability
This page defines the public API stability expectations for the TramAI 0.4.x line.
Stability Policy For 0.4.x
TramAI 0.4.x is still pre-1.0, but it is not intended to be arbitrary.
For documented release-line APIs in 0.4.x, the project aims to avoid intentional breaking changes in:
- exported public types and method signatures
- documented Spring property names under
tramai.* - published module coordinates
- documented provider ids and routing behavior
- documented failure semantics for retries, structured output, and token budgets
Changes that remain acceptable in 0.4.x:
- bug fixes that correct behavior to match existing docs
- additive public APIs
- stronger validation when the old behavior was ambiguous or unsafe
- internal refactors that do not change the documented contract
Stable Consumer Surface In 0.4.x
The following consumer-facing modules are the primary documented release-line surface in 0.4.x:
tramai-coretramai-enginetramai-structuredtramai-standalonetramai-springtramai-openaitramai-azure-openaitramai-anthropictramai-bedrocktramai-geminitramai-deepseektramai-ollamatramai-observabilitytramai-orchestrationtramai-memorytramai-embeddingtramai-ragtramai-vectorstore-spitramai-vectorstore-chromatramai-vectorstore-pgvectortramai-testingtramai-bom
These modules reflect the core library plus optional, application-level capabilities that are already documented as normal consumer dependencies.
Fast-Moving Runtime, Platform, And Sovereign Surface
The repository also contains newer operational and sovereign modules:
tramai-memory-storetramai-schedulertramai-servertramai-mcptramai-platformtramai-dashboardtramai-securitytramai-sovereigntramai-persistence-filetramai-persistence-jdbctramai-spring-boot-starter-sovereigntramai-spring-boot-starter-sovereign-persistence-filetramai-spring-boot-starter-sovereign-persistence-jdbctramai-spring-boot-starter-sovereign-opstramai-spring-boot-starter-sovereign-ops-actuatortramai-spring-boot-starter-sovereign-ops-micrometertramai-spring-boot-starter-sovereign-ops-observabilitytramai-spring-boot-starter-sovereign-ops-rest
Those modules are real and implemented. They should not be described as "planned only", but they should still be treated as faster-moving than the narrowest core contract.
Stable contract areas include:
@AiService,@Operation, and@SystemPrompt- provider registry and explicit model routing
- standalone builder and Spring Boot configuration binding
- structured-output schema generation, parsing, and validation loop
- engine-owned retries, fallback routing, circuit breaking, caching, and token budgets
- observability module spans and metric instrument names documented in the guides
- orchestration workflow definition, observation, checkpoint/resume, and optional lease contracts documented in the guides
Stable orchestration contract:
workflow(...),WorkflowBuilder, andWorkflowWorkflowContext(workflowId, attributes)StopPolicy(maxStepExecutions, maxParallelBranches)WorkflowObserverGateDecision- step shapes:
localStep(...),aiStep(...),gateStep(...),branchStep(...),parallelStep(...) - checkpoint/resume SPI:
WorkflowPersistence,WorkflowStateCodec,WorkflowCheckpointStore,WorkflowCheckpoint - optional lease SPI:
WorkflowLeaseStore,WorkflowLeasePolicy,WorkflowLease
Explicitly out of scope for the narrower 0.4.x compatibility contract:
- typed deadline or budget-hint fields in
WorkflowContext - max-round or terminal-predicate controls in
StopPolicy - mid-step replay or token-level stream resume
Experimental Surface
These public APIs are intentionally not covered by the narrowest 0.4.x stability promise.
Codex/ChatGPT Auth-File Reuse
The OpenAI auth-file path is experimental.
That includes:
@ExperimentalCodexAuthOpenAiProvider.codexAuth(...)OpenAiCompatibleProvider.codexAuth(...)- Spring properties under
tramai.providers.openai.codex-auth.* - Spring properties under
tramai.providers.openai-compatible.codex-auth.*
Release Baseline Assumptions
The 0.4.x line is documented against these baseline assumptions:
- Java
21+ - Kotlin-first APIs with Java-friendly blocking interfaces
- framework-agnostic core with optional Spring integration
0.4.xsecurity preview:tramai-securityis opt-in, whiletramai-sovereignis documented as the secure profile
If any of those assumptions change, that should be treated as release-level change, not quiet drift.
Current Audit Summary
The current 0.4.x documentation sweep concludes:
- the core and application-facing library surface is broad but still documentable as a coherent contract
- experimental areas should stay explicit in code and docs
- the biggest documentation risk is no longer missing modules, but confusing release-line modules with newer operational and sovereign surfaces
- top-level docs should always make the stability split visible instead of burying it in release notes or board history
