This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+12 more
Affected surfaces
Summary
AI summaryMulti-hop transitive caller impact added to the correctness judge, providing deeper cross-file context.
Full changelog
A depth-and-floor release from the same mid-2026 field review. It gives the
correctness judge multi-hop cross-file context, stops generated code from being
held up as a convention, publishes the precision number behind the low-noise
design, and lands a batch of maintainability and security-floor fixes. The judge
change is advisory, default-on with a kill switch, tool-time only, and fails open.
Added
- Multi-hop transitive caller impact for the correctness judge. The turn-end
judge already saw a changed function's direct callers; it now also sees the
bounded chain of callers-of-callers (the controller to service to repository
path a change reaches), built from the committed calls snapshot. This is the
cross-module context LLMs are documented to be weakest at. Hard-bounded on
depth, fan-out, total nodes and characters, cycle-safe, deterministic, and it
fails open. Default-on viaenforcement.judge_transitive_impact, with
CHAMELEON_JUDGE_TRANSITIVE_*threshold overrides. - Published calibration-precision number.
/chameleon-statusnow surfaces a
one-line precision summary for the active block rules: how many are active and
the measured false-positive ceiling they clear against the repo's own committed
files. The low-noise design is now a number you can see, not a claim. A new
README "Precision" section documents it. - Security policy and dependency automation. A
SECURITY.md(private
reporting via GitHub security advisory) and adependabot.ymlcovering the
github-actions, npm and pip ecosystems.
Changed
- Extractor registry seam. Language extractor selection moved behind a small
registry, so adding a language is a registry entry plus a signature mapping
rather than an edit to bootstrap's selection logic. No behavior change: the
TypeScript-before-Ruby precedence is identical, so existing profiles do not
re-cluster. - Repo identity extracted to its own module. The repo-id derivation moved out
of the oversizedtools.pyinto a focusedrepo_idmodule, re-exported for
compatibility. Internal maintainability only; no behavior change.
Fixed
- Generated files are no longer chosen as canonical witnesses. A generated
file (GraphQL resolvers, Prisma client, protobuf stubs,*.gen.*output) that
structurally matched a hand-written cluster could become the exemplar the
assistant was told to follow. They are now excluded from witness selection, so
the reference file is hand-written code. Witness-selection only; clustering and
existing archetypes are untouched. - Supply-chain SQL-injection scan now covers Ruby and Python. The canonical
poisoning scanner's raw-SQL-interpolation check was TypeScript-only; it now also
flags Ruby"... #{x} ..."and Python f-string SQL, tightened to require a real
SQL statement shape so ordinary prose near an interpolation is not flagged. bump-version.shfails loudly whenjqis absent instead of silently
skipping profile-schema validation as if every profile were compatible.
Security Fixes
- Supply‑chain SQL injection scan now covers Ruby and Python interpolations
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]