{"version":"2.1.248","anchor":"loop-keepalive-is-on-by-default","canonical_anchor":"loop-keepalive-is-on-by-default","heading":"Loop keepalive is on by default","tier":"notice","area":"Loops","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/loop-keepalive-is-on-by-default","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### Loop keepalive is on by default\n\nSelf-paced loops now keep going until the budget is spent instead of stopping early.\n\n**What**\n\nLoops that let the model set its own pace now keep rescheduling by default. The gate `tengu_kairos_loop_keepalive` ships with a built-in default of on (it was off), and the per-schedule check that bailed out early has been removed, so a loop runs until the budget is spent rather than stopping at the gate.\n\n**Details**\n\n- Rescheduling goes straight to the budget check, which ends the loop with \"keepalive budget exhausted (model declined to reschedule twice) \u2014 ending loop\".\n- `CLAUDE_CODE_LOOP_KEEPALIVE` overrides both the server value and the built-in default.\n- With no server value set, keepalive is live on this build.\n\n**Evidence**\n\n`tengu_kairos_loop_keepalive`\n\n- Flag `tengu_kairos_loop_keepalive`: Not enough to say (read for one account on one subscription tier against v2.1.248; this account: no value returned, anonymous baseline: no value returned, compiled default: on)\n- Area: Loops\n- Names: `\/loop`\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 3\/5"}