# The changelog (CHANGELOG-v32.md)

What moved between versions of the coder instrument, and why.

**What it holds**

v31 to v32 (2026-09-09): `emit.thread` refuses a read `out_of_scope` disposition of a thread with ten or more in-window items unless `excluded_quote` is what `cite` returned; C5 counts in-window items from `coder_corpus.jsonl`. v30 to v31 (2026-09-08): `close_run.py --preflight`, C11 (a `coded` thread keeps a live code), C12 (branch-B notes repeat the gate), and a guard on branch-B raw reads before step 4. Earlier history: v29's case lead and two branches, the forest, the facts files, the audit, and the runs that tested them.

**Who writes it, and when**

The instrument's author, at each version change. Dates are given per section.

**Why it exists**

The instrument README says: "`CHANGELOG-v32.md` says what moved and when". The v32 section gives the reason: an audit "found a systematic C5 failure in completed v30 rooms". The rationale beside the instrument, `rationale/V32-C5-PREVENTION-RATIONALE.md`, gives the same reason and adds that the method, evidence standard and outputs did not change.

**Where**

[CHANGELOG-v32.md](../../../coder/instrument/v32/CHANGELOG-v32.md); [V32-C5-PREVENTION-RATIONALE.md](../../../coder/instrument/v32/rationale/V32-C5-PREVENTION-RATIONALE.md).

Checked against: CHANGELOG-v32.md, README.md (instrument), V32-C5-PREVENTION-RATIONALE.md
