Skip to content

Chameleon

v2.37.0 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

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 rce_ssrf deps breaking_upgrade

Summary

AI summary

pr-review now routes deterministic security sinks and receiving-code-review grounds adjudication in engine data.

Full changelog

Added

  • pr-review now routes the deterministic security sinks lint_file already
    returns (new Step 2.6d).
    eval-call (error severity) and command-injection
    drive a BLOCK; sql-string-interpolation, insecure-deserialization,
    weak-hash, and insecure-random are FIX; the test-quality rules
    (then-without-catch, skipped-test, and so on) are NIT. The convention loop
    already fetched these violations and discarded them, so the review silently
    missed witnessed SQL-injection, RCE, and error-swallowing findings while
    hand-rolling weaker taint heuristics. They are refuter-exempt and hunk-gated. A
    warning-severity eval-call (the Rails class_eval string idiom the engine
    deliberately downgrades) caps at FIX, never escalated by rule name.
  • receiving-code-review now grounds its adjudication in engine data. It builds
    the PR's hunk map (so a comment on an untouched line is flagged pre-existing,
    not a PR defect) and runs get_callers / lint_file / get_crossfile_context
    / get_duplication_candidates to back an apply or a pushback with evidence
    instead of plain judgment.

Changed

  • A new direct dependency is an "Acknowledge before merge" ACK, not a BLOCK.
    The old BLOCK forced a BLOCK verdict that record_review_verdict then wrote to
    the durable ledger, recording every routine dependency add as a BLOCK and
    corrupting the per-tier review-clean metric. The provenance gate stays as its
    own non-verdict channel, matching the engine's own NIT classification of
    new-dependency.

Fixed

  • The caller-contract pass (Step 2.9e) is now wired into every consistency
    surface.
    It was defined but missing from both grounding-loop exemption lists,
    the severity table, the verdict rules, the integrity rule, and the output
    template, so a faithful reader either hunk-gated its non-diff caller lines (and
    dropped every valid finding) or sent it to the refuter, which cannot re-derive
    cross-file evidence and refuted the strongest finding away.
  • Fan-out could not run the dependency pass. Step 2.5 was delegated per-slice
    but the fan-out reviewer was never granted scan_dependency_changes, so it
    silently fell back to hand-parsing. It now runs once at whole-diff synthesis.
  • receiving-code-review referenced gates it never defined and called
    refute_finding with an underspecified payload.
    Step 6 named a "hunk/severity
    gate" that did not exist; the refuter call omitted the {id, file, line, claim, evidence} shape, base_ref, and the disabled-envelope (empty verdicts list)
    handling. All fixed, and the repo is resolved once in Step 3 so the grounding
    tools have repo.id before they run.

Tests

  • New unit coverage for Step 2.6d (including the warning-severity eval-call
    cap), the contract-break wiring, and the dependency ACK. The tool-contract test
    is generalized to parse every tool call in both review skills and reviewer.md
    and check each name and kwarg against the live MCP registry.
  • Two new journey acts: 12b (deep pr-review: secret / migration / dependency-ACK
    / eval-sink BLOCK paths) and 12c (receiving: ground-before-draft,
    never-ledger, pre-existing gate). Both use evidence-based cross-checks that
    demote a self-reported PASS when the evidence does not hold.

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]