Change Log: 0.3.2¶
Released: June 10, 2026
Focus¶
0.3.2 turns the refactored 0.3.x core into a tighter release contract.
This release is about hardening what already exists:
- explicit public boundaries
- preservation-backed runtime behavior
- clearer plugin contracts
- stronger diagnostics, security posture, and performance guardrails
Highlights¶
Public API boundaries are now frozen more deliberately¶
Agora now treats the package facades as explicit release contracts:
agoraagora.coreagora.core.<domain>agora.core.runtimeas an advanced public facade
Architecture tests now fail when public surfaces drift, when compatibility exports are undocumented, or when plugin-facing code leaks into underscore support modules by accident.
Runtime guarantees are preservation-backed end to end¶
The 0.3.x runtime guarantee matrix is now fully preservation-backed. This
covers lane selection, ordering, checkpoint cadence, DLQ routing, retry
boundaries, shutdown/cancellation behavior, and process/buffered invariants.
This release is therefore much safer for continued internal refactor: the code can keep moving without reopening ambiguity about preserved runtime semantics.
Observability and health diagnostics are safer¶
Built-in health payloads now redact and truncate last_error before exposing it
through metrics/health surfaces.
Plugin diagnostics are also clearer:
agora plugins listnow shows broken entry-points explicitly- entry-point key collisions with built-ins/public keys are surfaced as diagnostics instead of silently winning by import order
agora doctoris more explicit about its trust boundary during config import and pipeline-build checks
Plugin contract cleanup is now reflected in code, tests, and docs¶
The official agora-etl-plugins bundle and the incubating plugin packages now
follow the updated contract more consistently:
- MANIFEST compatibility binds to
AGORA_PLUGIN_MANIFEST_VERSIONinstead of hard-coded stale values - package metadata points at the real
agora-etlcore artifact - plugin contract tests now fail when plugin packages depend on internal Agora support modules or on legacy module paths that now have public replacements
For 0.3.x, two advanced public plugin modules remain intentionally supported:
agora.core.registryfor MANIFEST compatibility bindingagora.core.retryfor shared retry helpers
Benchmark coverage now has a concrete maintenance budget¶
0.3.2 records the first post-refactor benchmark baseline and a simple perf
budget for future maintenance work.
The benchmark split now covers:
- file-backed lane throughput
- runtime orchestration-heavy shapes such as buffered execution, sink fan-out, and observability overhead
- Arrow process transport microbenchmarks
This makes it possible to catch hot-path regressions intentionally instead of relying on anecdotal before/after impressions.
Upgrade notes¶
For builders¶
- Prefer
agoraand documentedagora.core.<domain>facades over file-level modules. - Avoid underscore-prefixed imports even if a compatibility export still exists
in
0.3.x.
For plugin authors¶
- Bind MANIFEST compatibility from
agora.core.registry. - Prefer
agora.state,agora.runner, and the documented plugin-contract modules indocs/plugins/contract.md. - Treat
agora.core.registryandagora.core.retryas advanced public plugin contracts in0.3.x.
Deprecated aliases retained through 0.3.x¶
agora.core.runtime.RecordDeliveryCoordinatoragora.core.sink._WRITE_OKagora.core.context._NOOP_SPAN_SCOPEagora.core.context._BoundLoggeragora.core.context._NoopSpanScopeagora.core.context._PipelineSpanScopeagora.core.context._normalize_trace_value
These remain compatibility bridges in 0.3.x and are still targeted for
removal in 0.4.0.
Validation¶
Release validation for 0.3.2 includes:
- public surface / architecture tests
- preservation coverage for runtime guarantees and plugin contract behavior
- package-local CI for
agora-etl-plugins - benchmark baselines for the canonical Phase 5 scenarios
Packaging¶
- Bumped
agora-etlto0.3.2.