Release 0.83.0 — free-tier reasoning cap (W3) + scheduler contract (R6) - #246
Merged
Merged
Conversation
Version bump only — no source changes. Ships six commits already merged on public master b79c63d: eedc417 CR-010.R6 scheduler contract (graqle/cli/) ffeafb7 W3 reasoning-quota wall (ADR-245 Decision 8) 0d2fc51 W3 move the reasoning wall to the SDK primitive 4cc7963 W3 test isolation 888d1e7 W3 review fixes: close the GRAQLE_QUOTA_DIR bypass 78af189 W3 harden the quota-dir guard: sys.modules, not an env var The CHANGELOG entry LEADS with a BREAKING CHANGE block. W3 caps free-tier graph reasoning per month, so calls that previously succeeded now raise ReasoningQuotaExceeded. Paid tiers unaffected. Every API name in that block was verified against source: ReasoningQuotaExceeded is defined in reasoning_quota.py:61 (an earlier draft wrongly said reasoning_gate.py), peek() is a ReasoningQuota method at :166 returning QuotaReading. Sentinel: pass 1 BLOCK (3 blockers) -> pass 2 APPROVE, 0 blockers, 92%. BLOCKER-1/2 breaking-change signalling: REAL, fixed. BLOCKER-3 server.json stale version: REFUTED — publish-mcp-registry.yml rewrites server.json from the tag at publish; the job is gated on a v* tag push, so "skipped" on a branch merge is correct-by-design. Advisory "other 0.82.0 refs": REFUTED — git grep returns only the two bumped files. TS-screen: 0. plan_faa050ba. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
🛡️ GraQle PR Guardian💥 Blast Radius: 3 modules affected
Total blast radius: 3 🏛️ Governance Verdict
|
| Metric | Value |
|---|---|
| Blast Radius | 3 |
| Files Analyzed | 3 |
| Blocked | 0 |
| SHACL Violations | 0 |
| Verdict | WARN |
🔬 Powered by GraQle PR Guardian v0.1.0 · Scan completed 2026-07-31T12:34:33.041543+00:00
harishquantamix
approved these changes
Jul 31, 2026
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.
Release 0.83.0 — free-tier reasoning cap (W3) + scheduler contract (R6)
Public port of private #326 (
28398970), merged 2026-07-31. Version files arebyte-identical to
private/master. 3 files:pyproject.toml,graqle/__version__.py,CHANGELOG.md. No code changes — the code already landed in #245.Reasoning on the free tier is now capped per calendar month; over the cap, calls that
previously succeeded raise
ReasoningQuotaExceeded. Paid tiers are unaffected. TheCHANGELOG leads with the notice, names the exception and its import path, and gives the
upgrade path — this is the first release where a previously-working call can fail, so it
is called out at the top rather than buried in a feature list.
What ships
areason_streamandgraq debatecarry their own gates (they never reachareason)--headless/--json, normative exit codes, content-hash incrementalrebuildVerified from the built wheel — not source
Built
graqle-0.83.0-py3-none-any.whl, installed it into a clean venv, and exercisedthe wall end-to-end:
Wheel contents confirmed:
reasoning_gate.py+reasoning_quota.pyship; thesys.modulesguard is present; the unconditionalGRAQLE_QUOTA_DIRoverride isgone; month-pruning is in;
graqle/cloud/*andgraqle/server/*are stripped(0 entries each).
Ordering
private #325(back-port of the paywall-bypass fix) was merged before#326, so therelease is cut from a private master that no longer contains the vulnerable
resolve_quota_dir(). Confirmed onprivate/master: unconditional override gone,sys.modulesguard present, version0.83.0.Rule #0
git remote -vrun before push. Public cherry-pick authorised only because private#326 is merged (
2026-07-31T12:28:52, base advanced to9fee93ac). Sequential gatesatisfied.
After merge
Tag
v0.83.0→ PyPI publishes → MCP Registry auto-follows.Known red:
Release Gate (PyPI)— documented repo-wide infra flake (FileNotFoundError,exit 2) that also failed on #243, #244 and #245, all of which merged. Needs an
owner-approved infra fix (empty
GRAQLE_LICENSEsecret); unrelated to this diff.🤖 Generated with Claude Code