Release 0.1.6 - #107
Merged
Merged
Conversation
Cuts the Unreleased section, which had been accumulating since 0.1.5, and adds the five changes that landed after it: the `grapharc[mcp]` resolver break, the silent `go <dir>` re-execution, the deep dive's unowned figures, the timing tests that only failed under load, and Novita joining the model gateway. The version moves in the two places CI compares (`pyproject.toml`, `grapharc/__init__.py`) and in the four places prose states it: the README's status line, the deep dive's "on PyPI is that wheel" claim, the basics cookbook's "verified against" line and its `grapharc --version` transcript, and the serving cookbook's two `/health` transcripts. All of those except the README are asserted by tests, which is how they were found. `test_version_matches_the_page` no longer pins a literal. It was a *third* place the version was written down, after the two CI compares, and the only one of the three nothing checked against the others — so a release bump reddened it for saying nothing about the page it is named after. It reads the page now and holds every version the page states against `__version__`, so a bump either moves the page or fails. That is the same rot this release closes for the deep dive's figures. Verified: `uv run pytest` green, `uv run ruff check .` clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts the
Unreleasedsection, which had been accumulating since0.1.5, and adds the five changes that landed after it.What ships
grapharc[mcp]was broken on arrival (grapharc[mcp] is broken on arrival: mcp>=1.2 resolves to 2.0, where mcp.server.fastmcp no longer exists #101) —mcp>=1.2resolved to 2.0, wheremcp.server.fastmcpno longer exists. Pinned<2;grapharc/mcp/__init__.pyresolves the SDK-backed names lazily so the subpackage imports without the extra.go <dir>silently re-executed an already-executed plan (go <dir> re-executes an already-executed plan silently, and plan.json forgets the earlier runs #100, go <dir> refuses a plan that already ran, and the record stops forgetting #104) — refused with exit 2 unless--again; the record accumulatesexecuted_run_ids. An approval binds to a fingerprint that does not change between runs, so this was one human yes authorising N executions of amutatingplan.tests/test_deep_dive.py, with guards against a figure being deleted or an unowned one being added.max_secondstiming tests failed only under load (tests: the max_seconds timing tests flake under CPU contention, not on an idle machine #40, Timing bounds sit between the deadline and the body, not close to either #106) — every wall-clock bound now sits between the deadline and the uninterrupted body.novitaextra.The version moves in six places
Two that CI compares (
pyproject.toml,grapharc/__init__.py) and four where prose states it: the README status line, the deep dive's "on PyPI is that wheel", the basics cookbook's "verified against" line and itsgrapharc --versiontranscript, and the serving cookbook's two/healthtranscripts. All but the README are asserted by tests, which is how they were found — the bump reddenedtest_cookbook_serving.pyandtest_deep_dive.pyimmediately.One test changed shape
test_version_matches_the_pagewasassert __version__ == "0.1.5"— a third place the version was written down, and the only one of the three that CI's version check does not compare. Its practical effect was to redden on every release while saying nothing about the page it is named after. It now reads the page and holds every version stated there against__version__, so a bump either moves the page or fails.Verification
uv run pytestgreen ·uv run ruff check .clean.Note for the merge
0.1.6is a patch bump on a 0.x line, consistent with0.1.1→0.1.5, but it carries one behaviour change: a secondgrapharc go <run-dir>on an executed plan now exits 2 instead of 0. That is the fix, not a side effect, and--againrestores the old behaviour explicitly.🤖 Generated with Claude Code