Skip to content

Releases: jascal/orca-lang

v0.1.30

Choose a tag to compare

@github-actions github-actions released this 03 Jun 02:36

Changed

  • CI / release: npm publishing for @orcalang/orca-lang, @orcalang/orca-runtime-ts, and @orcalang/orca-mcp-server migrated from a long-lived NPM_TOKEN to OIDC trusted publishing. There is no stored npm credential anymore, and publishes now carry provenance attestations. release.yml gains id-token: write on the three npm jobs, pins pnpm/action-setup to 10.33.0 (OIDC publish support requires pnpm ≥ 10.18), and drops NODE_AUTH_TOKEN. The MCP-registry publish is token-less as well (npm ownership is verified via the published mcpName field). Added a repository field to the three npm package.json files, required for provenance.

No functional or library changes — the train is version-bumped to stay in lockstep.


v0.1.29 — runtime-python QA fixes (RT-06/07/12/14)

Choose a tag to compare

@jascal jascal released this 02 Jun 22:33

Fixed

  • packages/runtime-python: four QA findings from reports/python-runtime-qa-report.md (RT-06/07/12/14), reproduced end-to-end and covered by 10 regression tests in tests/test_qa_fixes.py:
    • RT-12 (HIGH): event.* guards now resolve against the triggering event's payload (e.g. event.amount > 100) instead of None. The event is threaded through _evaluate_guard → _eval_guard → _eval_compare/_eval_nullcheck → _resolve_variable.
    • RT-14 (MED): ordered comparisons (< > <= >=) fail closed on None/non-numeric operands instead of falling back to lexicographic string compare (which masked RT-12). Numeric-looking strings still coerce; eq/ne unchanged.
    • RT-06 (MED): a state's on_entry runs before its invoked child starts (XState order) instead of being dropped by an early return.
    • RT-07 (MED-HIGH): resume()/restore() rehydrate invoked child machines and active_invoke, so a machine that crashed inside an invoke state is no longer permanently wedged. Sibling defs must be re-registered before resume; a missing sibling is skipped with a UserWarning.
  • Full runtime-python suite: 116 passed.

The npm packages (@orcalang/orca-lang, @orcalang/orca-runtime-ts, @orcalang/orca-mcp-server) are version-bumped to keep the release train in lockstep — no functional changes to them.


v0.1.28

Choose a tag to compare

@github-actions github-actions released this 30 May 03:54
1979798
v0.1.28 — orca-runtime-python: ship the cross-tool bridge

Python-only release. PyPI 0.1.27 predated the bridge (#13); 0.1.28 is the first
published runtime-python with register_foreign_runner + the bridge module
(protocol 1.0). npm packages remain 0.1.27 (the Release workflow skips them).

v0.1.27

Choose a tag to compare

@github-actions github-actions released this 17 Apr 03:15
chore: bump all packages to v0.1.27

8 QA-verified bug fixes across verifier, parser, and compilers plus
demo-fortran Makefile warning suppression.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v0.1.26

Choose a tag to compare

@github-actions github-actions released this 05 Apr 17:28
chore: bump runtime-python to v0.1.26

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

v0.1.25

Choose a tag to compare

@github-actions github-actions released this 05 Apr 17:00
chore: bump runtime-python to v0.1.25

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

v0.1.24

Choose a tag to compare

@github-actions github-actions released this 04 Apr 01:43
chore: bump all packages to v0.1.24

v0.1.21

Choose a tag to compare

@github-actions github-actions released this 02 Apr 19:03
chore: bump all packages to v0.1.21

v0.1.19

Choose a tag to compare

@github-actions github-actions released this 01 Apr 20:42
chore: bump all packages to v0.1.19

v0.1.18

Choose a tag to compare

@github-actions github-actions released this 30 Mar 22:45

Added

  • packages/runtime-python: production hardening — Gap 1–4, M-1, M-2
    • Gap 1: snapshot() now includes "machine" and "definition_version" fields, making snapshots self-describing for external storage
    • Gap 2: send() before start()/resume() raises MachineNotActiveError instead of silently returning taken=False, surfacing sequencing bugs at the call site
    • Gap 3: AsyncPersistenceAdapter Protocol for async database/network backends; OrcaMachine accepts sync or async adapter (auto-detected via iscoroutinefunction), auto-saves after every transition, gains load_or_start() convenience method
    • Gap 4: MachineDef.version field (default "0.1.0"), parsed from - version: X.Y.Z bullet under # machine heading; resume() emits a UserWarning when snapshot version does not match the current definition version
    • M-1: _validate_machine_def() runs after parsing — checks for states, an [initial] state, valid transition sources/targets, and defined guards (stripping ! negation prefix before lookup)
    • M-2: TransitionResult.to_state_leaf exposes the leaf state name directly, avoiding dot-notation parsing for compound state callers
  • 18 new tests in test_production_hardening.py; all 87 runtime-python tests pass