Skip to content

caveman

v1.9.0 Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

Published 1mo AI Coding Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

ai anthropic caveman claude claude-code llm
+4 more
meme prompt-engineering skill tokens

Affected surfaces

deps

ReleasePort's take

Moderate signal
editorial:auto 1mo

The install script is now pinned to the immutable v1.9.0 tag and verified with SHA‑256, eliminating execution risks; the docs demo terminal now escapes user input to prevent reflected DOM XSS.

Why it matters: Immutable version pinning with SHA‑256 integrity checking blocks malicious code injection during installation; fixing reflected DOM XSS in the demo terminal protects users from script execution attacks when viewing documentation.

Summary

AI summary

Installs now pinned to v1.9.0 and integrity‑checked via SHA‑256, fixing a reflected DOM XSS in the docs demo.

Changes in this release

Security Critical

Installs now pinned to immutable v1.9.0 tag and integrity‑checked via SHA‑256 before execution.

Installs now pinned to immutable v1.9.0 tag and integrity‑checked via SHA‑256 before execution.

Source: llm_adapter@2026-06-12

Confidence: high

Security High

Docs site demo terminal now escapes user input, preventing reflected DOM XSS.

Docs site demo terminal now escapes user input, preventing reflected DOM XSS.

Source: llm_adapter@2026-06-12

Confidence: high

Feature Medium

Adds repo‑local config support via `.caveman/config.json` or `.caveman.json`.

Adds repo‑local config support via `.caveman/config.json` or `.caveman.json`.

Source: llm_adapter@2026-06-12

Confidence: high

Feature Medium

Adds natural‑language brevity triggers like "less tokens", "be brief", and "be terse".

Adds natural‑language brevity triggers like "less tokens", "be brief", and "be terse".

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Medium

Fixes opencode plugin loading by evaluating shared config as CommonJS manually.

Fixes opencode plugin loading by evaluating shared config as CommonJS manually.

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Medium

Implements real lifecycle hooks: session init, chat message parsing, and reinforcement transformation.

Implements real lifecycle hooks: session init, chat message parsing, and reinforcement transformation.

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Medium

Ensures `/caveman <level>` works in both TUI command expansion and non‑interactive `run` path.

Ensures `/caveman <level>` works in both TUI command expansion and non‑interactive `run` path.

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Medium

Ships missing `/caveman-compress` command file (previously gitignored).

Ships missing `/caveman-compress` command file (previously gitignored).

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Low

Fixes caveman‑compress UTF‑8 subprocess crash on Windows.

Fixes caveman‑compress UTF‑8 subprocess crash on Windows.

Source: llm_adapter@2026-06-12

Confidence: high

Bugfix Low

Corrects Opus 4.5+ output price from $75 to $25 per million.

Corrects Opus 4.5+ output price from $75 to $25 per million.

Source: llm_adapter@2026-06-12

Confidence: high

Full changelog

Security

  • Installs now pinned + integrity-checked (#261, #262)
    curl|bash and detached installs no longer fetch hook files from the moving
    main branch — they download from the immutable v1.9.0 tag and verify
    every hook against src/hooks/checksums.sha256 (SHA-256) before anything
    executes. Mismatch aborts the install. This is the first tag shipping the
    manifest, so enforcement is fully active as of this release.

  • fix(docs): escape user input in the demo terminal (#438)
    The docs site demo interpolated user input via innerHTML — a real
    reflected DOM XSS. Nodes are built with textContent now.

opencode actually works now

Smoke-tested against a real opencode runtime for the first time — and the
plugin turned out to never load: opencode runs plugins inside a compiled Bun
binary where both require() of on-disk files and await import() of CJS
silently fail. Fixed by evaluating the shared config as CommonJS by hand.
Also fixed in the same pass, all verified end-to-end against opencode 1.4.0:

  • Real lifecycle hooks: event dispatcher for session init, chat.message
    for mode parsing, experimental.chat.system.transform for per-turn
    reinforcement — the old hook keys never existed and were silently ignored (#418, #421)
  • Session-init flag write no longer misses one-shot opencode run sessions
  • /caveman <level> works both through the TUI command template expansion
    and the quoted non-interactive run path
  • /caveman-compress command file now ships (was gitignored) (#398, #426, #451, #464)

Features

  • Repo-local config (#429) — check in .caveman/config.json (or
    .caveman.json) to pin a per-project default mode for the whole team.
    Resolution order: env var → repo config → user config → full.
  • Natural-language brevity triggers (#248) — "less tokens", "be brief",
    "be terse" now activate caveman mode.

Fixes

  • Installer: Copilot detection via extension dirs (#437), npx skills add
    honors the agent profile again (#395), orphaned managed hooks pruned from
    settings.json (#472), no double hook-wiring when the plugin manifest
    already wires them (#393), MCP-shrink is opt-in and requires an upstream
    (#380), opencode config dir corrected to ~/.config/opencode on Windows
    (#376), PowerShell $Args collision (#414), cavecrew agent copies strip
    tools: for opencode (#443)
  • caveman-compress: UTF-8 pinned subprocess (fixes Windows cp1252 crash,
    #388/#152), claude.cmd resolution on Windows (#435), YAML frontmatter
    preserved (#424), backups written outside the source tree (#420)
  • Skill: replies preserve the user's language (#446), no self-reference
    (#469), full-mode output guardrails (#322), fixed corrupted wenyan example
  • Stats: Opus 4.5+ output price corrected $75 → $25/M (#466), statusline
    pickaxe renders on Windows (#459)
  • MCP-shrink: npx/.cmd upstream resolution on Windows (#387)

Maintenance

  • Sponsors section (welcome, Atlas Cloud), caveman-code + cavegemma in the
    ecosystem table, stale pre-cleanup dotdir mirrors removed, init tests no
    longer touch the developer's real ~/.openclaw workspace.

Upgrade

curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash

Existing installs: re-run the same one-liner — idempotent. opencode users
should re-run with --force to pick up the fixed plugin:
npx -y github:JuliusBrussee/caveman -- --only opencode --force

🤖 Generated with Claude Code

Security Fixes

  • Reflected DOM XSS in demo terminal fixed by using textContent instead of innerHTML (#438)
  • Installs now pinned to immutable v1.9.0 tag with SHA‑256 integrity verification (#261, #262)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track caveman

Get notified when new releases ship.

Sign up free

About caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

All releases →

Beta — feedback welcome: [email protected]