Change Log: 0.3.1¶
Released: June 8, 2026
Focus¶
0.3.1 hardens the public runtime contract shipped in 0.3.0.
This release closes semantic gaps between runtime docs and real execution, tightens lane/data-plane planning, improves recovery explainability at the CLI, and adds preservation coverage so these guarantees do not drift silently.
Highlights¶
Runtime planning and delivery semantics are more stable¶
Agora now keeps source, planner, writer, and sink decisions aligned more consistently across the public runtime entrypoints and internal lane orchestration.
Key hardening areas include:
- lane selection and data-plane validation across
pipeline.py,executor.py,source.py,sink.py, and_plan.py - buffered and ordered delivery behavior in
_buffered.py,_delivery.py, and_lanes.py - startup and shutdown rollback so partially opened sink graphs do not leak state when later components fail to open
- checkpoint and source-delivery gating so acknowledgement remains tied to successful downstream handling
This release is intentionally about making 0.3.x safer to trust under stress,
not about adding a brand-new execution model.
Public data-plane contract is now easier for plugin authors to follow¶
Agora now exposes and documents the preferred contract helpers:
source_data_plane_spec()sink_data_plane_spec()SourceDataPlaneSpecSinkDataPlaneSpec
The legacy capability booleans still work in 0.3.x, but docs now steer
custom source and sink authors toward explicit data-plane specs instead of
guessing from older flags.
Related docs were tightened in:
docs/source/custom.mddocs/sink/custom.mddocs/plugins/contract.md
Recovery UX is more explainable from the CLI¶
Two recovery-oriented CLI surfaces are now much more actionable:
agora checkpoint inspectagora diagnose
They now expose runtime recovery posture more directly, including details such as recovery support, resume keys, checkpoint granularity, resume behavior, and warnings when resuming large file-backed sources may be costly.
This makes it easier to answer practical operator questions like:
- can this pipeline actually resume?
- what unit of progress is persisted?
- what does "resume" mean for this source?
- is recovery likely to be cheap or expensive?
agora doctor is now a stronger preflight tool¶
agora doctor now goes beyond basic configuration shape checks.
It can validate:
- selected pipeline resolution from config
- import references used by config-backed components
- pipeline buildability before execution
- recovery posture
- DLQ replay support
- required environment variables for the selected pipeline
This helps catch miswired configs earlier, before a real run discovers them the hard way.
Spawn safety and test isolation are tighter¶
The CLI path bootstrapping helper now ignores mocked or otherwise non-pathlike
ctx.cwd values when adding project paths to sys.path.
That closes a subtle failure mode where test doubles could pollute process-spawn state and later break process-batch execution with pickling failures.
Tests¶
Release validation for 0.3.1 includes:
- full package CI from the checked-out source tree
- preservation coverage for runtime guarantees, recovery edge cases, plugin contract, and baseline behaviors
- targeted CLI coverage for
doctor,checkpoint inspect, anddiagnose - public API coverage for the data-plane helper surface
New or expanded test areas include:
tests/core/test_doctor_cli.pytests/core/test_recovery_cli.pytests/core/test_data_plane_public_api.pytests/preservation/test_runtime_guarantees.pytests/preservation/test_recovery_edge_cases.py
Packaging¶
- Bumped
agora-etlto0.3.1.