Skip to content

Chameleon

v2.30.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ 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

Summary

AI summary

Fixed telemetry over‑counting, bounded duplication index build, improved idiom ordering, added Python support to existence advisory.

Full changelog

A round of relevance and cross-language fixes from a real-usage assessment on a
Rails monolith.

Changed

  • Team idioms are ordered by the edited file's archetype. idioms.md is a
    sequence of ### <name> blocks each tagged Archetype: <name>, but the
    per-edit context (and the turn-end self-review nudge) cap the text by taking
    its top — so a controller edit got whichever idioms sit at the top of the
    file, often an unrelated archetype's, with the relevant one truncated away.
    Both paths now reorder the blocks first: the edited archetype's idioms, then
    untagged/general, then others (stable, nothing dropped). A controller edit now
    surfaces the controller idioms instead of losing them behind the model idiom.

Added

  • Cross-file existence advisory now covers Python. The Stop "a removed
    export still has importers" advisory ran only for TypeScript even though the
    reverse index spans the Python module graph too. Python modules are now
    checked, using the Python export reader (not the TS one). Ruby stays excluded
    (no static named-export surface — a Ruby constant-reference graph is separate
    future work).

Fixed

  • Degraded-telemetry no longer over-counts a single burst. A broken session
    emits many identical degradation lines at one timestamp; these were counted
    per-line, so one incident read as chronic. A contiguous run of identical
    same-second entries now collapses to one incident (distinct timestamps stay
    distinct).
  • Duplication index build is bounded. build_candidate_index re-parsed every
    session file unbounded on a long edit turn; it now caps to the most-recently
    edited files (CHAMELEON_DUPLICATION_INDEX_MAX_FILES, default 40) and logs
    what it dropped.
  • Idiom novelty gate recognizes preferred-import restatements. An idiom that
    merely restated an already-derived preferred-import convention passed as
    "novel"; the coverage gate now has a covered-by-preferred-import check
    (archetype-scoped, basename-matched to avoid false positives on common module
    names).
  • No parser jargon or JS-isms in Ruby/Python lint messages. Wording like
    "default export ClassNode" leaked into non-JS output; node kinds are now
    humanized through a shared label map and the export phrasing is language-aware
    (dropped entirely for Ruby/Python).

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]