{"version":"2.1.292","anchor":"subagent-notifications-carry-runid-and-usage-limit-denial","canonical_anchor":"subagent-notifications-carry-runid-and-usage-limit-denial","heading":"Subagents link to the parent's abort and report runId and usage-limit denials","tier":"notice","area":"Subagents","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292\/e\/subagent-notifications-carry-runid-and-usage-limit-denial","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292","markdown":"### Subagents link to the parent's abort and report runId and usage-limit denials\n\nSubagents now follow the parent's abort through a detachable relay, record `launchedWithDefaults`, and report `runId` and usage-limit denials\n\n**What**\n\nA subagent is a helper copy of Claude that your session starts to handle part of a task, either while you wait (synchronous) or in the background. Several things about how they start and report back changed.\n\n- Background subagents: the abort controller (what stops a run when you cancel) is now linked to the parent's abort controller through a relay that can be detached.\n\n- Synchronous subagents: launches now pass `parentAbortController` and get back `detachParentAbortRelay`, which is called when the subagent finishes. Before, a standalone relay was used.\n\n- `runId`: task notifications from subagents running on their own now include it.\n\n- `usageLimitDenial`: passed along when a run fails because of a usage limit.\n\n- `launchedWithDefaults`: recorded for local and background tasks.\n\n- Remote subagent launches now work out their permission mode through a new helper that takes `declaredMode`, `parentModeToHand` and `model`.\n\n**Why**\n\nCancelling should now reach subagents more reliably, and the main session or an interface showing subagents can tell a usage-limit failure apart from other failures.\n\n- Area: Subagents\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}