Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Models Tools & Services
Solutions
Organisations Developers Internet Service Providers Managed Service Providers AI-in-a-Box
Resources
Support Documentation Blog Downloads
Company
About Research Careers Investment Opportunities Contact
Log in

Changelog

User-visible changes per release. Older versions stay readable at their published wheel. Breaking changes are flagged explicitly.

v1.2.0 — Auto-telemetry#

New. The runtime now fires six lifecycle events through the host's EventSink while a flow executes: invocation.started, invocation.completed, invocation.failed, block.entered, block.exited, block.failed. Each carries core_id and execution_id; block events carry block_kind and (when set) node_id. The block.exited event includes the duration in milliseconds and, when a block has a result_binding, either the bound value (if its JSON encoding is ≤4096 bytes) or result_binding_truncated: true.

Configurable. CoreEngine.load(module, env, auto_telemetry=False) disables auto-telemetry for high-throughput or batch deployments. The default is True when an event sink is wired.

Resilience. A failing event sink is logged and swallowed — telemetry never aborts a flow.

Backwards-compatible. No IR or schema changes. Existing @emit statements behave identically.

v1.1.0 — node_id propagation on emitted events#

New. SourceLocation carries an optional node_id field that upstream codegens (canvas editors, source-AST tools) can populate to correlate runtime events back to whatever produced them. When set, the runtime injects it as a top-level node_id field on every event emitted by a @emit statement.

Override. An explicit node_id field on the @emit payload takes precedence over the source-location fallback (setdefault semantics).

Backwards-compatible. No schema bump. Bundles compiled by older versions deserialize cleanly with node_id defaulting to None.

v1.0.0 — Native HITL routing on @checkpoint#

New. @checkpoint blocks accept a hitl_target field that evaluates to a routing dict of shape {scope, queue, hitl_spec}. When set with checkpoint_type = "hitl_review", host handlers are expected to publish a hitl_request to the addressed queue and subscribe to its completion event. The runtime delivers the resolved dict to CheckpointHandler.create() as a new hitl_target kwarg and persists it on CheckpointState.

Breaking. IR FORMAT_VERSION bumped 1 → 2. Bundles produced by this version are rejected by older runtimes; older bundles load cleanly here. The CheckpointHandler Protocol gained an optional hitl_target kwarg — custom host implementations must accept it (defaulting to None).

v0.1.0 — Initial release#

First public wheel. Compiler pipeline (lex → parse → resolve → type-check → IR → verify → serialize), runtime executor for the 14 block kinds, host abstraction via MemoryBackend / ModelProvider / PluginDispatcher protocols, CLI with compile/check/run/inspect, instance routing (stateless / entity / singleton), and checkpoint suspend/resume.

Updated 2026-05-17 08:59:21 View source (.md) rev 4