{"version":"2.1.275","anchor":"new-holdsevalsettles-stub-added-to-drainsession-loop-clas","canonical_anchor":"new-holdsevalsettles-stub-added-to-drainsession-loop-clas","heading":"Headless background-task wind-down gains an eval-settle hold","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275\/e\/new-holdsevalsettles-stub-added-to-drainsession-loop-clas","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275","markdown":"### Headless background-task wind-down gains an eval-settle hold\n\nClaude Code's headless\/print mode now tracks whether it should hold dispatch for eval settling and whether a background-wait ceiling was hit\n\n**Unclear.** The finding does not say what holdsEvalSettles() is meant to represent or when it might return true.\n\n**What**\n\n- A new `holdsEvalSettles()` check was added to the drain\/session-loop wait condition, as part of a rewrite that collapsed several separate booleans into one inline check.\n\n- In headless\/print mode, the background-task dispatch loop now accepts a `holdsEvalSettles` callback; when it returns true, task dispatch (`takeHead()`) is held rather than proceeding.\n\n- A new `bgWaitCeilingExceeded` field records whether the `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` wait ceiling was reached.\n\n**Why**\n\nThis gives headless\/print-mode runs finer control over when background task dispatch should pause to let evaluation settle, and visibility into whether the configured wait ceiling was hit.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5"}