2.1.91 untested · changelog-derived

Claude Code 2.1.91

MCP tool result persistence override via `_meta["anthropic/maxResultSizeChars"]` — agents can now transmit large results (up to 500K) like DB schemas without truncation, unlocking deeper integration with data discovery tasks.

4 new primitives 2 workflow recipes 9 fixes

New primitives

_meta["anthropic/maxResultSizeChars"]MCP annotation

Persist larger tool results (up to 500K) without truncation

Added MCP tool result persistence override via `_meta["anthropic/maxResultSizeChars"]` annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation
disableSkillShellExecutionsetting

Disable inline shell execution in skills, custom slash commands, and plugin commands

Added `disableSkillShellExecution` setting to disable inline shell execution in skills, custom slash commands, and plugin commands
Multi-line deep linkscapability

Support newlines in `claude-cli://open?q=` URLs via `%0A` encoding

Added support for multi-line prompts in `claude-cli://open?q=` deep links (encoded newlines `%0A` no longer rejected)
Plugin bin/ executablescapability

Plugins can ship executables under `bin/` and invoke them as bare commands from Bash

Plugins can now ship executables under `bin/` and invoke them as bare commands from the Bash tool

Workflow recipes

Large-Schema Discovery Loop
_meta["anthropic/maxResultSizeChars"] + Plugin bin/ executables

Agent-driven database or API schema ingestion typically fails on truncated output. By persisting full schemas (up to 500K) alongside lightweight custom tools (plugin executables), agents can now perform lossless schema import, cross-database comparison, and generation of integration glue code without round-tripping to external services.

An agent workflow for federated data discovery: plugin ships custom CLI tools that query live databases (Postgres, BigQuery, etc.) and dump their full schemas; agent uses the persistence override to absorb 200K+ schemas in a single turn; agent then generates normalized schema graphs, spotting conflicts and gaps across sources without truncation noise.

Sandboxed Skill Execution in CRC Graph Adjudication
disableSkillShellExecution + multi-line deep links

CRC v3 adjudication workflows often call out to skills to fetch or verify facts. The ability to disable inline shell execution in skills (security boundary) + multi-line deep links (structured prompts to agents) enables safer, richer agent choreography where untrusted or third-party skills can be executed under constraints, and complex reasoning prompts can be encoded in URLs without encoding friction.

A CRC adjudication loop that spawns agents via deep links with multi-line reasoning prompts; those agents call out to skills (facts, data, probes) but those skills run sandboxed (no shell escape), isolating execution from the parent graph state. Failures in skill execution don't corrupt the adjudication state.

Agentic relevance

The MCP result persistence override (`_meta["anthropic/maxResultSizeChars"]`) is the key primitive for agent workflows involving schema ingestion, DB exploration, and large-document analysis. Plugin bin/ executables add lightweight custom tooling to agent environments. The `disableSkillShellExecution` setting provides security-hardened sandboxing for untrusted skills. Together they expand agent data reach and execution isolation.

Hardening & fixes (9)

  • Fixed transcript chain breaks on `--resume` that could lose conversation history when async transcript writes fail silently
  • Fixed `cmd+delete` not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal
  • Fixed plan mode in remote sessions losing track of the plan file after a container restart, which caused permission prompts on plan edits and an empty plan-approval modal
  • Fixed JSON schema validation for `permissions.defaultMode: "auto"` in settings.json
  • Fixed Windows version cleanup not protecting the active version's rollback copy
  • `/feedback` now explains why it's unavailable instead of disappearing from the slash menu
  • Improved `/claude-api` skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy
  • Improved performance: faster `stripAnsi` on Bun by routing through `Bun.stripANSI`
  • Edit tool now uses shorter `old_string` anchors, reducing output tokens

Raw changelog

## 2.1.91

- Added MCP tool result persistence override via `_meta["anthropic/maxResultSizeChars"]` annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation
- Added `disableSkillShellExecution` setting to disable inline shell execution in skills, custom slash commands, and plugin commands
- Added support for multi-line prompts in `claude-cli://open?q=` deep links (encoded newlines `%0A` no longer rejected)
- Plugins can now ship executables under `bin/` and invoke them as bare commands from the Bash tool
- Fixed transcript chain breaks on `--resume` that could lose conversation history when async transcript writes fail silently
- Fixed `cmd+delete` not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal
- Fixed plan mode in remote sessions losing track of the plan file after a container restart, which caused permission prompts on plan edits and an empty plan-approval modal
- Fixed JSON schema validation for `permissions.defaultMode: "auto"` in settings.json
- Fixed Windows version cleanup not protecting the active version's rollback copy
- `/feedback` now explains why it's unavailable instead of disappearing from the slash menu
- Improved `/claude-api` skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy
- Improved performance: faster `stripAnsi` on Bun by routing through `Bun.stripANSI`
- Edit tool now uses shorter `old_string` anchors, reducing output tokens