Repository navigation
v0.1.2
Lookups made through the MCP server can now be measured.
Added
recall_error takes an optional session. Before this, a lookup through
MCP returned its hint and recorded nothing, so a team running Forgelore
through MCP rather than hooks got an empty report with no way to tell why.
It now writes the same ledger line a hook does: injected, withheld or
unmatched, with the bytes and the estimated tokens.
This is not a session in the protocol sense. MCP is stateless and a server
may not infer anything from a previous request; the identifier is passed
explicitly on every call, which is what the specification's own guidance on
stateful tools prescribes.
A lookup without one still answers. It counts towards what was spent and
drops out of the per-session comparisons, because attributing unrelated
calls to one run would invent repeated-error loops that never happened.
The A/B control arm is honoured here too. A control call returns no
matches and is indistinguishable from a miss, while the ledger still records
that a match existed. An agent that could tell which arm it was in would make
the two arms incomparable.
Changed
docs/team-trial.md was reviewed and corrected. Three things in it would
have quietly voided a trial: the pre-commit hook was described as shareable
when .git/hooks/ is never committed, MCP was offered as an equivalent to
hooks when it recorded nothing, and nothing told anyone to prove the wiring
worked before spending a week on it. It now opens with a day-zero smoke test.
Upgrading
curl -fsSL https://raw.githubusercontent.com/forgeprint/forgelore/main/scripts/install.sh | bashNothing to migrate.
Which agents this release supports
Added after publishing, because docs/compatibility.md was reviewed and one
of its claims was too generous. No binary changed; this is the same v0.1.2.
| Agent | Checked against a running agent | |
|---|---|---|
| Claude Code 2.1.289 | hooks, both MCP protocol eras, usage reader | A |
| Copilot CLI 1.0.91 | hooks only — its MCP client has never been connected | B |
| Codex CLI | nothing; the mapping is a reading of the documentation | unverified |
| Gemini CLI, Cursor | researched, not started | — |
Copilot CLI was listed as A when this was published. It is B: tier A
means hooks and MCP, and nobody has pointed Copilot's MCP client at
forgelore mcp. The table exists to stop exactly that kind of claim, so it
was corrected rather than defended.
Codex CLI is worth reading twice before relying on it. Its mapping was
written from the official configuration reference and not one real payload
backs it. Every other mapping in this project started the same way and
every one of them turned out to be wrong somewhere that would have left
Forgelore silent — so assume this one is too. Two specific guesses to
distrust: that a failed command arrives as PostToolUse carrying an error
field, and that a cancelled one can be recognised by an interrupted field
when Codex documents Interrupt as an event instead.
docs/compatibility.md
is kept current and now also carries the Copilot CLI hook configuration,
which the team-trial protocol pointed at and which was missing.
{ "name": "recall_error", "arguments": { "output": "...", "command": "go build ./...", "session": "whatever identifies this conversation" } }