Skip to content

claude-code

Without CLAUDE.md, Claude Code 2.1.277 reads AGENTS.md

Claude News

If your repository ships an AGENTS.md and no CLAUDE.md, Claude Code 2.1.277 reads that file as the project instructions, and which source wins is a setting under "Project instructions" in /config.

The rest of the notes, published on Github, are mostly fixes for sessions that crashed, hung or quietly did nothing, plus a new environment variable for gateways that can only reach the internet through a forward proxy.

At a glance

  • Gateways whose only egress is a forward proxy can set CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1, after which every outbound request hands the proxy a hostname instead of resolving that hostname on the machine first.
  • Claude apps gateway upstreams take an optional headers map for static headers, and the telemetry relay now honours a collector hostname or domain listed in NO_PROXY when a proxy is set.
  • The AGENTS.md reading has not reached Bedrock, Vertex or Foundry, and the deprecated TaskOutput tool is removed, so taskOutputMaxChars and TASK_MAX_OUTPUT_LENGTH no longer do anything.

If you have not been following the file itself: according to agents.md, the site behind the format, AGENTS.md is a simple, open format for guiding coding agents, used by over 60k open-source projects. The same site frames it as a complement to README files, carrying the build steps, tests and conventions that would clutter a README.

AGENTS.md is read only when CLAUDE.md is missing

The rule is narrow. In a project with no CLAUDE.md, Claude Code reads AGENTS.md instead, and you change that under "Project instructions" in /config. Bedrock, Vertex and Foundry do not have it yet.

Several neighbouring fixes sit on the same loading path. Sessions continued after /clear, by restart, --continue or --resume, lost part of their first message when a SessionStart hook printed output, and the cost was a full prompt-cache miss. Project skills from the main repository now load in --worktree sessions when .claude/skills is untracked.

Two more cache leaks are closed. Resumed subagents and teammates re-rendered the MCP tool definitions they had loaded, which broke prompt caching for that agent, and attachments recorded earlier in a conversation were re-rendered after a resume or relaunch, which dropped extended thinking and missed the cache. SDK and headless (-p) start-up also stops waiting on the per-directory CLAUDE.md lookup before the first turn.

Why hand the hostname to the proxy?

Because the machine may not be allowed to look it up. With CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1, every outbound request from a Claude apps gateway gives the forward proxy the hostname instead of resolving it locally. It is meant for gateways whose only egress is that proxy.

The everyday version: rather than finding the address yourself and handing the courier a set of coordinates, you give the courier the name of the place. The proxy is the only party on that network with a working map.

Upstreams also accept an optional headers map, for static headers you want sent to a proxy you run in front of a provider. Loopback error messages now name CLAUDE_GATEWAY_ALLOW_LOOPBACK.

According to Gradually AI, the two previous builds touched the same area: 2.1.275 on 17 September 2026 added signed-in account confirmation to gateway sign-in, and 2.1.276 on 18 September 2026 fixed a 2.1.275 regression in which every request failed with a 400 when ANTHROPIC_BASE_URL pointed at a proxy or gateway.

Grep and Glob stop reporting "no matches" when they never ran

When the system was out of processes, memory or file handles, the search never started and the tools said there were no matches. Now they return an error saying so. Point the Write tool at an existing directory and it ended the turn as a declined permission; it now reports a clear error.

claude -p and Agent SDK sessions could hang with no result after an internal error; they now report the error and exit with code 1. Conversations that failed every request with "text content blocks must be non-empty" work again, including after --resume; the cause was an earlier assistant turn holding an empty text block beside other content.

Update checks errored every 30 minutes if a proxy returned an invalid version, and claude update hung when a minimum or maximum version was set; a malformed minimumVersion is now ignored. On winget- and apk-managed installs, a failed version lookup reported "up to date".

An older build on the same machine, say an IDE extension's bundled CLI, stops signing you out of the current one. Malformed values in ~/.claude.json also stop being fatal: customApiKeyResponses hung interactive start-up for ANTHROPIC_API_KEY users, claudeAiMcpEverConnected crashed /mcp, and a bad theme crashed the launch.

TaskOutput is gone and subagent results arrive under a header

The deprecated TaskOutput tool is removed: Claude reads a background task's output file with Read, and taskOutputMaxChars and TASK_MAX_OUTPUT_LENGTH have no effect. A panel such as /tasks now shows a line saying a finished background task's update is waiting.

Subagent results reach the main agent under a header marking them as subagent output, with the result indented, so text inside a result cannot pass as the session's own instructions. On Bedrock, Vertex and Foundry, workflow scripts' computed agent() prompts reach the subagent framed as script-authored text, so the safety classifier does not read them as the user.

/model on the Anthropic API always lists Fable, greyed out only when your organization's settings disable it. Invisible Unicode formatting and tag characters are stripped from prompts, and the cleaned prompt is shown for review before it is sent.

In VS Code the panel menu gains a Sign out row, running background shells join the agent map with a Stop and a typed /tasks, and sessions where plan limits do not apply (Vertex, Bedrock, Foundry, API key) show cost and token usage.

The notes give no date for AGENTS.md on Bedrock, Vertex or Foundry. In our view the more interesting limit is the trigger: the file is read only when CLAUDE.md is absent, so a repository carrying both keeps feeding Claude the file it always fed it.

What to check in headless runs

Two things are worth a look this week if you script Claude Code. Scripts that still set TASK_MAX_OUTPUT_LENGTH or taskOutputMaxChars now set nothing, so any assumption about truncated background output needs re-testing against Read. And a pipeline that treated a silent claude -p as success will start seeing exit code 1 after an internal error, which only helps if the caller checks it.

Related stories

  1. In Claude Code, one CLAUDE.md silently kills your AGENTS.md
  2. Your claude.ai skills follow you into Claude Code 2.1.275
  3. Claude Code 2.1.274 warns before memory turns critical
  4. Claude Code stops billing API users for the auto mode check
  5. Claude Code tags gateway requests by class and agent
  6. Claude Code 2.1.269 grades plugins with a scored eval run

Comments

No comments yet. Be the first.

Join the conversation

Sign in with Google to leave a comment. Your name and avatar come from your Google profile, and the comment appears after moderation.

We only use your name and avatar from Google. We never store your email address.