Compatibility¶
Versioning¶
v2uses thegithub.com/axisvela/praxo-core/v2module path.- v1 remains available for consumers that have not migrated.
- The v2 exported API is functionally identical to v1.7.0; see v2 migration.
2.1.0is additive outsidepkg/...; the exportedpkg/...API remains identical to2.0.0.2.2.0is additive outsidepkg/...; the exportedpkg/...API remains identical to2.1.0.2.3.0addsSubagentManager.WaitandSubagentManager.Prune; all other exportedpkg/...declarations are unchanged.2.3.1is a patch release; the exportedpkg/...API is identical to2.3.0.2.3.2is a patch release; the exportedpkg/...API is identical to2.3.1.2.3.3is a patch release; the exportedpkg/...API is identical to2.3.2. Changed final tool calls require fresh policy approval, and arguments must remain JSON-serializable when policy is enabled.2.3.4is a patch release; the exportedpkg/...API is identical to2.3.3. Typed schemas reject null,patternuses Go/RE2 regular expressions, and length limits count Unicode code points.2.3.5is a patch release; the exportedpkg/...API is identical to2.3.4. Disabling a schedule waits for an in-flight dispatch to finish.2.3.6is a patch release; the exportedpkg/...API is identical to2.3.5. Empty formatter commands return an error, formatter registry slices are copied, andFormatAllreturns walk errors.2.4.0is an adoption-surface release; the exportedpkg/...API is identical to2.3.6. It adds examples, a benchmark, and documentation but no API or behavior change inpkg/....2.5.0adds the additivepkg/conformancepackage and hardenspkg/vfs/localfspath validation. Existing exported declarations are unchanged from2.4.0.-
2.5.1is a patch release; exportedpkg/...declarations are identical to2.5.0. It corrects PII history redaction, execution cleanup, stream completion, scheduler/formatter behavior, and conformance gates. -
Framework versions start at
0.x. - PRAXOVELA product versions are independent.
- External consumers declare the supported framework range.
- Breaking changes require a minor bump before
1.0.0.
Consumer Matrix¶
| Consumer | Expected integration |
|---|---|
| PRAXOVELA | embeds framework primitives; remains AGPL |
| external products | direct interface implementations |
API Stability¶
CI and releases are verified with Go 1.26.10. The root module's go 1.25.0
directive is a language/module minimum, not the tested security baseline or the
minimum for every independent adapter. Use the recommended toolchain for the
quickstart, adapters, and published consumer checks.
Exported interfaces are the stable surface. Concrete adapters and internal helpers may change between minor versions.
Canonical package paths added in 0.16.0 are pkg/toolcall, pkg/formatter,
and pkg/tool/jsonschema. The previous paths (pkg/output, pkg/format,
pkg/tool/schema) are deprecated aliases. PRAXOVELA migrated in 0.16.0;
the aliases are removed in 1.0.0 as tracked in
API freeze inventory.
The frozen plugin v1 surfaces are:
- Manifest v1 (
pkg/plugin.ParseManifest) - contract kinds and the
Host.Invokeboundary - the lifecycle transition table
- the guarded
AdapterRegistry - process/WASM wire envelopes
- the contract-level TCK
Materialization, signature verification, SBOM/evidence, trust stores, and rolling updates are product-owned and may evolve independently.
See the compatibility and deprecation policy for the covered surface, additive-change rules, deprecation window, and optional module versioning.
Multi-language Core Compatibility¶
Python, TypeScript, and Java Core implementations share the contract in spec/ and version
independently. Their compatibility rules are:
- The wire contract is identical across languages. Renaming a JSON field, event, stream kind, or plugin envelope field is breaking for every Core implementation.
- Source APIs map one-to-one but use idiomatic names per language.
- A Core implementation declares the
spec/SPEC_VERSIONit implements. - No Core may implement a contract feature that the Go reference lacks.
- Core versions do not imply a Go module version, and vice versa.
The Go surface remains covered by the v2 rules above. Multilingual Core implementations are
additive packages and do not change the Go module path or the pkg/... freeze.
See Multilingual Core design and the Core support policy.
Compatibility Tests¶
Each consumer should maintain:
- compile-time interface conformance
- a smoke test for the agent loop
- a policy-denial test
- an event-sink test
- a memory-adapter test where used
- plugin host conformance through
pkg/plugin/tckwhere used