{"version":"2.1.209","anchor":"refusal-fallback-tracking-improved","canonical_anchor":"refusal-fallback-tracking-improved","heading":"Refusal Fallback Tracking Improved","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.209\/e\/refusal-fallback-tracking-improved","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.209","markdown":"### Refusal Fallback Tracking Improved\n\nThe internal mechanism for tracking model refusal fallbacks now carries additional state across requests. Two new session-level fields were added:\n\n- `refusalFallbackHeaderArmed` \u2014 indicates the fallback header should be sent on the next request\n- `refusalFallbackLatchOriginRequestId` \u2014 records the original request ID that triggered the fallback\n\nWhen the armed state is active, outgoing API requests now include new HTTP headers:\n\n- `x-cc-fallback-latched-by` \u2014 the request ID of the original triggering request\n- `x-cc-fallback-from-model` \u2014 the model that refused\n- `x-cc-fallback-category` \u2014 the refusal category\n- `x-cc-fallback-trigger` \u2014 what triggered the fallback\n- `x-cc-original-request-id` \u2014 original request correlation ID\n\nThe `pZp` helper that searches message history for refusal fallback records was refactored to return the full record instead of a pre-filtered subset, enabling richer downstream handling. The `XNt` function is now called at three points in the main request loop (interactive, forked, and background sessions) to rearm the fallback header when applicable.\n\n**Evidence**\n\nNew state fields (search for `\"refusalFallbackHeaderArmed\"`); new header constants (search for `\"x-cc-fallback-latched-by\"`); new `kgt` arming function and `XNt` recheck function in `pretty-v2.1.209.js`"}