Skip to content

0.1.6

Choose a tag to compare

@Shashankss1205 Shashankss1205 released this 13 Aug 18:42
· 3 commits to main since this release
00e0c7d

Published to PyPI: https://pypi.org/project/grapharc/0.1.6/

pip install --upgrade grapharc

What ships

  • grapharc[mcp] was broken on arrival (#101). mcp>=1.2 resolved to 2.0, where mcp.server.fastmcp no longer exists, so a fresh install could not import the server. uv.lock pinned 1.28 and hid it from every local test; only a resolver starting from pyproject.toml — a real user — ever saw it. Now mcp>=1.2,<2, with grapharc/mcp/__init__.py resolving the SDK-backed names lazily so the subpackage imports without the extra.
  • grapharc go <run-dir> silently re-executed an already-executed plan (#100). Bare go always skipped executed plans; the named-directory form did not, so re-issuing it ran the whole graph again at exit 0 and overwrote the stamp. Two fixes: the record accumulates executed_run_ids instead of clobbering a scalar, and — the one that matters — a plan carrying an executed_run_id is now refused with exit 2 before anything runs, unless --again says so. An approval binds to a fingerprint that does not change between runs, so this was one human yes authorising N executions of a mutating plan.
  • The deep dive's Verified this pass figures rotted, twice (#42). They are now what one command re-derives, and tests/test_deep_dive.py fails the line rather than letting it drift — including a guard that an unowned figure appearing on the line is itself a failure.
  • Five max_seconds timing tests failed only on a loaded machine (#40). The deadline machinery was never what failed; the assertions were. Every wall-clock bound now sits between the deadline and the uninterrupted body, verified 20/20 under three parallel suites at load average 33-35.
  • Novita joins the model gateway (#102) — thanks @jax-novita. A fifth OpenAI-wire backend behind a novita extra, probed by grapharc models --check like the others.

Behaviour change

A second grapharc go <run-dir> on an executed plan now exits 2 instead of 0. That is the fix rather than a side effect; --again restores the old behaviour explicitly.

Full detail for every entry is in CHANGELOG.md.