{"version":"2.1.269","anchor":"background-shell-command-detach-is-now-async-and-waits-on","canonical_anchor":"background-shell-command-detach-is-now-async-and-waits-on","heading":"Background shell command detach() is now async and waits on a handoff callback","tier":"internal","area":"Bash Tool","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/background-shell-command-detach-is-now-async-and-waits-on","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### Background shell command detach() is now async and waits on a handoff callback\n\nDetaching a background shell command can now wait for a handoff step to finish first\n\n**What**\n\nThe internal function that detaches a background shell command (lets it keep running independently of Claude Code) is now asynchronous. If a handoff callback was supplied for that command and the process hasn't already exited, detaching now waits for that callback to finish before handing back the process ID.\n\n**Why**\n\nThis ensures any cleanup or handoff work tied to a background command completes before Claude Code considers the process fully detached, avoiding a race where the detach finishes before the handoff step is done.\n\n- Area: Bash Tool\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5"}