Skip to content

Chameleon

v2.22.0 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

ai-coding-assistant archetype ast-analysis claude-code claude-plugin code-conventions
+12 more
code-review code-style developer-tools javascript linter mcp mcp-server prompt-engineering python ruby rails typescript

Affected surfaces

auth deps

Summary

AI summary

Multi-hop transitive caller impact added to the correctness judge, providing deeper cross-file context.

Full changelog

A depth-and-floor release from the same mid-2026 field review. It gives the
correctness judge multi-hop cross-file context, stops generated code from being
held up as a convention, publishes the precision number behind the low-noise
design, and lands a batch of maintainability and security-floor fixes. The judge
change is advisory, default-on with a kill switch, tool-time only, and fails open.

Added

  • Multi-hop transitive caller impact for the correctness judge. The turn-end
    judge already saw a changed function's direct callers; it now also sees the
    bounded chain of callers-of-callers (the controller to service to repository
    path a change reaches), built from the committed calls snapshot. This is the
    cross-module context LLMs are documented to be weakest at. Hard-bounded on
    depth, fan-out, total nodes and characters, cycle-safe, deterministic, and it
    fails open. Default-on via enforcement.judge_transitive_impact, with
    CHAMELEON_JUDGE_TRANSITIVE_* threshold overrides.
  • Published calibration-precision number. /chameleon-status now surfaces a
    one-line precision summary for the active block rules: how many are active and
    the measured false-positive ceiling they clear against the repo's own committed
    files. The low-noise design is now a number you can see, not a claim. A new
    README "Precision" section documents it.
  • Security policy and dependency automation. A SECURITY.md (private
    reporting via GitHub security advisory) and a dependabot.yml covering the
    github-actions, npm and pip ecosystems.

Changed

  • Extractor registry seam. Language extractor selection moved behind a small
    registry, so adding a language is a registry entry plus a signature mapping
    rather than an edit to bootstrap's selection logic. No behavior change: the
    TypeScript-before-Ruby precedence is identical, so existing profiles do not
    re-cluster.
  • Repo identity extracted to its own module. The repo-id derivation moved out
    of the oversized tools.py into a focused repo_id module, re-exported for
    compatibility. Internal maintainability only; no behavior change.

Fixed

  • Generated files are no longer chosen as canonical witnesses. A generated
    file (GraphQL resolvers, Prisma client, protobuf stubs, *.gen.* output) that
    structurally matched a hand-written cluster could become the exemplar the
    assistant was told to follow. They are now excluded from witness selection, so
    the reference file is hand-written code. Witness-selection only; clustering and
    existing archetypes are untouched.
  • Supply-chain SQL-injection scan now covers Ruby and Python. The canonical
    poisoning scanner's raw-SQL-interpolation check was TypeScript-only; it now also
    flags Ruby "... #{x} ..." and Python f-string SQL, tightened to require a real
    SQL statement shape so ordinary prose near an interpolation is not flagged.
  • bump-version.sh fails loudly when jq is absent instead of silently
    skipping profile-schema validation as if every profile were compatible.

Security Fixes

  • Supply‑chain SQL injection scan now covers Ruby and Python interpolations

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 Chameleon

Get notified when new releases ship.

Sign up free

About Chameleon

All releases →

Related context

Earlier breaking changes

  • v3.0.0 MCP surface folded from 48 tools to 19; remaining 32 operator tools become actions on three dispatchers.

Beta — feedback welcome: [email protected]