Repository navigation
graphx v0.7.1 — bug-fix release
A patch release fixing 15 verified bugs found in a parallel subsystem audit (engine, nodes/resilience/LLM, builder/export/secrets). Every finding had a concrete failure scenario and a regression test.
Highlights (HIGH severity)
- Merges no longer mishandle optional branches. A branch skipped by a
when:/condition was recorded as failed (spurious merge failure), or — if pruned upstream — never arrived, so the merge and everything downstream were silently dropped while the run reported "finished." Now a 3-state arrival model (ok/failed/skipped) + a pending-merge flush make optional-branch fan-in correct. ${ENV}no longer breaks validate/edit. An unset environment variable made a valid workflow fail to load, breakinggraphx validateandgraphx edit. Unset${VAR}is now left as a placeholder (likesecret://).mapretries transient item errors again. Re-raising insideasyncio.TaskGroupproduced anExceptionGroupthat defeated the retry predicate; now unwrapped.
Also fixed (MEDIUM/LOW)
interval every:0 busy-loop · a bad cron silently killing a schedule · one malformed trigger dropping a whole file's triggers · shell BrokenPipe on unconsumed stdin · redactor substring-leak + short-value over-masking (which could corrupt resumed state) · update_node(None) backend divergence · export omitting ${ENV} names · stale export wheel · agentic add_node id/type clobber · map None-output drop · shell SIGKILL-on-cancel · daemon shutdown drain · Anthropic parallel tool_result 400.
263 tests, ruff-clean, Python 3.12+. No behavior change for correct workflows (golden-trace + resume-equivalence tests green).