v0.1.29 — runtime-python QA fixes (RT-06/07/12/14)
Fixed
packages/runtime-python: four QA findings fromreports/python-runtime-qa-report.md(RT-06/07/12/14), reproduced end-to-end and covered by 10 regression tests intests/test_qa_fixes.py:- RT-12 (HIGH):
event.*guards now resolve against the triggering event's payload (e.g.event.amount > 100) instead ofNone. The event is threaded through_evaluate_guard → _eval_guard → _eval_compare/_eval_nullcheck → _resolve_variable. - RT-14 (MED): ordered comparisons (
< > <= >=) fail closed onNone/non-numeric operands instead of falling back to lexicographic string compare (which masked RT-12). Numeric-looking strings still coerce;eq/neunchanged. - RT-06 (MED): a state's
on_entryruns 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 andactive_invoke, so a machine that crashed inside aninvokestate is no longer permanently wedged. Sibling defs must be re-registered before resume; a missing sibling is skipped with aUserWarning.
- RT-12 (HIGH):
- 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.