Claude Agent SDK changes how apps receive tool results
Claude Agent SDK 0.3.287 adds signals for omitted data and background web calls

Anthropic released Claude Agent SDK 0.3.287 for TypeScript on October 1, changing how applications receive large MCP results and web calls moved into the background. The release also repairs event ordering and interrupted response streams.
For developers building an interface around Claude, a returned tool message now needs closer interpretation. It can describe work that is still running or a result whose structured data was deliberately left out.
Large objects carry an omission signal
The TypeScript reference says MCP structuredContent exceeding 1,048,576 serialized JSON characters is omitted from tool_use_result. The response sets structuredContentOmitted to true, distinguishing an omitted object from a tool that supplied none. The threshold counts characters, not bytes.
Other members, including content and resourceLinks, remain available, and the change does not alter what Claude receives. Tools from SDK servers running within the application and tools declaring an MCP Apps UI resource are exempt. The cap applies with Claude Code 2.1.287 or later.
Background web work needs another state
When a priority now message moves WebFetch or WebSearch into the background, tool_use_result reports detachedToolCall as true. The call continues and Claude gets its result when it finishes. The reference says no second tool_result follows for that tool_use_id.
An application that displays one row per tool call should mark that row as background work. Waiting for another matching result can leave the interface showing an unfinished operation even after the agent has moved on.
Other changes affect session plumbing
The release repairs calls left waiting after an application disables or removes an MCP server. It also addresses startup command events arriving before initialization or twice. New optional remote session latency fields help identify time spent queued before the first text is posted.
Anthropicโs streaming guide explains that partial message mode delivers raw API events alongside normal messages. Applications must identify event types and accumulate text themselves. Token level events cover the main session only. Complete messages, rather than those raw deltas, carry the information used to attribute subagent output.
That makes separate interface checks useful. Exercise a normal response, an interrupted stream and subagent work, then confirm the display follows the actual message types. ByteForward has reviewed the release and documentation but has not independently executed these changes.
Illustrative archival photograph by Goran Ivos under CC0. Resized and converted to WebP. It does not depict the Claude Agent SDK.



