Scadrial · Records Change log

Releases

One entry per tag. The canonical source is CHANGELOG.md in the repo — this page mirrors it. Each version is published on npm with sigstore provenance (OIDC trusted publisher).


0.2.4

2026-04-21

Fixed

  • Rerank warmup folded into bootstrap. 0.2.3 installed the extra + restarted the watcher, but the first real --rerank query then timed out at the CLI's 6 s HTTP cap while the fresh watcher process downloaded the ~500 MB model — silently falling back to stdio (embedder ordering, not reranked). Bootstrap now issues a throwaway rerank warmup against /search after restart, absorbing the model download into the already-explicit setup phase. HTTP timeout for rerank calls lifted to 90 s for headroom.

0.2.3

2026-04-21

Fixed

  • uv tool install syntax for the rerank extra. --from <path> metalmind-vault-rag[rerank] is not valid uv syntax. Switched to the positional <path>[rerank] form when extras are requested; the no-extras path stays on --from <path> metalmind-vault-rag. Caught live on first bootstrap run.

0.2.2

2026-04-21

Fixed

  • Rerank bootstrap now handles stale Python packages. Older watcher versions don't expose /rerank/status; a 404 response used to be misread as "watcher unreachable" and the bootstrap silently skipped. 0.2.2 distinguishes 404 (package predates the endpoint — run the [rerank] reinstall, which also upgrades the package) from connection-refused (no watcher running — stay hands-off).

0.2.1

2026-04-21

UX fix on top of 0.2.0: stop asking users to run a weird-looking uv tool install by hand. First metalmind tap copper --rerankmetalmind recall --rerank now bootstraps itself.

Changed

  • Reranker bootstrap is now auto-on-first-use. When you run tap copper --rerankrecall --rerank, the CLI probes a new /rerank/status endpoint on the watcher. If FlagEmbedding is missing, the CLI runs the [rerank] extra install itself, restarts the watcher (launchctl on macOS, systemctl on Linux), polls until the new process is ready, then proceeds with the rerank call. One-time ~1.2 GB download; zero-friction from then on.
  • installVaultRag (internal) gains an extras option; watcher restart extracted into watcher-restart.ts for reuse.

0.2.0

2026-04-21

Minor-rev bump: new recall tier, new optional dep group, Linux-real CI coverage, and a landing-page positioning split. Nothing removed; everything opt-in.

Added

  • Reranker tier (tap copper --rerankrecall --rerank). Cross-encoder (BAAI/bge-reranker-v2-m3) overfetches 4× from Qdrant and re-scores before returning top-k. Closes the hit@1=70% → hit@5=90% gap the recall-v0 bench exposed. Opt-in; first call downloads ~500 MB. Graceful fallback if the dep is absent; themed first-load message when METALMIND_FLAVOR=scadrial. (0.2.0 required a manual uv install — 0.2.1 bootstraps automatically. See 0.2.1 below.)
  • bench/recall-v0/ --rerank. Same runner, rerank mode bumps timeout to 180 s for first-call warmup and records mode in the meta block.
  • Linux CI matrix. .github/workflows/ci.yml runs tests on macOS + Ubuntu for every PR and push. publish.yml stays pinned to macOS — release pipeline is intentionally not gated on Linux CI.
  • /forge site page. Dedicated pitch for the cross-repo code-graph story — tiers of confidence, three-tier route extraction, commands table, anti-persona. Closes item #8 from the 2026-04-20 product analysis.

Fixed

  • Forge cache: spec-mtime invalidation. Route + merged-graph caches were fingerprinted only against graphify-out/graph.json mtime. Editing a spec via forge capture-spec silently returned stale edges. Per-repo fingerprint is now max(graphMtime, shelfSpecMtime).

Changed

  • Homepage slimmed to memory. Four forge-related feature cards collapsed into one dashed sibling card linking to /forge. No features removed — only repositioned.
  • teardown() internal signature. claudeDir and settingsPath now required (no silent fallback to real ~/.claude). Private API.

0.1.11

2026-04-21

Fixed

  • Vanishing stamped block bug. teardown() defaulted claudeDir to the real ~/.claude when tests forgot to pass one, causing every pnpm test run to strip the metalmind managed block from the user's ~/.claude/CLAUDE.md and delete the session-start hook. claudeDir and settingsPath are now required options — any future test that omits them fails at the type level, not at the data-loss level.

Added

  • bench/mcp-tax-v0/ — reproducible first-turn token-tax bench vs mem0, metalmind's stdio MCP fallback, and Claude Code native /memory. pnpm bench:mcp-tax prints a copy-paste markdown table; runs via Anthropic count_tokens when ANTHROPIC_API_KEY is set, falls back to char/4 approximation otherwise. Headline: ~2.5× lower than mem0 as shipped, ~8.4× lower on the apples-to-apples MCP comparison.

Changed

  • README + site surface forge (three-tier route extraction), steel (rename), zinc (team-debug), and scribe (vault CRUD) as first-class features alongside copper. New anti-persona section explicitly lists who should not install metalmind.

0.1.10

2026-04-21

Fixed

  • Warm-path orphan-cache prune. pruneOrphanRouteCaches() was only wired into buildMergedGraphloadOrBuildMerged short-circuits on a warm merged cache, so orphan entries at ~/.metalmind/forge/routes/*.json persisted across runs even after the source repo was deleted. Moved the prune call up into loadOrBuildMerged so it fires on every invocation.

0.1.9

2026-04-21

Added

  • Tier 3 URL-literal route extraction (opt-in via --include-literals). Scans ~15 text extensions for path-shaped string literals as a last-resort fallback when OpenAPI specs and Java caller parsers miss. Every edge carries INFERRED_URL_LITERAL provenance. Noise filter drops static asset extensions.
  • CI Node 24 opt-in via FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true in the publish workflow. Keeps the pipeline unblocked through 2026-09-16.

0.1.8

2026-04-21

Fixed

  • Orphan route-cache pruning. First pass: pruneOrphanRouteCaches() now runs at the top of buildMergedGraph, deleting cache entries whose source repo is missing. One-time cleanup of 33 stale entries from the local shelf.

0.1.7

2026-04-21

Added

  • metalmind release-check — pre-tag preflight. Working tree clean, on main, version sync between CLI and global install, tests pass, build passes, doctor clean, stamped block present in ~/.claude/CLAUDE.md. --skip-tests --skip-build for speed during debugging.
  • metalmind scribe rename + backlink rewriting. Moves a vault note to a new kind/slug and rewrites every [[wikilink]] reference across the vault.

0.1.6

2026-04-21

Added

  • Forge Tier 1 — language-agnostic OpenAPI route extraction. Reads specs from a metalmind-managed shelf at ~/.metalmind/specs/<repo>.{yaml,json} — never from inside the target repo. Satisfies the "single-dev tool, zero repo pollution" constraint. metalmind forge capture-spec <repo> <url-or-file> seeds the shelf.
  • Forge Tier 2 — Java caller extraction. Regex-based parser for RestTemplate (getForObject/postForEntity/exchange), WebClient fluent chains, and Feign clients (@GetMapping inside @FeignClient). Cross-repo INFERRED_ROUTE edges now link Java callers to handlers in any target language.
  • metalmind scribe (alias: note) — vault note CRUD. Full flow: create · update · patch · delete · archive · list · show. Stamps frontmatter, picks the right folder from kind, auto-links the project MOC, supports --dry-run on every verb, accepts kind:slug shortcuts. Soft-delete by default.

0.1.5

2026-04-21

Fixed

  • graphify subcommand rename. graphify removed analyze; metalmind was still calling it. Switched all call sites to graphify update.

0.1.4

2026-04-20

Changed

  • Flat ~/Knowledge/Plans/ layout. Plans are no longer nested by project subdirectory — all plan notes live flat in Plans/, grouped by project: frontmatter and a per-project MOC in Work/MOCs/<project>.md.
  • MOC template scaffoldmetalmind init now seeds a starter Map-of-Content template.

0.1.3

2026-04-20

Added

  • OIDC trusted-publisher release pipeline. Publishes to npm via OIDC + sigstore provenance on every v*.*.* tag. No NPM_TOKEN secret required.

0.1.1

2026-04-20

Fixed

  • metalmind --version now reads from package.json (was a hard-coded string). Prevents version-drift between npm view metalmind version and local CLI output.

Added

  • bench/recall-v0/ — reproducible recall-quality bench. Current: hit@5 = 90%, hit@3 = 85%, hit@1 = 70%; latency median 45 ms / p95 87 ms.

0.1.0

2026-04-20

Initial public release.

  • One themed CLI (Scadrial verbs + Classic aliases). metalmind init drives the whole install; metalmind uninstall reverses it — never touches your notes.
  • Loopback-HTTP recall at 127.0.0.1:17317 as the default transport; stdio-MCP as always-available fallback.
  • SessionStart hook + stamped CLAUDE.md block teach Claude Code when to recall, without injecting MCP tool schemas.
  • Per-repo code graphs via graphify; cross-repo merge in the metalmind forge with INFERRED_NAME edges.
  • Serena LSP backs burn iron (symbol navigation) and burn steel (coordinated rename).
  • burn zinc dispatches to the /team-debug skill with the code graph pre-primed.