Skip to content

Releases: LunarCommand/openarmature-python

v0.13.0

10 Jun 03:29
b948372

Choose a tag to compare

What's Changed

Full Changelog: v0.12.0...v0.13.0

v0.12.0

06 Jun 02:03
20a078a

Choose a tag to compare

What's Changed

Full Changelog: v0.11.0...v0.12.0

v0.11.0

01 Jun 02:04
e07a3e4

Choose a tag to compare

What's Changed

Full Changelog: v0.10.0...v0.11.0

v0.10.0

28 May 05:15
cd7acab

Choose a tag to compare

What's Changed

Full Changelog: v0.9.0...v0.10.0

v0.9.0

26 May 02:51
f1fa5c1

Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.9.0

v0.8.0

23 May 18:19
f1776ce

Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

23 May 03:55
9ab4be6

Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.7.0

v0.6.0

17 May 03:59
ecbaf15

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.6.0

v0.5.0

11 May 00:15
c30103d

Choose a tag to compare

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

05 May 02:55
aedaf28

Choose a tag to compare

Spec v0.3.1 / proposal 0003: node-boundary observer hooks.

External code can now observe execution as it happens — the control-side equivalent of the data-side trace field pattern.

New public API

  • NodeEvent (frozen dataclass): node_name, namespace tuple, step, pre_state/post_state, error, parent_states. Exactly one of post_state or error is populated per event.
  • Observer Protocol: async callable receiving a NodeEvent. The parameter is positional-only so conformance isn't tied to a parameter name.
  • CompiledGraph.attach_observer(fn) -> RemoveHandle for graph-attached observers; invoke(state, observers=...) for invocation-scoped.
  • CompiledGraph.drain() — awaits delivery of every event dispatched by prior invocations of this graph. Required for short-lived processes (CLIs, scripts, serverless).

Delivery semantics

  • Strictly serial within an invocation: no two observers process the same event concurrently; no observer sees event N+1 until everyone has finished N.
  • Order: graph-attached (outermost → innermost), then invocation-scoped — both in registration order.
  • Async-from-graph: invoke() returns when the graph reaches END regardless of queue state.
  • Observer exceptions are caught and reported via warnings.warn — they don't break siblings, subsequent events, or the graph run.
  • Subgraph-internal events bubble up: the subgraph wrapper itself stays observer-transparent. Step counter spans the subgraph boundary; namespace and parent_states extend.

Other changes

  • CI workflow added at .github/workflows/ci.yml (ruff + ruff-format + pyright + pytest).
  • Spec submodule pinned at v0.3.1 (corrigendum to fixture 013's YAML syntax).

See the proposal for design rationale.