Skip to content

Commit 18d0b19

Browse files
NickCirvclaude
andcommitted
release: stage v4.3.1 "Proof" (patch) — version bumps + CHANGELOG + release notes
All surfaces aligned to 4.3.1: package.json, server.json (x2), README banner + install snippet + test badge (1128 -> 1144) + a v4.3.1 what's-new note, docs/install.html, CHANGELOG [4.3.1] entry, docs/release-notes-4.3.1.md. v4.3.1 bundles the two execution-swarm-audit fix commits (c8df2cd, 4c46d09) + the earlier #90/5-bugs/docs: honest cost-digest + bench phrasing, the incremental cross-file edge rebuild, the mtime-keyed refs cache (328ms -> ~1ms on the reindex hot path), the MCP serverInfo version fix, doctor kill-switch warning, gen clean error, and the 5 robustness fixes. No new features. Ship-hygiene: tsc clean; full suite 1144/1144; e2e from the built dist confirms the cost digest carries the "not a bill saving" caveat and bench prints "5x LARGER" honestly; npm pack -> engramx-4.3.1.tgz, 55 files, 0 dev files; version consistent across package.json / server.json / built CLI / MCP serverInfo; leak-scan clean. Gated to Nick (the publish ritual): tag v4.3.1 + push + gh release + npm publish (2FA) + mcp-publisher republish. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4c46d09 commit 18d0b19

6 files changed

Lines changed: 67 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,38 @@ All notable changes to engram are documented here. Format based on
66

77
## [Unreleased]
88

9+
## [4.3.1] — 2026-06-06 — "Proof" (patch)
10+
11+
**Why:** a two-pass execution-swarm audit (agents that *ran* engram end-to-end, not just read it)
12+
plus a perf self-audit hardened the 4.3.0 release. All fixes, no new features, no change to the
13+
honest claim. 1144 tests.
14+
15+
### Fixed
16+
- **Honesty — `engram cost` digest:** the weekly digest (built for Substack/LinkedIn/Telegram) printed
17+
an unqualified `Total tokens saved: … (100% reduction, ~$3.60)`. It now carries the full
18+
"structural reduction, **not a bill saving** — net over prompt caching ≈ 0; USD is illustrative
19+
list-price only" caveat. The cost module predated the honesty pass.
20+
- **Honesty — `bench`/`stats` ratio:** a packet *larger* than the relevant files printed as
21+
"0.2x smaller packet" (a sub-1 ratio shown as a win). New `packetRatioPhrase()` centralises honest
22+
wording across the CLI, bench, and HTTP server: "5x LARGER — engram passes through".
23+
- **Graph drift — incremental reindex:** single-file `reindex` / `watch` / the reindex-hook (fires on
24+
every edit) deleted + re-extracted a file but never rebuilt the name-resolved cross-file `calls`
25+
relation, so ranking/callers/callees drifted until the next full `init`. Now rebuilt on both the
26+
index and prune paths.
27+
- **Perf:** that rebuild re-parsed every file on disk (~330ms on a 1k-node graph) on the hot path. An
28+
mtime-keyed per-file refs cache (`file_refs_cache`) makes a single-file reindex re-parse only the
29+
changed file — measured **328ms → ~1ms** warm, identical edges (equivalence-tested).
30+
- **MCP server:** `serverInfo.version` was hardcoded to `0.2.1` (clients/registry saw the wrong
31+
version); now reads the real package version (4.3.1).
32+
- **`engram doctor`:** reported a green "hook active" even with the `.engram/hook-disabled` kill switch
33+
set; now warns "installed but DISABLED".
34+
- **`engram gen --task <bad>`:** threw a raw stacktrace; now prints the clear "unknown task" message and
35+
exits 1.
36+
- **Robustness:** grep-family Bash parser no longer mis-intercepts output-mode flags placed after the
37+
pattern (`rg sym -l`/`-c`/`-A 3`); `missingHookEvents` no longer throws on a hand-edited
38+
`settings.json`; Windows drive-letter paths survive `measure`'s recall set; recall bench guards
39+
`trials === 0` (no `NaN%`).
40+
941
## [4.3.0] — 2026-06-05 — "Proof"
1042

1143
**Why "Proof":** this release makes engram's saving real and *provable*. `engram measure` shows the

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<p align="center">
2-
<img src="assets/banner-v3.png" alt="engramx — the universal context spine for AI coding tools (v4.3 'Proof')" width="100%">
2+
<img src="assets/banner-v3.png" alt="engramx — the universal context spine for AI coding tools (v4.3.1 'Proof')" width="100%">
33
</p>
44

55
<p align="center">
@@ -58,7 +58,7 @@
5858
<a href="https://open-vsx.org/extension/nickcirv/engram-vscode"><img src="https://img.shields.io/open-vsx/v/nickcirv/engram-vscode?color=blue&label=OpenVSX" alt="OpenVSX engram-vscode"></a>
5959
<img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License">
6060
<img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="Node">
61-
<img src="https://img.shields.io/badge/tests-1128%20passing-brightgreen" alt="Tests">
61+
<img src="https://img.shields.io/badge/tests-1144%20passing-brightgreen" alt="Tests">
6262
<img src="https://img.shields.io/badge/per--file%20reduction-53--89%25-orange" alt="53-89% per-file structural reduction">
6363
<img src="https://img.shields.io/badge/native%20deps-zero-green" alt="Zero native deps">
6464
<img src="https://img.shields.io/badge/LLM%20cost-$0-green" alt="Zero LLM cost">
@@ -86,8 +86,8 @@ mkdir -p /tmp/engram-demo && cd /tmp/engram-demo && \
8686
echo "export const buggy = () => null;" > src.ts && \
8787
git add -A && git commit -q -m "feat: add buggy helper returning null causing form crashes" && \
8888
git revert --no-edit HEAD > /dev/null && \
89-
npx --yes engramx@4.3.0 init . && \
90-
npx --yes engramx@4.3.0 mistakes
89+
npx --yes engramx@4.3.1 init . && \
90+
npx --yes engramx@4.3.1 mistakes
9191
```
9292

9393
You should see, within 30 seconds, the **bi-temporal pre-mortem** engram auto-captured from your revert:
@@ -121,7 +121,9 @@ Works in 8 IDEs and counting — Claude Code, Cursor, Cline, Continue.dev, Aider
121121

122122
> **v4.3 "Proof" shipped 2026-06-05 — engram's saving is now real *and provable*.** Run **`engram measure`** in your own repo to see the honest structural context-token reduction on **your** code — every disclosure computed live: it's a ceiling, here's the recall, here's the intercept rate, "structural tokens, not your bill." Run **`npm run bench:recall`** for the reproducible proof that engram surfaces the files a change actually touches (recall@10 33% on engram's own repo, decomposed honestly: candidate generation reaches 43%, the PageRank ranker adds +3.2pp over random-within-candidate; 10.4% blind chance).
123123
>
124-
> New this release: a **never-worse gate** on Grep (engram passes through whenever its packet isn't actually smaller — sized to your grep's exact `cwd`/`path`/`glob` scope), **Bash-grep interception** (the shell-only IDEs — Aider, Codex CLI, Cline — now get the call-site packet too), a **sub-agent context broker** (a tight ~100-token ranked slice into each spawned Claude Code sub-agent — the one regime prompt caching can't help), and a **compaction ledger** (a "previously read" list injected at `/compact` so the agent doesn't re-explore). Every number is a measured fact or a labelled bet — **no cost claims**; a *structural* context reduction, not a bill saving (engram's net over prompt caching ≈ 0). 1128 tests. See [CHANGELOG.md](CHANGELOG.md), `docs/COMPARISON.md` (vs the other local code-graph tools — ranking isn't unique, the *combination* is), and `docs/FRONTIER.md`.
124+
> New this release: a **never-worse gate** on Grep (engram passes through whenever its packet isn't actually smaller — sized to your grep's exact `cwd`/`path`/`glob` scope), **Bash-grep interception** (the shell-only IDEs — Aider, Codex CLI, Cline — now get the call-site packet too), a **sub-agent context broker** (a tight ~100-token ranked slice into each spawned Claude Code sub-agent — the one regime prompt caching can't help), and a **compaction ledger** (a "previously read" list injected at `/compact` so the agent doesn't re-explore). Every number is a measured fact or a labelled bet — **no cost claims**; a *structural* context reduction, not a bill saving (engram's net over prompt caching ≈ 0). 1144 tests. See [CHANGELOG.md](CHANGELOG.md), `docs/COMPARISON.md` (vs the other local code-graph tools — ranking isn't unique, the *combination* is), and `docs/FRONTIER.md`.
125+
>
126+
> **v4.3.1 (patch) — 2026-06-06:** a two-swarm execution audit hardened the release. Fixes: the `engram cost` digest no longer prints an unqualified dollar/"% saved" figure (it now carries the structural-not-a-bill-saving caveat); `bench`/`stats` state "Nx LARGER — passes through" instead of a backwards "0.2x smaller" on tiny repos; the incremental reindex now rebuilds cross-file `calls` edges (no graph drift between full re-indexes) **and** does so in ~1ms via an mtime-keyed refs cache instead of re-parsing every file on each edit; the MCP server reports its real version; `doctor` flags a disabled kill-switch; `gen --task <bad>` errors cleanly. No new features, no behaviour change to the honest claim.
125127
126128
<details>
127129
<summary><strong>Earlier release notes (v4.2 "Loop", June 3)</strong></summary>

docs/install.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ <h3 class="step-title">Pull the binary from npm</h3>
11731173
</div>
11741174
<div class="terminal-body">
11751175
<pre id="step-01"><span class="prompt">$</span><span class="cmd">npm install -g engramx</span>
1176-
<span class="out-dim"></span> <span class="out-info">added engramx@4.2.0 in 4s</span></pre>
1176+
<span class="out-dim"></span> <span class="out-info">added engramx@4.3.1 in 4s</span></pre>
11771177
</div>
11781178
</div>
11791179
</article>

docs/release-notes-4.3.1.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# engramx v4.3.1 — "Proof" (patch)
2+
3+
A two-pass **execution-swarm audit** — agents that actually *ran* engram end-to-end (hooks, CLI, MCP server, the graph, packaging) rather than just reading it — plus a perf self-audit, hardened the 4.3.0 release. **All fixes, no new features, no change to the honest claim.** 1144 tests.
4+
5+
## Fixed
6+
7+
### Honesty (the project's core discipline)
8+
- **`engram cost` digest** printed an unqualified `Total tokens saved: … (100% reduction, ~$3.60)` — in output literally designed to be pasted to Substack/LinkedIn/Telegram. It now carries the full *"structural reduction, **not a bill saving** — net over prompt caching ≈ 0; USD is illustrative list-price only"* caveat. (The cost module predated the honesty pass.)
9+
- **`bench`/`stats`** printed "0.2x smaller packet" when the packet was actually **5× larger** than the relevant files. A new shared `packetRatioPhrase()` states it honestly across CLI, bench, and the HTTP server: *"5x LARGER — engram passes through."*
10+
11+
### Graph correctness + performance
12+
- **Incremental reindex drift:** single-file `reindex` / `watch` / the reindex-hook (fires on every edit) re-extracted a file but never rebuilt the name-resolved cross-file `calls` relation, so ranking / callers / callees silently drifted until the next full `init`. Now rebuilt on both the index and prune paths.
13+
- **Hot-path perf:** that rebuild re-parsed *every* file on disk (~330 ms on a 1k-node graph) on the per-edit hook path. An mtime-keyed per-file refs cache makes a single-file reindex re-parse only the changed file — **328 ms → ~1 ms** warm, with byte-identical edges (equivalence-tested).
14+
15+
### Robustness
16+
- **MCP server** reported `serverInfo.version: "0.2.1"` (clients + the MCP registry saw the wrong version); now reads the real package version.
17+
- **`engram doctor`** reported a green "hook active" even with the `.engram/hook-disabled` kill switch set; now warns "installed but DISABLED."
18+
- **`engram gen --task <bad>`** threw a raw stacktrace; now prints the clear "unknown task" message and exits 1.
19+
- Grep-family Bash parser no longer mis-intercepts output-mode flags after the pattern (`rg sym -l` / `-c` / `-A 3`); `missingHookEvents` no longer throws on a hand-edited `settings.json`; Windows drive-letter paths survive `measure`'s recall set; the recall bench guards `trials === 0` (no `NaN%`).
20+
21+
## Verified (no fix needed)
22+
Hook interception layer clean; all v4.3 headline features (sub-agent broker, compaction ledger, mistakes memory, grep never-worse, PageRank ranking) work E2E; security held against every injection / SQL / DoS / auth attack; npm tarball ships 55 files / 0 dev files; 4 parallel reindexes leave the graph intact; docs carry no surviving cost over-claim; public `engramx@4.3.0` smoke from npm passes.
23+
24+
**Upgrade:** `npm i -g engramx@4.3.1` (or `npx engramx@4.3.1`). No migration; the refs cache builds itself on the next `init`/reindex.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "engramx",
3-
"version": "4.3.0",
3+
"version": "4.3.1",
44
"mcpName": "io.github.NickCirv/engram",
55
"description": "The context spine for AI coding agents. 9 built-in providers + mcpConfig plugin contract (wrap any MCP server in 10 lines), generic MCP-client aggregator (stdio), pre-mortem mistake-guard, bi-temporal mistake memory, Anthropic Auto-Memory bridge, SSE streaming context packets, dual-emit AGENTS.md+CLAUDE.md. Up to ~89% per-file structural context reduction (codebase-dependent; reproducible bench included). Local SQLite, zero cloud.",
66
"repository": {

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"url": "https://github.com/NickCirv/engram",
77
"source": "github"
88
},
9-
"version": "4.3.0",
9+
"version": "4.3.1",
1010
"packages": [
1111
{
1212
"registryType": "npm",
1313
"identifier": "engramx",
14-
"version": "4.3.0",
14+
"version": "4.3.1",
1515
"transport": {
1616
"type": "stdio"
1717
},

0 commit comments

Comments
 (0)