Skip to content

Chameleon

v2.34.0 Bugfix

This release fixes issues for SREs watching stability and regressions.

✓ 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 multiple derivation-pipeline bugs causing misclassification, crashes, incorrect error codes, improper canonical witness selection, and partial loss of injected convention blocks.

Full changelog

[2.34.0] - 2026-06-26

Fixed

Bootstrap/refresh derivation-pipeline correctness pass (detect → discover →
parse → cluster → canonical → conventions → atomic commit):

  • detect: root extractor selection now applies a language-magnitude
    tiebreak.
    The TypeScript extractor's can_handle accepts any shallow .ts
    file when there is no tsconfig.json / package.json TS dependency, so a few
    stray .ts files in a Python/Ruby-dominant repo (e.g. a Django app with a
    static/*.ts) misclassified the whole repo as TypeScript and produced a
    0-archetype profile. When TS is picked on that weak signal AND a marked
    backend (manage.py/pyproject for Python, Gemfile for Ruby) dominates by file
    count, the backend language now wins. Strong TS signals are never overridden.
  • discover: an absolute paths_glob no longer crashes the bootstrap. A
    user-supplied absolute glob raised an uncaught NotImplementedError out of
    the tool instead of a clean failure. _glob_candidates now guards
    base.glob the same way workspace.py already does.
  • parse: a missing Python toolchain reports failed_python_unavailable. The
    extractor-unavailable branch labelled every non-Node failure
    failed_ruby_unavailable, so a Python repo's libcst-missing failure
    contradicted its own error body.
  • canonical: comment-only files are no longer chosen as canonical
    witnesses.
    A file that is all comments has non-whitespace content but no
    code structure, so it survived the empty-file exclusion and its comment text
    was injected as the per-edit "imitate this" exemplar. A file with an empty
    signature (no top-level code/export nodes) is now ranked trivial; barrels and
    imports-only files keep a non-empty signature and stay eligible.
  • conventions: a malformed value in one section no longer wipes the whole
    injected block.
    The naming / inheritance / method_calls / key_exports render
    loops lacked the isinstance(data, dict) guard their siblings have, so one
    non-dict value (corrupt / hand-edited / 3-way-merged conventions.json)
    dropped the entire conventions block, well-formed sections included. Each loop
    now skips a malformed entry and keeps rendering the rest.

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]