This release fixes issues for SREs watching stability and regressions.
Published 1mo
Developer Productivity
✓ No known CVEs patched
✓ 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 summaryFixed 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'scan_handleaccepts any shallow.ts
file when there is notsconfig.json/ package.json TS dependency, so a few
stray.tsfiles 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_globno longer crashes the bootstrap. A
user-supplied absolute glob raised an uncaughtNotImplementedErrorout of
the tool instead of a clean failure._glob_candidatesnow guards
base.globthe same wayworkspace.pyalready 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 theisinstance(data, dict)guard their siblings have, so one
non-dict value (corrupt / hand-edited / 3-way-mergedconventions.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
About Chameleon
All releases →Beta — feedback welcome: [email protected]