OctoLink GEO

Claude Code 2.1.277 Labels Subagent Text So It Cannot Pose as the User

Author Editor

The 18 September release marks subagent results, fixes headless hangs, and drops the TaskOutput tool.

Harness Engineering Claude Code Subagents

Direct answer

Claude Code 2.1.277 delivers subagent results under a header that marks them as subagent output, so that text cannot be read as the session's own instructions. Headless and SDK runs that used to hang after an internal error now exit with code 1.

The same Claude Code release that added AGENTS.md also changed how a harness treats text that did not come from the user. Version 2.1.277, published 18 September 2026, sends subagent results to the main agent under a header that marks them as subagent output, with the result indented. The changelog's reason is direct: text inside a subagent result must not pass as the session's own instructions.

Workflow scripts get a related guard on Bedrock, Vertex, and Foundry. A computed agent prompt is framed as script-authored text so the safety classifier does not read it as the user. Both changes are about provenance inside the loop, not about a new model.

Headless sessions fail closed

claude -p and Agent SDK sessions that could hang with no result after an internal error now report the error and exit with code 1. Session start for SDK and headless use is faster because the first turn no longer waits on the per-directory CLAUDE.md lookup. The background Haiku auto-title request is removed from claude -p runs launched outside an SDK or IDE.

The deprecated TaskOutput tool is gone. A background task is read from its output file, and taskOutputMaxChars plus TASK_MAX_OUTPUT_LENGTH have no effect. In VS Code, background shells and other running tasks appear on the agent map, each with a Stop control.

Source: Claude Code v2.1.277.

FAQ

What happened to TaskOutput?
The deprecated tool is removed. Claude reads a background task's output file with Read, and the old taskOutputMaxChars setting no longer applies.
What changed for headless runs?
The first turn no longer waits on the per-directory CLAUDE.md lookup, and a failed session reports the error instead of hanging with no result.