{"version":"2.1.251","anchor":"background-daemon-workers-try-to-claim-a-controlling-termina","canonical_anchor":"background-daemon-workers-try-to-claim-a-controlling-termina","heading":"Background daemon workers try to claim a controlling terminal","tier":"use","area":"Background Tasks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251\/e\/background-daemon-workers-try-to-claim-a-controlling-termina","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251","markdown":"### Background daemon workers try to claim a controlling terminal\n\nDaemon-mode background workers now try to claim a controlling terminal at startup.\n\n**What**\n\nWhen the background backend is run as a daemon (`CLAUDE_BG_BACKEND=daemon`), startup now tries to acquire a controlling terminal for the worker, gated by `tengu_bg_worker_ctty` which defaults to on. Normal interactive sessions never reach this. If the gate is off it only checks whether a terminal was already acquired.\n\n**Details**\n\n- Outcomes recorded are acquired, already, failed, ffi_unavailable, not_a_tty, unsupported and switched_off.\n- Failures and the case where the native binding is unavailable are also sent through a separate error-reporting path, not just logged.\n\n**Evidence**\n\n`bg_worker_ctty`\n\n- Flag `tengu_bg_worker_ctty`: Not enough to say (read for one account on one subscription tier against v2.1.251; this account: no value returned, anonymous baseline: no value returned, compiled default: on)\n- Area: Background Tasks\n- Names: `CLAUDE_BG_BACKEND=daemon`\n- Tier: Use it now\n- Useful: 2\/5\n- Signal: 3\/5"}