Repository navigation
v0.1.3
Forgelore stopped seeing a whole class of failure, and the only reason anyone
found out was installing the plugin from the marketplace and watching it work.
Fixed
A build piped through head is a failure again. A Bash command's exit
status reaches Forgelore only through which hook event fires. When the agent
writes
go build ./... 2>&1 | head -40the pipeline exits with head's status, which is zero. Claude Code correctly
sends PostToolUse rather than PostToolUseFailure, and no field anywhere in
that payload says the build broke. Forgelore called it a success: nothing was
recorded, nothing was recalled, and it looked exactly like a session that met
no errors.
The mapping now carries a fourth failure test, output_has_diagnostic, which
asks the fingerprinter whether the output contains an error it recognises.
Verified in live Claude Code 2.1.289 sessions with the plugin installed from
the marketplace.
Changed
The mapping format moves to 2, and only claude-code.json uses it.
copilot-cli.json and codex-cli.json still say 1, and a Forgelore from
before this release reads them unchanged.
The number moved although the field is an addition. The test is not whether
something was added but whether an older binary can read the file and still
be right: it does not know output_has_diagnostic, drops it, and calls
every piped failure a success. Refusing the file out loud is the only honest
behaviour. A mapping that sets the field while claiming version 1 is refused
for the same reason.
If you override a mapping on disk with forgelore hook --mapping, nothing
breaks — your file keeps working as it did. To use the new test, set
"mapping_version": 2 in it.
What it costs
A command that succeeds while printing error-shaped text — cat build.log,
rg "undefined" — is now read as a failure. Nothing is written to memory
either way: the visible effect is a lookup that probably misses, and no "it
works now" proposal from that one event. ADR-0022
names the rest, including the one ADR-0020 promise this breaks: a failure test
is now answered by Go rather than read out of the payload.
Also in this release
The plugin is listed in the Forgeprint marketplace:
claude plugin marketplace add forgeprint/forgeprint
claude plugin install forgelore@forgeprintThe plugin ships no binary on purpose, so install that too or the hooks do
nothing.
Upgrading
curl -fsSL https://raw.githubusercontent.com/forgeprint/forgelore/main/scripts/install.sh | bashNothing to migrate. The record schema is unchanged at 1.
Which agents this release supports
| 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 | — |