v0.9.0
v0.9.0 — auto-harvested memories + SessionEnd distiller
ADDED
- Credentialed SessionEnd distiller (opt-in). A second, deterministic
memory-harvest path alongside the v0.9.0 in-agent harvester.kimetsu plugin install claude-codeandkimetsu plugin install codexnow run an
interactive wizard (on a TTY; skip with--no-setup, force with
--setup-harvest) that configures a cheap distiller
model: Anthropic (recommendedclaude-haiku-4-5), OpenAI (recommended
gpt-5.4-mini), or compatible endpoints viaANTHROPIC_BASE_URL/
OPENAI_BASE_URL. The key + base URL are written to a gitignored.env;
the selection lands in[learning.distiller]
inproject.toml. A newSessionEndhook for Claude Code runs
kimetsu brain session-end-hook; Codex uses its supportedStophook with
--distill-on-stop. When enabled + credentialed, the distiller reads the
transcript with that model and records lessons through the confidence-gated
propose_or_merge_memory. When the distiller is enabled, the Stop hook's
end-of-session cue is suppressed (the distiller owns end-of-session; the
mid-session PostToolUse resolved-failure cue stays).AnthropicProvider
gained an optional base URL for the LiteLLM case, and the distiller gained
an OpenAI Responses API provider. With--scope globalthe
wizard configures the distiller once in~/.kimetsu/(config +.env); that
global distiller then runs in every project and records into the user brain
(~/.kimetsu/brain.db, available everywhere), with a per-project distiller
taking precedence when one is configured. - Auto-harvested memories (in-agent). The hooks now drive memory
generation, not just retrieval. When a command that failed earlier in the
session succeeds (PostToolUse), or a non-trivial session ends with nothing
recorded (Stop), Kimetsu emits a[kimetsu-harvest]cue telling the agent to
dispatch a new backgroundkimetsu-memory-harvestersubagent (installed
at.claude/agents/for Claude Code and.codex/agents/for Codex, pinned
to a cheap model). The subagent distills 0–3
generalizable lessons and records them through the confidence-gated
kimetsu_brain_recordpath — no separate API key or kimetsu-side model
credentials, billed in-agent at the cheap model's rate, non-blocking. Cues
are throttled (at most ~once per resolved failure / once per session) and can
be disabled with[learning] auto_harvest = falseinproject.toml.
CHANGED
- Cleaner help & tool menus. Stripped internal version-history prefixes
(v0.x:,MP-…:) from--helptext and the MCP tool/argument descriptions
so menus read as plain present-tense descriptions. (Internal code comments
are unchanged.)
FIXED
- Stop hook read the wrong field. The Stop hook counted
kimetsu_brain_recordcalls from a non-existent inlinetranscriptarray;
Claude Code actually passes atranscript_pathto a JSONL file. It now reads
the JSONL (with the inline array kept as a fallback), counts both the bare
and MCP-namespaced (mcp__kimetsu__kimetsu_brain_record) tool names, so the
"lessons recorded" banner and end-of-session cue actually fire. The JSONL is
now streamed line-by-line so a long session's multi-MB transcript never
lands in memory at once. - BOM-tolerant install.
kimetsu plugin installnow strips a leading
UTF-8 BOM before parsing an existingsettings.json/hooks.json/
config.toml/.mcp.json, so a config saved by a BOM-emitting editor
(e.g. older Windows Notepad) no longer fails with "expected value at line 1
column 1". - Install polish. The installer now merges Kimetsu's guidance into an
existingCLAUDE.md— workspace.claude/CLAUDE.mdor the global
~/.claude/CLAUDE.md— inside<!-- kimetsu:begin -->/<!-- kimetsu:end -->
markers, appending and upgrading in place, never overwriting the user's
content.--forceno longer overwritesCLAUDE.md(the whole install is
idempotent and non-destructive; the flag is retained only for compatibility).
A--scope globalon the workspace-onlykimetsutarget warns instead of
silently doing nothing;--workspaceis canonicalized leniently so a global
install doesn't fail on a missing workspace path.