This release includes 3 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+12 more
Affected surfaces
ReleasePort's take
Light signalVersion v3.2.0 adds a structured idiom store with automatic migration and several related features.
Why it matters: The new structured idiom storage enables additive, digest‑based updates to idioms.md and changes trust hashing coverage; operators should review migrated profiles before revalidation.
Summary
AI summaryIdiom structured store introduced with automatic migration, per-idiom injection scanning, reactivation, digest‑based additive import, legacy prose handling, teach refusal on poisoned files, and trust hash changes.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Idiom truth stored in .chameleon/idioms/<slug>.json; idioms.md generated view. Idiom truth stored in .chameleon/idioms/<slug>.json; idioms.md generated view. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Per-idiom injection scanning drops only the suspicious idiom. Per-idiom injection scanning drops only the suspicious idiom. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
First-class idiom reactivation via teach_profile_structured(status="active"). First-class idiom reactivation via teach_profile_structured(status="active"). Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Hand edits to idioms.md are detected by digest and re-imported additively. Hand edits to idioms.md are detected by digest and re-imported additively. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Headerless legacy prose migrates to a synthesized "legacy-notes" idiom. Headerless legacy prose migrates to a synthesized "legacy-notes" idiom. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Trust hashing on migrated profiles now covers idioms/*.json instead of the generated view. Trust hashing on migrated profiles now covers idioms/*.json instead of the generated view. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
The 200KB cumulative idioms.md cap is no longer enforced at teach time (per‑idiom caps remain). The 200KB cumulative idioms.md cap is no longer enforced at teach time (per‑idiom caps remain). Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
With CHAMELEON_TRUST_REVALIDATE=1, first migration triggers a one‑time stale/re‑trust prompt. With CHAMELEON_TRUST_REVALIDATE=1, first migration triggers a one‑time stale/re‑trust prompt. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
`chameleon_mcp.core` introduces canonical Finding type, TurnBudget, and per‑session state doc. `chameleon_mcp.core` introduces canonical Finding type, TurnBudget, and per‑session state doc. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Bugfix | Medium |
Teach refuses loudly against a poisoned, not‑yet‑migrated idioms.md. Teach refuses loudly against a poisoned, not‑yet‑migrated idioms.md. Source: llm_adapter@2026-07-14 Confidence: high |
— |
Full changelog
Added
- Idiom structured store:
.chameleon/idioms/<slug>.jsonis now idiom truth;
idioms.mdand the conventions.md TEAM IDIOMS section are generated views.
Migration runs automatically on the first teach/refresh/trust touch; the
original file is preserved asidioms.md.legacy, and unparseable or
suspicious blocks are quarantined verbatim in.chameleon/idioms/.quarantine.md
(a quarantining migration never auto-re-stamps trust). - Per-idiom injection scanning: a suspicious phrase now drops only that idiom,
not the whole file. - First-class idiom reactivation:
teach_profile_structured(status="active")
on a deprecated slug reactivates it; deprecation now preserves the body. - Hand or old-version edits to the generated idioms.md are detected by digest
and re-imported additively (mixed-version teams keep their idioms). chameleon_mcp.core: canonicalFindingtype, entry-anchoredTurnBudget,
flocked per-session state doc (foundations for the Stop pipeline overhaul).- Headerless legacy prose (a hand-written preamble, or a whole pre-store
idioms.mdwith no###blocks) now migrates into a synthesized
legacy-notesidiom instead of vanishing silently; poisoned prose is
quarantined the same as a poisoned block. - Teach refuses loudly against a poisoned, not-yet-migrated
idioms.md
instead of migrating (and laundering) it first; trust and refresh scan for
poison before mutating anything, so a poisoned file is never cleaned to an
empty view ahead of the scan that's supposed to catch it.
Changed
- Trust hashing on migrated profiles covers
idioms/*.jsoninstead of the
generated view. Unmigrated profiles hash exactly as before. - The 200KB cumulative
idioms.mdcap is no longer enforced at teach time
(per-idiom 50KB caps remain); the whole-file cap returns with the view
renderer work. - With
CHAMELEON_TRUST_REVALIDATE=1, the first migration changes the trust
hash surface and triggers a one-time stale/re-trust prompt (default
one-time-trust users are unaffected).
Breaking Changes
- Idioms are now stored in `.chameleon/idioms/*.json`; the original `idioms.md` is preserved as `idioms.md.legacy` and becomes a generated view.
- Trust hashing for migrated profiles now covers `idioms/*.json` instead of the generated `idioms.md`, altering hash calculations.
- Teach operation will refuse to process a poisoned, not‑yet‑migrated `idioms.md` rather than migrating and laundering 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]