{"version":"2.1.302","anchor":"disableforksubagent-added-to-agent-tool-config","canonical_anchor":"disableforksubagent-added-to-agent-tool-config","heading":"Served tool sessions turn off fork subagents and let a tool host approve monitor commands","tier":"use","area":"Subagents","scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302\/e\/disableforksubagent-added-to-agent-tool-config","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302","markdown":"### Served tool sessions turn off fork subagents and let a tool host approve monitor commands\n\nClaude Code serving its tools turns off fork subagents, and a tool host can now approve RunMonitorCommand calls through a new permission request\n\n**Unclear.** It is not stated how this restriction is set, or whether a reader can set it at all.\n\n**What**\n\nClaude Code can run as an MCP server, serving its tools to another program (a tool host). Two things changed there:\n\n- `disableForkSubagent()`: a new switch that turns off fork subagents. A subagent is a helper agent Claude starts for a task, and a fork is one that inherits the current conversation. Served MCP sessions now call this switch, next to the existing switches that stop background agent launches, remote agent isolation and background deadlines.\n\n- `RunMonitorCommand` can now take a `monitor_input` tied to a ToolHost permission request, so the tool host decides whether the command may run. A separate check (`checkMonitorRun`) and a claim-and-release step refuse a call that was already started once or was already reported as not started. That refusal reads: \"this session was already told that this call had not started, so it can no longer run. Send a new call.\" If `monitor_input` arrives without a permission request this server decides, it is refused with \"Retrying won't help.\"\n\n- Without `monitor_input`, the old path stays: the served Bash check against the deny rules.\n\n- Separately, the side-query request builder now passes `toolNames` to its request setup.\n\n**Why**\n\nPrograms that drive Claude Code as a tool server cannot use fork subagents, and can take over the decision on monitor commands. A monitor call that was refused or already reported as not started has to be sent again as a new call rather than retried.\n\n- Area: Subagents\n- Names: `disableForkSubagent`, `disableMessagingBeyondOwnAgents`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Scope: both\n- Heads-up: yes"}