chameleon 2.32.0
The turn-end duplication advisory now grounds its reuse argument in how
load-bearing the original is, and a session-index robustness gap is closed.
Added
- Caller-grounded duplication verdict. When the turn-end gate confirms a new
function re-implements an existing one, the advisory now appends how many
committed sites already call the original ("... reuse it; already called from
N sites"). The count comes from the calls index that already backs the judge's
cross-file caller facts, so there is no new artifact and no extra parse, and it
draws on the same deterministically graded edges (so it can miss dynamic
dispatch and rarely overcount a binding-shadowed import). A function called
only by its own recursion is not counted, so a purely recursive original never
renders a false "called from 1 site"; an original with no recorded callers
keeps the plain "reuse it". Advisory-only, fails open. Existing repos get it
immediately (it reads the calls index already in the profile).
Fixed
build_candidate_indexisolates per session file. An unparseable file in
the session set abandoned every file after it (the within-session duplicate
index then held only committed-catalog entries), contradicting the docstring
and the per-file handling the gather passes already use. One bad file now
contributes nothing without dropping the files after it.