Skip to content

Chameleon

v2.40.0 Feature

This release adds 1 notable feature 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 rbac

Summary

AI summary

Inbound caller‑contract injection added with configurable kill switch.

Full changelog

Per-edit surface batch from the verified roadmap: turn cross-file staleness from
turn-end detection into pre-edit prevention, and close two silent-coverage gaps
in the Tier-2 block.

Added

  • Inbound caller-contract injection (default on, kill switch
    CHAMELEON_INBOUND_CALLERS=0). On a Tier-2 edit, chameleon now injects the
    edited file's own exports paired with their recorded call sites —
    getUser() <- src/order.ts:3, src/checkout/summary.ts:44 (+3 more) — with a
    "change a signature -> update these call sites in the same turn" directive.
    This is the inbound counterpart to the nearby-signatures section (which shows
    outbound contracts you might call); it moves chameleon's most-detected defect
    class, cross-file staleness (previously surfaced only by the turn-end
    correctness judge), to the moment of edit. Reads the same mtime-cached
    calls_index.json + symbol_signatures.json (no live parse, no network),
    renders outside the imitate-spotlight with sanitized paths/names, is bounded
    (CHAMELEON_INBOUND_CALLERS_MAX_EXPORTS/_MAX_SITES/_MAX_CHARS), trust-gated
    (untrusted repos return before composition), carries an honesty note (barrels
    and dynamic dispatch are invisible, so an empty list is not proof it's safe to
    break), and fails open. Ships with a day-one A/B arm (--toggle inbound_callers).

Fixed

  • Honest idiom-overflow count. When taught idioms exceed the per-edit char
    cap, the tail now reports how many idiom blocks were dropped
    (+N idiom(s) not shown (see .chameleon/idioms.md)) instead of a bare
    "truncated" the reader couldn't quantify — so a repo investing in
    /chameleon-teach can see when it is outgrowing the per-edit budget (the Stop
    self-review's full-text-for-unseen pass still compensates the rest).
  • Corrupt-profile degraded banner. A trusted repo whose .chameleon/ profile
    is corrupt or written by an unsupported newer schema loaded no archetype data
    and emitted the same empty result as a healthy unarchetyped edit — a
    silent-false-clean where the model assumed it got clean guidance. The per-edit
    hook now emits a "profile degraded" banner telling the model to fall back to
    grep / comprehension tools and the user to run /chameleon-refresh. Fires only
    on genuine corruption, never on a healthy profile_present no-archetype edit.

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]