Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,41 @@ All notable changes to GraQle are documented in this file.

---

## 0.82.0 (2026-07-28) — [Enterprise: frozen proof spec + conformance suite]

> Publishes GraQle's tamper-evidence proof format as an independently versioned, third-party-implementable
> specification. Purely additive: no signing or verification logic changed, and every previously-issued
> proof bundle continues to verify unchanged.

### Enterprise (CR-010 Enterprise Enhancement Program)

- **Frozen proof spec + conformance suite (R1)** — the proof-bundle envelope, the trusted-key manifest and
the verify-result contract are now published as versioned JSON Schemas plus prose at
`graqle/pct/schema/proof-spec/v1.0/` (`bundle`, `keyring`, `verify-result`, and `SPEC.md`). The spec
version (`graqle.pct.schema.SPEC_VERSION`) is **decoupled from the SDK version**: pinning to
`proof-spec/v1.0` does not pin you to a release. Schemas ship in the wheel and load through
`importlib.resources` via the new `load_proof_schema()` / `proof_schema_text()` helpers.
- **Conformance corpus** — a declarative corpus at `graqle/pct/schema/conformance/` (manifest plus static,
reproducible golden vectors) covering every `VerifyFailure` classification plus the usage-error path.
Each case pins the typed failure, the process exit code, and the distinction between a check that did
not run (absent) and one that ran and failed (present and `false`). The corpus is consumed over a
subprocess/JSON boundary, so a third-party verifier can self-certify without importing GraQle — verified
by running the full corpus from an installed wheel.
- **`graq attest verify` exit codes are now normative**: `0` verified, `1` did not verify, `2` usage error.
A usage error emits `{"ok": false, "error": ...}` and deliberately does not conform to the
verify-result schema, since no verification was attempted.
- **Note for integrators** — `proof_format_version` is published as an **opaque, signature-covered**
string. It is covered by the signature and by the leaf hash, so a verifier must never rewrite or
normalize it; doing so invalidates an otherwise-valid signature. See `SPEC.md` §3.1 and §8.2.

### Monetisation

- **Tier-trust hardening (CR-LIC-03b)** — an unverified tier hint no longer grants entitlement. Tier
resolution consults the verified licence state first; the environment variable selects governance mode
only and is not an entitlement source.

---

## 0.81.0 (2026-07-26) — [Enterprise: secrets providers + gateway backend]

> First two P0 requirements of the Enterprise Enhancement Program (CR-010). Both are additive and
Expand Down
2 changes: 1 addition & 1 deletion graqle/__version__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
# constraints: none
# ── /graqle:intelligence ──

__version__ = "0.81.0"
__version__ = "0.82.0"
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,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.81.0"
version = "0.82.0"
description = "Give your AI tools architecture-aware reasoning. Build a knowledge graph from any codebase — dependency analysis, impact analysis, governed AI answers with confidence scores. Works with Claude Code, Cursor, VS Code Copilot. 14 LLM backends, fully offline capable."
readme = "README.md"
license = {text = "Apache-2.0"}
Expand Down
Loading