Skip to content

v1.9.1 β€” 65%, honestly

Latest

Choose a tag to compare

@JuliusBrussee JuliusBrussee released this 03 Jul 11:10

A maintenance + honesty release. 50 changes since v1.9.0, mostly hook, installer, and integration hardening, plus a full pass on how caveman states its savings number. Installs stay pinned + integrity-checked; this tag now ships cavecrew-model-overrides.js in the hook manifest so the curl|bash fallback path installs cleanly.

Honest numbers, one number

  • Headline savings is now a flat 65% everywhere (#234). We retired the ~50-65% range and the ~75% claim that still lived on the docs site. 65% is the measured average output-token reduction vs default verbose replies across the committed 10-prompt benchmark (range 22–87%) β€” output tokens only. README, all plugin/extension manifests, the skill descriptions, the per-repo rule frontmatter, and the GitHub Pages site now agree.
  • /caveman-stats stops mislabeling savings (#601, and the budget-% fix). Session token stats are now attributed to the mode that was active when each message happened, so a mid-session /caveman ultra no longer rewrites the whole session's math. The output-reduction line is labeled as output reduction β€” not as a share of your usage/quota.
  • New limit-headroom meter in /caveman-stats for subscription users β€” session budget saved at a glance.
  • docs/HONEST-NUMBERS.md documents exactly when caveman saves tokens and when it costs them (#145, #550, #506). If caveman is net-negative for your workload, that page tells you to turn it off.

Hooks

  • Natural-language triggers stop misfiring and one-shot modes stay one-shot (#598, #599). /caveman-commit / -review / -compress no longer stick as a persistent mode.
  • mode-tracker survives a broken stdin β€” an error on the stdin stream no longer hangs or crashes the hook (#538).
  • SessionStart SKILL.md path off-by-one fixed (#587, #589) so the ruleset injects reliably.

Installer

  • Hermes Agent support β€” install/uninstall are symmetric and verified against a real Hermes install (#524).
  • Per-agent Cavecrew model overrides (#521) β€” pin each cavecrew subagent to the model you want.
  • spawn ENOENT is now treated as a failure, not a success (#592) β€” a missing binary no longer reports a fake successful install.
  • No more EXDEV crash installing the Claude plugin across devices/filesystems β€” falls back to copy when rename can't cross a mount (#585).
  • JSONC settings.json reader is string-aware (#595) β€” a trailing comma inside a string value is no longer mangled during the merge.
  • install.ps1 works when piped to iex (#565), and uninstall matches managed hook basenames instead of a loose substring so it can't strip the wrong entry (#593).
  • Claude Code discovers the slash commands β€” commands/*.md and caveman-stats.toml now ship so /caveman, /caveman-stats, etc. register (#571, #470).
  • caveman-init no longer needs a caveman checkout β€” the per-repo rule writer runs standalone (#603).

Integrations

  • opencode --force migrates a legacy AGENTS.md instead of wiping it (#594).
  • OpenClaw SOUL.md data-loss fixed β€” a stray or half-present caveman marker can no longer chain into deleting user content on the next install/uninstall (#596).

caveman-shrink (npm MCP middleware)

  • spawn-options.js now ships in the published tarball (#597) β€” the package was importing a file it didn't include.
  • Nested protected-segment sentinels restored (#444) β€” documents with adjacent/nested protected regions round-trip through compress without losing or duplicating content.

/caveman-compress

  • Build files and scripts are never classified as prose (#600) β€” package.json, Makefile, and shebang scripts won't get rewritten into caveman prose.

Repo standards & docs

  • Added SECURITY.md, CODE_OF_CONDUCT.md, .editorconfig.
  • Security/privacy docs: an explicit no-telemetry statement and notes on scanner warnings (#347, #504, #383, #28).
  • benchmarks/run.py reads only ANTHROPIC_API_KEY from .env.local (#528).

Known follow-ups (non-blocking, tracked for a later release)

  • NL activation: a negated phrase like "I don't want caveman" can still toggle the mode on; self-correcting with "stop caveman."
  • /caveman-stats savings estimate can skew when two Claude Code sessions run in different modes under the same config dir (shared mode log).
  • /caveman-compress shebang guard doesn't catch a shebang script that also carries a .txt/.rst extension.
  • The ultra-mode examples in skills/caveman/README.md still show abbreviations/arrows that the current ultra rule drops β€” cosmetic doc drift.

Full changelog: v1.9.0...v1.9.1