This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
+12 more
Summary
AI summaryFixed bootstrap cleanup for no‑remote repos and ensured torn .chameleon files are reported as index‑unavailable.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Bugfix | Medium |
Bootstrap of a no‑remote repo no longer leaves permanently‑orphaned plugin‑data directories. Bootstrap of a no‑remote repo no longer leaves permanently‑orphaned plugin‑data directories. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Committed‑index loaders treat a torn `.chameleon` as index‑unavailable instead of serving corrupted data. Committed‑index loaders treat a torn `.chameleon` as index‑unavailable instead of serving corrupted data. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Post‑tool verify cooldown is reachable; dedup TTL no longer gets zeroed. Post‑tool verify cooldown is reachable; dedup TTL no longer gets zeroed. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Partial refresh stamps `conventions.json` with the generation, preventing false "bundle is unloadable" errors. Partial refresh stamps `conventions.json` with the generation, preventing false "bundle is unloadable" errors. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
FastAPI package‑form roles (`app/schemas/`, `app/dependencies/`, `deps/`, `crud/`) now bucket correctly, avoiding unintended inheritance of Pydantic schema guidance. FastAPI package‑form roles (`app/schemas/`, `app/dependencies/`, `deps/`, `crud/`) now bucket correctly, avoiding unintended inheritance of Pydantic schema guidance. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
`.gitattributes-template` routes the structured idiom store to the merge driver, preventing conflict markers in live idiom state. `.gitattributes-template` routes the structured idiom store to the merge driver, preventing conflict markers in live idiom state. Source: llm_adapter@2026-07-17 Confidence: high |
— |
Full changelog
Fixes from the qa66 whole-plugin, from-scratch, real-invocation campaign
(512 cells across 8 language/framework rows plus support-process and
hostile-input rows; 10 findings, every one adversarially re-verified in a
fresh isolated workspace before being fixed, and every fix re-verified with
the finding's own real repro afterward).
Fixed
- A from-scratch bootstrap of a no-remote repo (fresh
git init, no origin)
no longer leaves permanently-orphaned plugin-data directories: after the
orchestrator mints the repo_uuid,bootstrap_repoinvalidates the
same-process repo-id cache, recomputes the final identity, scopes the drift
baseline to it, and sweeps the pre-uuid lock directory (skipped whole when
a concurrent claimant holds the lock, so contention never splits the
bootstrap mutual exclusion).detect_repo's
legacy-id re-trust hint now uses a non-creating probe
(trust_state_probe) instead of minting an empty directory per probed
identity. - The five committed-index loaders (symbol signatures, calls index, exports
index, reverse index, function catalog) honor the COMMITTED transaction
sentinel like every other profile loader: a torn.chameleon(crash
mid-commit, unresolved merge) now reads as index-unavailable across
search_codebase/get_callers/get_callees/query_symbol_importers/
get_blast_radius/get_duplication_candidatesinstead of being served as
ground truth while sibling tools reportprofile_corruptedfor the same
tree. Doctor reports that torn state directly ("profile is uncommitted ...
run /chameleon-refresh") instead of misreading each refused loader as a
stale-schema artifact. - The documented "5 seconds once escalated" posttool-verify cooldown is
reachable: the self-correction window no longer zeroes the dedup TTL. The
byte-identical-content digest gate already guarantees a real fix is never
swallowed, and because every violating verify re-stamped
last_violation_at, the zeroing had made the dedup structurally
unreachable for any file that ever violated. - A partial refresh stamps the carried
conventions.jsonwith the refresh's
generation, so the bundle stays generation-consistent; doctor's
cross-artifact check now mirrors the loader's actual gate (four artifacts)
and reports a lagging conventions.json as staleness instead of falsely
claiming "the bundle is unloadable" after every partial refresh. - FastAPI package-form roles:
app/schemas/andapp/dependencies/(and
deps/,crud/) now role-bucket like their filename forms, so a
dependencies file no longer inherits the Pydantic schemas archetype's
"extends BaseModel" guidance via path fallback, and a schemas package
names cleanly (schema) instead of an opaque cluster hash. .gitattributes-templateroutes the structured idiom store
(.chameleon/idioms/**) to the merge driver: two branches that each
taught a different idiom always collide on the.view_digestsidecar,
and the unrouted merge wrote raw conflict markers into live store state.
With the route, per-idiom JSON records merge and the sidecar is declined
whole (accept either side; the next teach or refresh recomputes it).
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]