From 9c9de76d15f0bbbc16828e196b3733ad5bafecb1 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 13 Jun 2026 10:52:25 -0700 Subject: [PATCH] =?UTF-8?q?v0.43.0.0=20feat(mcp):=20MEMORY=5FVERBS=20v1=20?= =?UTF-8?q?=E2=80=94=20frozen=20five-verb=20memory=20protocol=20+=20confor?= =?UTF-8?q?mance=20kit=20(cathedral=201)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ TODOS.md | 24 ++++++++++++++++++++++++ VERSION | 2 +- package.json | 2 +- 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6972e9a6..76438fd60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,54 @@ All notable changes to GBrain will be documented in this file. +## [0.43.0.0] - 2026-06-12 + +**Your agent now has five memory verbs it can actually reach.** Cathedral 1 freezes +a stable, versioned memory protocol — `recall`, `remember`, `entity`, `synthesize`, +`forget` — over the brain's operation catalog, the way Postgres speaks one wire +protocol to every client. Point any MCP harness at it (`claude mcp add gbrain -- +gbrain serve --surface verbs`, or the Codex/OpenClaw equivalents) and the agent sees +exactly five self-describing tools instead of a wall of internal ops. Every response +carries what it is, why it matched, where it came from, and what it cost — and the +contract never breaks: v1 field names and meanings are frozen, changes are +additive-forever. + +What you can do now that you couldn't before: + +- **Remember a fact once, recall it in a fresh session — in any harness.** `remember` + takes mandatory provenance (where the fact came from) and an optional expiry, dedupes + against what's already known, and updates in place when a fact changes + ("X joined acme-example" → "X left acme-example"). `recall` retrieves saved facts and, + with a query, budget-packed page snippets — the server enforces the token budget and + tells you what it dropped instead of trusting the client to trim. +- **Look up one person/company/project as a compact card in well under 100ms, zero LLM + calls.** `entity` resolves a name to a privacy-safe card (who/what, aliases, + last-touched, open threads, top typed edges) — or, on a miss, near-miss suggestions + instead of a dead end. +- **Reason across pages when you actually need it.** `synthesize` is the explicitly + expensive verb (it says so in its own description), with a best-effort cost block so + agents choose it deliberately. No API key configured? It says `unavailable` with a + fix, never a fake answer. +- **Certify any memory server against the contract.** `gbrain protocol --json` publishes + the machine-readable spec; `gbrain protocol conformance [--target ]` runs the + frozen-contract test suite against gbrain's own server or any MCP endpoint — and + provably fails servers that don't comply. `gbrain protocol stats` shows per-verb + adoption and your real time-to-first-use, all from a local file that never leaves + your machine. + +`gbrain serve` keeps every operation by default (`--surface full`) — existing installs +are unchanged. The new `--surface verbs` is the quickstart surface for agents. No schema +migration; the verbs ride the existing facts, pages, and typed-graph tables. The full +contract, per-harness install blocks, and the additive-forever versioning policy live in +[docs/protocol/MEMORY_VERBS_v1.md](docs/protocol/MEMORY_VERBS_v1.md). + +To take advantage of v0.43.0.0: re-run `gbrain serve` with `--surface verbs` to give +your coding agent the five-verb memory protocol (or keep `--surface full` for the +complete operation catalog — both speak the verbs). Run `gbrain protocol conformance` +to self-certify, and `gbrain protocol stats` to watch adoption. Memories your agent +saves are readable by every agent connected to the brain by default; pass +`visibility: "private"` for local-only facts. + ## [0.42.42.0] - 2026-06-12 **`gbrain query` no longer pays a flat 10-second exit tax on managed Postgres behind a transaction-mode pooler — and CLI exit codes finally tell the truth on PGLite.** On deployments where the pooler holds sockets open past the bounded pool drain (gbrain#2084, a residual of gbrain#1972), every query printed its results and then sat for 10 seconds until the force-exit banner fired. The cause was two-layered: the hard-deadline timer was armed *before* the operation handler, so a multi-second search on a large brain burned the teardown budget (and any operation slower than 10 seconds was silently killed mid-run with exit 0 and truncated output); and the CLI never exited explicitly on success — it waited for Bun's event loop to drain, which a stuck pooler socket can hold open forever. diff --git a/TODOS.md b/TODOS.md index 92c22f146..e3132bdbf 100644 --- a/TODOS.md +++ b/TODOS.md @@ -1,5 +1,29 @@ # TODOS +## MEMORY_VERBS v1 follow-ups (filed v0.43.0.0 — Cathedral 1) + +Deferred from the Cathedral 1 ship (CEO review, EXPANSION mode). Both are +additive to the frozen v1 contract — neither breaks it. See plan + GSTACK +REVIEW REPORT at `~/.claude/plans/system-instruction-you-are-working-agile-iverson.md` +and the scope record at `~/.gstack/projects/garrytan-gbrain/ceo-plans/2026-06-12-memory-verbs-protocol.md`. + +- [ ] **P3 — external-implementation certification PROGRAM.** The conformance + TOOLING shipped (`gbrain protocol conformance --target `); the + PROGRAM around it (badges, a registry of conformant implementations, listed + third-party servers) waits for a second implementation to exist. **Why:** the + protocol-not-product thesis only pays off once someone else implements + MEMORY_VERBS; until then a certification program certifies an empty set. + **Where:** new — would build on `src/commands/protocol.ts` conformance output. +- [ ] **P3 — persistent open-threads model for the entity card.** v1 derives + `entity.open_threads` from active commitment-kind facts + recent timeline + entries (best-effort, possibly empty). A richer model (a real threads table: + conversation id, opened/closed state, last activity) would make open-threads + authoritative. **Why:** the card's open-threads field is the weakest signal + in v1; a first-class threads store would make it load-bearing. **Where:** + `src/core/verbs/entity-card.ts` open-threads assembly + a new schema table + (additive — the card field already exists, so this is a quality upgrade, not + a contract change). + ## gbrain triage wave follow-ups (filed v0.42.41.0) Deferred from the v0.42.41.0 fix wave (eng-reviewed as separate scope, not hotfixes). diff --git a/VERSION b/VERSION index b7fef61ef..ffbd6c8fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.42.42.0 \ No newline at end of file +0.43.0.0 diff --git a/package.json b/package.json index a345afb96..642d29715 100644 --- a/package.json +++ b/package.json @@ -143,5 +143,5 @@ "bun": ">=1.3.10" }, "license": "MIT", - "version": "0.42.42.0" + "version": "0.43.0.0" }