Release pass 0.12.0 Hardening, and a published record that had gone stale the other way - #212
Conversation
…went stale Three claims about this project became tests in v0.12, and each was false or incomplete when its test was written. No new capability. The adapters go to 1.3.0 with `ctrlrun>=0.5,<0.13`, because the published 1.2.0 declares `<0.12` and would exclude this kernel. Publishing 0.12.0 without them is the ordering that breaks `pip install ctrlrun-langgraph`. `PUBLISHED.toml` is corrected to what PyPI actually serves, 1.2.0 / `<0.12`. It claimed 1.1.0 / `<0.11` for a whole release: 0.11.0 uploaded the adapters and nobody came back to update the record, which is the rule written in that file's own header. The guard could not see it, because a tree that differs from the record and carries a higher version is exactly the shape of a correct pending release. `RECORDED` now freezes 1.2.0's range too. Signed-off-by: arpan <contact@arpanghoshal.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (11)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe project version changed to 0.12.0. Adapter packages changed to 1.3.0 with support for kernel versions below 0.13. Published adapter records, packaging expectations, citation metadata, and the changelog were updated. ChangesRelease metadata and adapter compatibility
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The release metadata and adapter compatibility updates are reported as aligned, with no identified merge-blocking behavior. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
v0.12 asks one question: is what this project says about itself checkable? No new capability. Three claims that were prose became tests, and each was false or incomplete when its test was written.
The blocker this release had to clear first
The published adapters exclude this kernel.
ctrlrun-langgraphandctrlrun-openai-agents1.2.0 declarectrlrun>=0.5,<0.12on PyPI, so 0.12.0 is outside their range. Both go to 1.3.0 with<0.13, and their tags must be pushed before the kernel's — the same ordering 0.11.0 needed.And
adapters/PUBLISHED.tomlhad gone stale in the other direction. It claimed 1.1.0 /<0.11while PyPI has served 1.2.0 /<0.12since the 0.11.0 release. The rule in that file's own header is update the row after the upload succeeds, and the upload is the last thing that happens, so nobody came back. The guard could not see it either: a tree that differs from the record and carries a higher version is exactly the shape of a correct pending release. The record is corrected to what PyPI serves, andRECORDEDnow freezes 1.2.0's range too.That is three releases running where this file has been wrong in a new way. It is doing its job — each time, something caught it — but the pattern is worth naming.
What shipped
The module map is acyclic and §6's rule is a test. Broken in two places:
DecisionandPOLICY_UNAPPROVEDtoctrlrun.decision, then the policy document grammar toctrlrun.grammar, soauthority.pyno longer importspolicy.pyat all.SPEC-v0.3.md§4.5's one-evaluator requirement is better served than before, since it is now owned by neither axis. No public name moved.tests/test_module_graph.py's allow-list of recorded exceptions is empty.Property tests. The invariant that matters is the one v0.11 item 1 violated: every break a tamper reports names a row the store actually holds. The first version of that property was wrong and hypothesis said so on its second example.
An SBOM measured from the wheel, two components, signed with the distributions and attached to the release.
The gateway stopped telling MCP clients to call a Python API, and a shared-directory race that reddened two branches is fixed.
Gate and release verification
Docs are
release/0.12.0. Do not merge before it; do not tag before the adapters.🤖 Generated with Claude Code
Summary by CodeRabbit
Release
Compatibility
Documentation