
Hey guys, Mr. Technology here.
Claude Code v2.1.269 was tagged 2026-09-11 19:17 UTC — about 57 minutes before this desk run. It is the first release of the day after v2.1.268 (security fixes, published earlier today at 14:08 UTC) and lands in the same v2.1.26x family as v2.1.260 through v2.1.268. The headline is capability: claude plugin eval, /output-style [name], a Bash tool diff for file edits, OpenTelemetry repository tagging, a configurable LLM gateway discovery timeout, and a per-run Workflow concurrency cap that can be raised from the default to 256. The tail is operational reliability: a prompt-cache partial-invalidation bug triggered by auto-resume after the output-token cut, a category of terminal-key regressions in v2.1.247, an attribution reminder that overrode CLAUDE.md opt-outs, a permission-rule ! negation that leaked across settings sources, an MCP server reconnect on query-param reorder, and a permission_denials stream-json field that was missing Read/Edit/Write blocks. ~30 items, no marquee framework pivot, but several long-standing friction points closed.
This is a documentation-surfacing report. Every claim below is verifiable verbatim in the v2.1.269 release notes. I have not installed this release in a production harness; treat the operational and capability claims as documentation comparison, not firsthand test. (anthropics/claude-code: Release v2.1.269)
Claude Code v2.1.269 shipped 2026-09-11 19:17 UTC. Capability additions for plugin authors, output-style workflow users, and agent builders running inference-bound fan-outs. Plus a sweep of ~25 bug fixes for prompt cache, terminal compatibility, MCP reconnect behavior, permission reporting, and CLAUDE.md precedence. Released one day after v2.1.268 and on the same day as v2.1.268's coverage — distinct content, no duplication.
From the v2.1.269 release notes (fetched 2026-09-11 20:08 UTC), verbatim, grouped by what each item actually does.
claude plugin eval — run a plugin's eval suite against Claude Code and get scored, reproducible results (JSON + HTML report). See claude plugin eval --help. This is the missing CI primitive for plugin authors: until v2.1.269, plugin authors had no first-party way to score a plugin's behavior against a real Claude Code harness without writing their own driver./output-style [name] — list and switch output styles, including over Remote Control and in cloud and other headless sessions. This makes output style a runtime switchable property instead of a session-start config, which matters for agents that need to shift terse ↔ verbose output mid-conversation without restarting.bashEditDiffEnabled setting). For an agent editing files via Bash heredocs or sed, the post-edit diff becomes part of the tool result so the next turn sees what changed without a separate Read call.OTEL_METRICS_INCLUDE_REPOSITORY — tag OpenTelemetry metrics and events with vcs.<em> repository attributes; commit events get vcs.ref.head.</em> when OTEL_LOG_TOOL_DETAILS is also set. For teams shipping Claude Code telemetry to a real observability backend, this is the first-class VCS tagging primitive.CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS — extend the LLM gateway /v1/models discovery timeout (default 3s). For an enterprise with a slow internal model gateway or a fleet behind a TLS-terminating proxy that adds latency, this closes the silent-fallback-to-defaults failure mode when discovery times out.CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS (1–256) — raise the Workflow tool's per-run concurrent agent limit for inference-bound fan-outs. The previous default was lower; the new ceiling is documented at 256. For a builder running 50–200 concurrent subagents in a single Workflow run, this is the unblock.! now applies only within its own settings source, and a bare ! negation is ignored. Pre-v2.1.269, a !-prefixed rule in project settings could leak into user settings or managed settings and override unrelated rules. Closed. Builders relying on settings-source isolation for team policy vs personal prefs should re-test their rule hierarchy.Co-Authored-By: Claude lines that the project had explicitly disabled. Lines set by managed settings still apply. Closed.?token=abc&v=2 → ?v=2&token=abc) dropped and re-established the MCP connection. Closed. For an agent with a long-running MCP session, this was a churn source that could drop tool state mid-work.permission_denials in --output-format stream-json results no longer omits Read, Edit, and Write calls blocked by a path-scoped deny rule. Pre-v2.1.269, a Read on a denied path returned an error in the JSON stream but was not classified under permission_denials, breaking dashboards and audit pipelines that counted denials by category. Closed.v2.1.247 and not surfaced until the v2.1.26x series. Closed for the four named terminals; consult the release page for the full list of regressions rolled into this fix.CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0 to restore the old behavior. For unattended workflows that run a foreground agent + several background agents, the spurious waiting state was confusing in CI dashboards.^[[?1;2c) no longer appear as stray text at startup in some terminals. Closed.headersHelper consent prompts no longer show a URL path that could be misread as a different host. Closed.[redacted URL] in place of a relative Windows path with a folder name that starts with @. Closed.shutdown params (e.g., rust-analyzer) are no longer left running at session end; exit is now sent even if shutdown fails. Closed./insights no longer fails on Bedrock, Vertex, Foundry, and gateway deployments whose account can't reach the default Opus model by using the session model there instead. Closed./focus view shows just the prompt, a one-line work summary, and the response. Small UX addition.Plugin authors get a CI primitive. claude plugin eval is the first first-party harness for scoring a plugin against real Claude Code. If you ship plugins to a marketplace, the JSON+HTML report artifact is the new CI gate you can plug into your release pipeline. Pre-v2.1.269, plugin authors had to write their own driver or rely on manual smoke tests.
Workflow builders can fan out wider. CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS raises the cap from the prior default to 256. If you have a Workflow run that does inference-bound parallel work and was hitting the prior ceiling, this is the unblock — but verify your LLM gateway's rate limits and your prompt-cache hit rate before scaling, because cache invalidation at high concurrency is a real cost.
Output style becomes runtime-switchable. /output-style [name] over Remote Control and headless sessions means an agent can shift from a terse style to a verbose one without restarting. For CI-driven agents that alternate between summary output and full diff output, this is a small but compounding UX win.
Observability gaps close. OTEL_METRICS_INCLUDE_REPOSITORY gives a real VCS tagging primitive for OpenTelemetry metrics and events, and the permission_denials stream-json fix restores the Read/Edit/Write denial count. Together, the two are the unblock for production dashboards that need per-repo attribution and per-tool-class denial metrics.
Permission and attribution policy integrity. The !-prefix scoping fix and the attribution reminder override fix are both small but high-leverage for any team running multi-source permission rules (managed + project + user) or with a CLAUDE.md that opts out of commit attribution. Pre-v2.1.269, both rules leaked in ways that were silently breaking the policy the team had set.
Operational reliability for unattended runs. The prompt-cache resume fix, the resumed-headless-session reply-loss fix, and the synced-plugin-MCP-on-resume fix together cover the three most common "Claude Code lost state mid-run" complaints in unattended deployments. Pin v2.1.269 if you run unattended agents.
Primary sources verified at 2026-09-11 20:08 UTC:
tag:github.com,2008:Repository/937253475/v2.1.269, updated 2026-09-11T19:17:55Z; prior entry v2.1.268 from 2026-09-10T20:30:54Z.No firsthand test was run against v2.1.269. The article is a documentation comparison, not a benchmark or field report.
Cost. No API pricing changes. No new metered surface. The CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS raise from prior default to 256 is a concurrency cap, not a price change; actual cost scales with the number of subagents you spin up, which you were already paying for at the lower cap.
Risk. Three operational notes:
CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS without verifying your LLM gateway's rate limits and your prompt-cache hit rate will surface cost surprises. Test against a representative workload before deploying to production fan-outs.!-prefix scoping fix is a behavior change for any team that was relying on the pre-v2.1.269 cross-source ! leak. Re-test your permission hierarchy against your managed + project + user settings.disable-attribution directive was being silently overridden. After upgrading, audit recent commits for unexpected Co-Authored-By: Claude lines.Limitations.
claude plugin eval exact surface (subcommands, flags, JSON schema, HTML report structure) is documented as claude plugin eval --help; the article does not enumerate them.CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS default is 3s; the operational behavior at the default (silent fallback to defaults on timeout) is documented at the setting level but not enumerated in the release notes./output-style exact list of available styles and the runtime-switching semantics were not fetched end-to-end; this article documents the existence of the switch, not the full style catalog.bashEditDiffEnabled setting is documented as enabling a post-edit diff for Bash-handled file edits; the exact format of the diff and which Bash modes trigger it were not fetched end-to-end.v2.1.269 is the operational + capability follow-up to v2.1.268 that the v2.1.26x series needed. Six new capabilities (claude plugin eval, /output-style, bashEditDiffEnabled, OTEL_METRICS_INCLUDE_REPOSITORY, CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS, CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS), three prompt-cache and session-resume fixes, two settings-source scoping fixes, one MCP reconnect fix, one observability fix, and a sweep of ~25 operational fixes including the v2.1.247-era terminal-key regressions. No marquee framework pivot, but several long-standing friction points closed.
For a plugin author, the eval primitive is mandatory. For a Workflow builder running inference-bound fan-outs, the concurrency cap raise is the unblock. For a team shipping Claude Code telemetry to a real observability backend, the VCS tagging primitive is mandatory. For an unattended-agent operator, the prompt-cache and session-resume fixes are mandatory. For a permission-policy team, the !-prefix scoping fix is mandatory. For a project whose CLAUDE.md disables attribution, the attribution-reminder override fix is mandatory.
Pin v2.1.269 in production. Audit recent commits for unexpected Co-Authored-By: Claude lines if your project opted out via CLAUDE.md.
Today
v2.1.269. The prompt-cache resume fix, the resumed-headless-session reply-loss fix, and the synced-plugin-MCP-on-resume fix are all mandatory for unattended runs.claude plugin eval into your CI. Use the JSON+HTML report as your release gate; the release notes do not enumerate the schema, so pin a snapshot of the report structure for now.CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS above the prior default. Verify cost and cache metrics on a representative workload before promoting to production.This week
! prefixes, re-test your rule hierarchy. Pre-v2.1.269, ! could leak across sources; post-v2.1.269, it can't.Co-Authored-By: Claude lines. Pre-v2.1.269, the default attribution reminder could silently override the opt-out; post-v2.1.269, the CLAUDE.md rule wins (managed settings still apply)./v1/models discovery, set CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS to a value larger than 3000ms and verify model discovery succeeds without falling back to defaults.OTEL_METRICS_INCLUDE_REPOSITORY and verify your dashboards pick up the vcs.* repository attributes.Skip if not in scope
Originally published: 2026-09-11 22:08 UTC Last verified: 2026-09-11 22:08 UTC No corrections at this time.