Skip to content

Chameleon

v4.4.34 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 incorrect cluster naming for NestJS *.repository.ts files and prevented false-positive Python line‑length enforcement when E501 is ignored.

Changes in this release

Bugfix Medium

Corrects NestJS archetype naming drift caused by mismatched suffix tables.

Corrects NestJS archetype naming drift caused by mismatched suffix tables.

Source: llm_adapter@2026-07-19

Confidence: high

Bugfix Medium

Prevents Python line‑length enforcement from false‑positively flagging lines when root ruff config opts out of E501.

Prevents Python line‑length enforcement from false‑positively flagging lines when root ruff config opts out of E501.

Source: llm_adapter@2026-07-19

Confidence: high

Full changelog

Fixed

  • NestJS archetype naming drifted from the clustering that produced the cluster:
    a *.repository.ts (or *.dto.ts / *.entity.ts / *.interceptor.ts / ...)
    cohort was correctly role-bucketed by signatures._NESTJS_ROLE_SUFFIXES (fifteen
    roles) but the _TS_PRIORS naming table hardcoded only six suffixes, so a
    feature-co-located *.repository.ts cohort (one per feature dir, no dominant
    directory) fell through to a meaningless cluster-<hash> name. .dto.ts /
    .entity.ts survived only by luck of directory layout (a shared dto/ /
    entities/ dir). The naming table's suffix priors are now generated from the
    SAME _NESTJS_ROLE_SUFFIXES map, so the two can never diverge again, with a
    guard test asserting parity. Surfaced by the step-7 fresh-repo re-verification
    on an idiomatic per-feature NestJS layout.
  • Python line-length enforcement no longer false-positives on a mixed per-app
    E501 layout. When a repo's root ruff config opts out of E501 (the common
    line-length = N + ignore = ["E501"] "format toward N, don't fail on length"
    pattern), _read_python_format correctly drops line_length -- but that left
    the derived fmt empty, indistinguishable from "root declared no config", so
    the scan_subdirs fallback (meant only for a config-less root) resurrected an
    enforcing sibling app's line_length repo-wide and flagged every long line in
    the E501-ignoring apps. The fallback is now gated on the root having declared no
    ruff/black config at all, not on the derived fmt being empty, so an explicit
    root opt-out is authoritative. Surfaced by the step-7 fresh-repo re-verification
    on a mixed-config Django repo.

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]