From 0b2cfc730aab50d207a23471c3bffe5750df7a3f Mon Sep 17 00:00:00 2001 From: quantamixsol Date: Sun, 27 Sep 2026 09:47:14 +0200 Subject: [PATCH] release: 0.85.0 - CI integrity Bumps 0.84.1 -> 0.85.0 and syncs all 5 distribution manifests. WHAT THIS RELEASE IS CR-CI-001 and the release-gate work. The headline is that CI's green signal now means something: the suppression ceiling drops 37 -> 5 with a ratcheting guard, and roughly 206 previously hidden tests execute. - ceiling 37 -> 5, MAX ratchets DOWN and any PR raising the count fails CI - the release gate fails CLOSED: a provider timeout or internal error returned WARN at confidence 0.0, so a gate that could not evaluate let the release through. Both now BLOCK. - release-gate failures are diagnosable: handlers logged only type(exc).__name__, so every failure read as a bare class name with no message and no traceback. - hypothesis declared in dev extras; CliRunner.isolated_filesystem replaced with pytest tmp_path (removed in newer click, and typer is unpinned). NO NEW DAG-2026 DISCLOSURE The Decision Assurance Gate foundation shipped in 0.84.1. This release adds nothing to it. Verified in the built wheel: RESEARCH.md absent, reason-code registry seed still empty, zero "0.85.0" strings in reason_codes.py, and none of the withheld identifiers present. CHANGELOG The 0.84.1 entry was still headed "Unreleased" and disclosed 37 suppression flags. Both are now stale, so it is marked shipped with its date and the 0.85.0 entry states that the 37 figure is superseded. VERIFICATION manifests all 5 at 0.85.0 (--check) ceiling guard count=5 MAX=5 PASS trade-secret gate PASS (real wheel) monetisation gate PASS TS scan on diff 0 hits built wheel 0.85.0 - mcp-name marker present - RESEARCH.md absent - 0 seed entries - 0 id leaks - Verdict.BLOCK fallback shipped - logger.exception x2, type(exc).__name__ x0 Public CI green on ace49acf before tagging. Deploy Lambda is red there and has been on every master commit since 2026-07-27 (invalid AWS credentials); it deploys cognigraph-api and never touches the PyPI artifact. Co-Authored-By: Claude Opus 5 (1M context) --- .agents/plugins/marketplace.json | 2 +- .claude-plugin/marketplace.json | 2 +- CHANGELOG.md | 46 ++++++++++++++++++- graqle/__version__.py | 2 +- .../graqle/.claude-plugin/plugin.json | 2 +- .../codex/graqle/.codex-plugin/plugin.json | 2 +- pyproject.toml | 2 +- server.json | 4 +- 8 files changed, 53 insertions(+), 9 deletions(-) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 5482433..b9ac884 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -13,7 +13,7 @@ "name": "graqle", "source": "./plugins/codex/graqle", "description": "Graph-powered codebase reasoning, impact analysis, and governed edits via the GraQle MCP server, plus governed-workflow skills.", - "version": "0.84.1", + "version": "0.85.0", "author": { "name": "Quantamix Solutions", "url": "https://graqle.com" diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 8ccaa7e..856137d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -13,7 +13,7 @@ "name": "graqle", "source": "./plugins/claude-code/graqle", "description": "Graph-powered codebase reasoning, impact analysis, and governed edits via the GraQle MCP server, plus governed-workflow skills and an optional governance gate hook.", - "version": "0.84.1", + "version": "0.85.0", "author": { "name": "Quantamix Solutions", "url": "https://graqle.com" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fd8552..aed7638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,51 @@ All notable changes to GraQle are documented in this file. --- -## Unreleased — 0.84.1 (DAG-2026 CR-012 foundation) +## 0.85.0 — 2026-09-27 (CI integrity) + +> **CI suppression status (CR-CI-001, issue #350).** The suppression ceiling on this repo +> drops from **37 to 5** in this release, and a ratcheting guard now enforces it: `MAX` may +> only move down, and any PR that raises the count fails CI. Roughly **206 previously hidden +> tests now execute**. The 0.84.1 entry below stated 37 flags; that number is superseded. + +### Changed + +- **CI suppression ceiling 37 → 5, with a ratcheting guard.** Phase 2 removed 14 stale flags; + Phase 3 converted 11 files to named skips (10 patent stubs naming their exact stub module and + EP application, plus one naming the Ollama service and model); Phase 4 repaired 7 genuinely + failing files. Public and private CI are now at parity. +- **The release gate fails closed.** `graqle/release_gate/engine.py` previously returned `WARN` + at confidence 0.0 when it could not evaluate — a provider timeout or an internal error read as + "low confidence, proceed", so a gate that could not assess a release let it through. Both now + return `BLOCK`. Bad input blocks too: a gate that cannot parse its own diff, target or + `min_confidence` has no basis to pass a release. The never-crash and no-leak contracts are + unchanged, and compose verdicts are unaffected — only the fallback changed. +- **Release-gate failures are diagnosable.** Both provider-exception handlers logged only + `type(exc).__name__`, so every failure surfaced as a bare class name with no message and no + traceback. They now log the full exception. The verdict object stays redacted: the operator + log and the user-facing verdict have opposite requirements, and a test asserts both. + +### Fixed + +- `hypothesis` was imported by several test modules but never declared in the dev extras. The + gap stayed invisible because every affected module sat behind an `--ignore` flag. +- `CliRunner.isolated_filesystem` was removed in newer click; `typer[all]>=0.9` is unpinned, so + CI resolved a version where it does not exist while local installs still had it. Those tests + now use pytest's `tmp_path`, which does not depend on the runner's API surface. +- A Hypothesis `too_slow` health check on input generation began failing once ~460 previously + hidden tests started collecting. Suppressed, matching the sibling property tests. + +### Notes + +- **No new DAG-2026 disclosure in this release.** The Decision Assurance Gate foundation shipped + in 0.84.1; the reason-code registry still ships with an empty seed and `GRAQLE_DAG_ENABLED` + remains `false` by default. +- Two defects that the suppression flags were concealing are tracked separately rather than + fixed here, because each needs a decision rather than a patch. + +--- + +## 0.84.1 — 2026-09-23 (DAG-2026 CR-012 foundation) > **CI suppression disclosure (CR-CI-001, issue #350).** CI's green signal for this release is > maintained by **37 `--ignore=` flags** in `.github/workflows/ci.yml`: those test files are not diff --git a/graqle/__version__.py b/graqle/__version__.py index cf56fa7..7980df7 100644 --- a/graqle/__version__.py +++ b/graqle/__version__.py @@ -5,4 +5,4 @@ # constraints: none # ── /graqle:intelligence ── -__version__ = "0.84.1" +__version__ = "0.85.0" diff --git a/plugins/claude-code/graqle/.claude-plugin/plugin.json b/plugins/claude-code/graqle/.claude-plugin/plugin.json index bb66d60..afcbc94 100644 --- a/plugins/claude-code/graqle/.claude-plugin/plugin.json +++ b/plugins/claude-code/graqle/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "graqle", - "version": "0.84.1", + "version": "0.85.0", "description": "GraQle dev intelligence layer: graph-powered codebase reasoning, impact analysis, and governed edits via MCP, plus governed-workflow skills and an optional governance gate hook.", "author": { "name": "Quantamix Solutions", diff --git a/plugins/codex/graqle/.codex-plugin/plugin.json b/plugins/codex/graqle/.codex-plugin/plugin.json index b6b500b..acce476 100644 --- a/plugins/codex/graqle/.codex-plugin/plugin.json +++ b/plugins/codex/graqle/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "graqle", - "version": "0.84.1", + "version": "0.85.0", "description": "GraQle dev intelligence layer: graph-powered codebase reasoning, impact analysis, and governed edits via MCP, plus governed-workflow skills.", "interface": { "displayName": "GraQle", diff --git a/pyproject.toml b/pyproject.toml index 5a8fec4..4a26a3f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ name = "graqle" # (first-to-finish/best-of-N) + CostAwareRouter (auto cost/latency selection) — # dual-provider autonomy. 0.77.0 = ADR-239 Stage 2 # (CheckpointProtocol + run_tests). 0.76.0 = ADR-225 G1 multi-tenant memory. -version = "0.84.1" +version = "0.85.0" description = "Persistent organisational intelligence for AI agents. Turn codebases, documents, policies and decisions into a knowledge graph so Claude Code, Cursor and Copilot reason over architecture, dependencies and prior lessons — with confidence scores and evidence. 13 LLM backends + custom, fully offline capable." readme = "README_PYPI.md" license = {text = "Apache-2.0"} diff --git a/server.json b/server.json index 6382d96..e5ebda7 100644 --- a/server.json +++ b/server.json @@ -8,12 +8,12 @@ "url": "https://github.com/quantamixsol/graqle", "source": "github" }, - "version": "0.84.1", + "version": "0.85.0", "packages": [ { "registryType": "pypi", "identifier": "graqle", - "version": "0.84.1", + "version": "0.85.0", "transport": { "type": "stdio" }