88f2844d46
- codex_runtime._CODEX_PROGRESS_DELTA_TYPES gains response.refusal.delta so the stream watchdog sees progress on a refusal-only stream instead of timing it out as idle. - auxiliary_client._parse_codex_final_response reads type=refusal content parts; without it an aux refusal-only turn parsed to content=None and hit the empty-response path the main loop was just taught to avoid. - tests: parametrize test_streamed_refusal_accumulated (refusal-only / alongside-content) so there is one test per surface; drop upstream product references from docstrings (credit stays in the PR body); pass encoding= to the read_text calls flagged by the Windows footgun scanner. - docs: fallback-providers notes that a streamed refusal is a terminal content_filter result, not an empty response to retry.