5cf225481c
The enum belonged in types.py all along: making LLMResponse field-typed on a symbol defined in thinking.py would have had the innermost layer import a decision module, and import-linter would have caught it only after the code was written. The 4.1 table claimed reconciliation could still catch a failed disable while section 5 said UNKNOWN never speaks. UNKNOWN has no falsifying power; the guarantee only covers observable paths, and the doc now says so instead of pretending otherwise. Section 12 was written against a misreading: _record already is the single helper the ironclad rule asks for, so there was no debt to decline. Landing sites had missed ports.py, whose record_llm_call freezes 24 explicit params with no defaults, and cache.py, where _rehydrate revives the enum as a bare string.