This release adds 1 notable feature for engineering teams evaluating rollout.
Published 22d
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 summaryBarrel-chase resolution tracks real consumers through named TypeScript re-exports, improving caller‑graph accuracy.
Full changelog
Build-time barrel-chase resolution from the verified roadmap: named TypeScript
re-export barrels no longer hide a symbol's real consumers from the caller graph.
Added
- Barrel-chase resolution (default on; disable with
CHAMELEON_REEXPORT_CHASE_MAX_HOPS=0). At bootstrap/refresh, a named
re-export barrel (export { Impl as Public } from './impl') is followed
through the re-export chain so an import or call of the symbol through the
barrel is attributed ADDITIVELY to the file that DEFINES it, not just the
barrel. The chase is deterministic, cycle-safe, and bounded (default 3 hops,
CHAMELEON_REEXPORT_CHASE_MAX_HOPS); it maps the name per hop (anasalias
re-export changes the exported name), drops ambiguous chains (same name from
two sources) and out-of-repo targets rather than guessing, and keeps the
original edge on the barrel intact. The barrel files traversed are recorded in
a newviabreadcrumb, surfaced (sanitized) byget_callersand
query_symbol_importers, so a caller that never names the module is shown as
reaching itviathe barrel. This one build-time change raises caller-count
accuracy forget_blast_radius, the Stop crossfile gate, the correctness
judge's caller facts, and the inbound-caller injection simultaneously.
TypeScript/JavaScript only (the extractor emits the re-export rows); Ruby and
Python get an empty chase (clean no-op). Build-time only — no hook hot-path
cost, no repo-code execution, no network.
Changed
reverse_index.jsonandcalls_index.jsonbump to schema v2 (importer/caller
rows may carry an optionalviachain). The load path is fail-open on a v1
artifact, and every release stamps a freshengine_min_version, so an existing
repo's next session auto-refreshes and rebuilds the indexes at v2 — no manual
action, no crash, no false clean in the migration window.- The calls-index "barrel re-export attribution" accepted-limitation is resolved
for named re-exports (only wildcardexport *barrels remain open-set no-edge).
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]