Skip to content

LingxiGraph 2.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Aug 13:53
· 3 commits to main since this release
4d816bb

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 steeringPOST /v1/runs/{run_id}/steer and 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(), and runtime.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_id lineage prevents stale Run IDs or user metadata from forging Runtime control state.
  • Stronger cancellation and worker fencing — expired cancelling leases recover to cancelled, paused cancellation terminates immediately, stale attempts cannot overwrite newer ownership, and retry state plus worker_retrying observability commit atomically.
  • First-class observability — durable run.steer.accepted, run.steer.consumed, and run.steer.superseded lifecycle 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 head

The 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.