Skip to content

v0.9.0

Choose a tag to compare

@RodCor RodCor released this 03 Jun 03:34
· 149 commits to main since this release
021200f

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-code and kimetsu plugin install codex now run an
    interactive wizard (on a TTY; skip with --no-setup, force with
    --setup-harvest) that configures a cheap distiller
    model: Anthropic (recommended claude-haiku-4-5), OpenAI (recommended
    gpt-5.4-mini), or compatible endpoints via ANTHROPIC_BASE_URL /
    OPENAI_BASE_URL. The key + base URL are written to a gitignored .env;
    the selection lands in [learning.distiller]
    in project.toml. A new SessionEnd hook for Claude Code runs
    kimetsu brain session-end-hook; Codex uses its supported Stop hook 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 global the
    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 background kimetsu-memory-harvester subagent (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_record path — 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 = false in project.toml.

CHANGED

  • Cleaner help & tool menus. Stripped internal version-history prefixes
    (v0.x:, MP-…:) from --help text 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_record calls from a non-existent inline transcript array;
    Claude Code actually passes a transcript_path to 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 install now strips a leading
    UTF-8 BOM before parsing an existing settings.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
    existing CLAUDE.md — workspace .claude/CLAUDE.md or the global
    ~/.claude/CLAUDE.md — inside <!-- kimetsu:begin -->/<!-- kimetsu:end -->
    markers, appending and upgrading in place, never overwriting the user's
    content. --force no longer overwrites CLAUDE.md (the whole install is
    idempotent and non-destructive; the flag is retained only for compatibility).
    A --scope global on the workspace-only kimetsu target warns instead of
    silently doing nothing; --workspace is canonicalized leniently so a global
    install doesn't fail on a missing workspace path.