Releases: LingXi-Org/LingxiGraph
Release list
LingxiGraph 2.3.0
LingxiGraph v2.3.0 — Durable Mid-Run Steering
LingxiGraph 2.3.0 introduces durable, application-controlled mid-run steering for long-running graph executions. External input can now be accepted while a Run is active or paused, persisted in PostgreSQL, and consumed only at application-chosen safe points without hard preemption or hidden state mutation.
Highlights
- Durable mid-run steering —
POST /v1/runs/{run_id}/steerand matching sync/async SDK APIs accept structured steering input with idempotency and payload-size enforcement. - Application-controlled safe points — graphs decide when to inspect, peek, or drain steering through
runtime.has_steering,runtime.peek_steering(), andruntime.drain_steering(). - Crash-safe delivery semantics — PostgreSQL remains the source of truth; Redis is optional notification acceleration only. Stable steering identity and fenced consumption commits support retry and at-least-once redelivery without pretending to provide global exactly-once execution.
- Correct pause/resume lineage — pending steering transfers atomically to the resumed descendant Run. Typed
superseded_by_run_idlineage prevents stale Run IDs or user metadata from forging Runtime control state. - Stronger cancellation and worker fencing — expired
cancellingleases recover tocancelled, paused cancellation terminates immediately, stale attempts cannot overwrite newer ownership, and retry state plusworker_retryingobservability commit atomically. - First-class observability — durable
run.steer.accepted,run.steer.consumed, andrun.steer.supersededlifecycle events expose identity, ordering, queue latency, safe-point location, and disposition. - Complete bilingual documentation — API, Python SDK, concepts, operations, errors/events, migration guidance, and release documentation are aligned with the final Runtime behavior.
Upgrade
pip install --upgrade "lingxigraph==2.3.0"For PostgreSQL-backed deployments, run the forward-only schema migration before enabling the new Runtime behavior:
alembic upgrade headThe schema must reach 0005_superseded_by_run_id. Revisions 0002 through 0005 are additive and can be applied before the new binary, but old binaries do not understand the new steering/lineage semantics.
Compatibility
This release does not introduce a breaking public API change for existing graphs that do not use steering. Steering remains opt-in, and Redis is never the sole source of durable steering state.
Python 3.11+ is supported.
Release scope
The primary implementation was developed and reviewed in #16 / #17, followed by documentation and release-pipeline hardening. See CHANGELOG.md for the complete technical change log.