Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All releases Home olderv2.1.177 v2.1.179newer

Claude Code v2.1.178

23 entries read diff v2.1.177 → v2.1.178 Markdown

This release replaces the explicit TeamCreate/TeamDelete tools with a simpler named-agent model, introduces a standalone /design-login command for design-system access independent of the main session token, and adds isolation: "remote" support to the Agent tool for cloud-hosted subagents. Fable 5 usage credits receive a significant UX overhaul, and the code-review skill gains a new CLAUDE.md conventions angle.

Find
Pick an entry · j / k steps through
3 entries

New Featuresopen

/design-login — Standalone Design-System Authorization#

What

A new slash command that authorizes design-system (claude.ai/design) access independently of the main session login. This is especially useful when Claude Code authenticates via an API key or provider token rather than a claude.ai subscription.

Usage
/design-login
Details
  • Opens a browser OAuth consent page specific to design-system scopes (user:design:read, user:design:write)
  • On SSH or remote sessions (where a browser can't reach the local listener), the flow falls back to a manual code-paste method
  • The credential is stored as a separate designOauth entry in settings, entirely separate from the main session token — signing out of claude.ai does not invalidate the design credential
  • The credential auto-refreshes; if a refresh fails the command re-prompts
  • Requires CLAUDE_CODE_DESIGN_OAUTH_CLIENT_ID to be set (or a build that includes the registered client id)
  • A 5-minute browser-authorization timeout applies; after that, the manual /design-login flow is suggested
Evidence

Design OAuth lock and flow (search for "Design login", ".design_oauth_refresh.lock", "design login — approving opens a browser OAuth consent")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Agent Tool: isolation: "remote" — Cloud-Hosted Subagents#

What

The Agent tool's isolation parameter now accepts "remote" in addition to "worktree". This launches the agent in a remote cloud (CCR) environment, always as a background task.

Usage
// In a skill or agent prompt instructing Agent tool use:
isolation: "remote"
Details
  • Always runs in the background; you are notified when it completes
  • Remote agents run against the repository's default branch if the current local branch is not pushed to origin
  • Not available in all contexts: if CCR is unavailable, the tool reports [remote agent] isolation:'remote' is unavailable
  • A local agent context or no git root causes automatic fallback to other isolation modes
Evidence

Remote agent branch check (search for "[remote agent] local branch '", "isolation:'remote' is unavailable", "CLAUDE_CODE_REMOTE_SESSION_ID")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

/thinking Command: thinking_display Parameter#

What

The /thinking command (which sets maximum thinking tokens) now accepts an optional thinking_display argument to set the thinking display mode for the rest of the session.

Usage
/thinking 10000 summarized
/thinking 10000 omitted
/thinking 10000          (keeps the session-start --thinking-display value)
/thinking 0              (disables extended thinking)
Details
  • summarized — shows collapsed thinking summaries
  • omitted — hides thinking blocks entirely
  • Passing null clears back to the API default
  • When omitted the display mode from session start (--thinking-display) is preserved
Evidence

Schema update for set_max_thinking_tokens (search for "thinking_display optionally sets the thinking display mode", "thinking_display")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

15 entries

Improvementsopen

Named-Teammate Agent Swarms (TeamCreate/TeamDelete Removed)#

The explicit TeamCreate and TeamDelete tools have been removed. Multi-agent coordination is now done entirely through the Agent tool's name parameter — no separate team-creation step is needed.

Before (v2.1.177):

// 1. Call TeamCreate to set up the team
// 2. Call Agent with team_name + name to spawn a teammate
// 3. Call TeamDelete when done

After (v2.1.178):

// Just call Agent with a name parameter
Agent({ name: "researcher", prompt: "..." })
Details
  • Agent swarms remain gated by the same feature flag as before
  • The team_name field in TeammateIdle hook events is now deprecated (marked @deprecated) — sessions have a single implicit team; the field will be removed in a future release
  • System prompt guidance now reads: "If this plan can be broken down into multiple independent tasks, consider spawning named teammates with the Agent tool (pass a name) to parallelize the work."
  • "main" is now a reserved recipient name for SendMessage — it routes a message directly to the main conversation
Evidence

Removal of TeamCreate/TeamDelete tools (search for "TeamCreate" absent from new file; guidance string search for "spawning named teammates with the"; reserved name message search for "SendMessage routes it to the main conversation")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Code Review: CLAUDE.md Conventions Angle Added#

What

The code review skill (/code-review) now runs a dedicated "conventions" finder angle that checks changed code against the CLAUDE.md files governing those files.

Details
  • Looks at user-level ~/.claude/CLAUDE.md, repo-root CLAUDE.md, and any ancestor-directory CLAUDE.md or CLAUDE.local.md relevant to changed files
  • Only flags a violation when the exact rule can be quoted and the exact violating line identified — no vague style inferences
  • Total finder angles increase: high effort goes from 7 to 8 independent angles; max effort goes from 9 to 10
  • Cleanup/altitude/conventions candidates share the same finding shape; correctness bugs always rank higher when output cap forces a cut
Evidence

Updated phase header strings (search for "3 correctness angles + 3 cleanup angles + 1 altitude angle + 1 conventions angle", "Pin the diff command, changed files, applicable CLAUDE.md files, and conventions")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Fable 5 Usage Credits UX Overhaul#

What

The model selector and status messages around Fable 5's usage credits are significantly improved with clearer state communication.

Details
  • The model entry now dynamically shows either "Draws from usage credits" or "Included with your plan until [date]" depending on account state
  • New fableOverageConsent consent flow: users are asked to explicitly enable usage credits before Fable 5 draws from them
  • Consent is stored per organization UUID or account UUID in local settings
  • Improved error messages distinguish between: credits not yet enabled, monthly limit reached (admin-adjustable vs. self-adjustable), credits unavailable for the account, and organization policy disabling credits
  • A configurable bridge dialog timeout: CLAUDE_CODE_FABLE_BRIDGE_DIALOG_TIMEOUT_MS (default 60,000 ms)
Evidence

Fable model description function (search for "Draws from usage credits", "Included with your plan until", "fableOverageConsent", "CLAUDE_CODE_FABLE_BRIDGE_DIALOG_TIMEOUT_MS")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

DesignSync: Works Without a claude.ai Session Login#

What

DesignSync (and the DesignSync tool) now works even when the session authenticates with an API key or provider token, as long as a design credential has been stored via /design-login.

Details
  • Previously, design access required expanding the main OAuth token with design scopes — impossible with API keys
  • Now there is a separate credential slot (designOauth) checked independently of the main session token
  • Error messages are updated to reflect this: the new message for needing authorization is "Run /design-login to authorize it with your claude.ai account — this works even when this session authenticates with an API key or a provider token."
  • The DesignSync tool description is updated to note the (or, for sessions without one, a dedicated design authorization from /design-login) path
Evidence

DesignSync error message (search for "DesignSync needs design-system authorization. Run /design-login", "designOauth")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Foundry Deployment Capability Detection#

What

When running against an Azure AI Foundry deployment, Claude Code now detects unsupported capabilities at runtime and degrades gracefully instead of failing.

Details
  • Detects when Foundry returns a 400 error indicating features are unavailable (tool search, structured outputs, web search)
  • Capabilities detected from Foundry error messages: tool_search_server, tool_search, structured_outputs, web_search
  • On subsequent requests, the unsupported capabilities are stripped from the request (e.g. defer_loading and strict fields removed from tool definitions)
  • Web search unavailability is reported as: "Web search is not available on this Foundry deployment."
  • Tool search unavailability shows: "Tool search disabled: Foundry deployment for '…'"
Evidence

Foundry capability detection (search for "[foundry-capabilities] deployment", "retry:foundry-capability-strip:", "fail:foundry-purpose-request", "not supported in your workspace")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Artifact Tool: HTML Skeleton Wrapping at Publish Time#

What

The Artifact tool now wraps content in a <!doctype html>…<head>…</head><body> skeleton automatically at publish time, so content files should be written without those outer tags.

Details
  • Write the page content directly (body content, CSS, scripts) — no <!DOCTYPE>, <html>, <head>, or <body> tags of your own
  • Unless the user specifies a location, the recommended place for artifact files is the scratchpad directory listed in the system prompt
  • All other existing rules (self-contained, no external resources, responsive, favicon) are unchanged
Evidence

Updated Artifact tool description (search for "wrapped in a", "<!doctype html>", "write the page content directly")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Skill Directory Scoping#

What

Skills can now be scoped to a specific directory subtree. When a scoped and unscoped variant of the same skill exist, the Skill tool picks the most-specific matching directory.

Details
  • Skill names with a directory scope appear as apps/web:deploy (directory prefix + colon + skill name)
  • The Skill tool prompt now instructs the model: "When a skill name has both a scoped and an unscoped variant, pick by the files you are working on: if the files are under a variant's directory, invoke that variant (most specific directory wins)"
  • Marketplace plugin entries can declare specific skill subdirectory paths relative to the plugin root
Evidence

Skill tool prompt update (search for "Some skills are scoped to a directory", "most specific directory wins"); plugin schema (search for "Path to a skill directory, relative to the plugin root")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Scratchpad Directory Always Enabled#

Feature flag
tengu_scratch Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.178: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.178. It isn't a statement about your account. What a flag value here can and cannot tell you

What

The Scratchpad Directory section is now always included in the system prompt when a scratchpad is available. It was previously gated by the tengu_scratch feature flag.

Details
  • Workers can read and write to the scratchpad without permission prompts
  • The section is only added when a scratchpad directory is actually configured and not already present in the system prompt
  • The # Scratchpad Directory marker is used to detect duplicate inclusion
Evidence

Removal of tengu_scratch flag check (search for "# Scratchpad Directory", "Twf"); old code checked pz5() which called Y$("tengu_scratch", !1))

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Remote Control Diagnostics Improvements#

What

The Remote Control eligibility check (shown in claude doctor and related diagnostics) now shows more granular, correctly-labeled status for each check.

Details
  • Each check now shows a positive or negative label depending on its state, e.g. "Connected to the Anthropic API (api.anthropic.com)" vs. "Not connected to the Anthropic API (api.anthropic.com)"
  • A new explicit org policy check: "Org policy allows Remote Control (allow_remote_control)" / "Org policy does not allow Remote Control" / "Org policy could not be verified"
  • The rollout gate check now distinguishes between "rollout not enabled for this account" and "could not be verified for this account" (no server response)
  • Remote Control is now blocked with a clearer message when the organization's compliance policy disallows it
Evidence

Updated diagnostics function (search for "Connected to the Anthropic API (api.anthropic.com)", "Org policy allows Remote Control (allow_remote_control)", "Remote Control rollout enabled for this account")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

agent-proxy Replaces egress-gateway#

What

Internal proxy component renamed from "egress-gateway" to "agent-proxy". All log messages now use the [agent-proxy] prefix.

Details
  • All [egress-gateway] log strings are replaced with [agent-proxy]
  • No behavior change; this is a rename that aligns with the component's role in agent communication
Evidence

Log string comparison (search for "[agent-proxy] enabled on 127.0.0.1:", "[agent-proxy] tunnel protocol v2 negotiated")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Tool Call Empty-Input Repair#

What

When a tool is called with an empty input object {} but the tool has required parameters, a helpful error message is now generated that shows the minimal valid call shape.

Details
  • Controlled by the teasel_cove field in the juniper_shoal server config (feature flag)
  • The error message format: "The [tool] tool was called with an empty input object ({}), but it has required parameters: param1, param2. Minimal valid call shape: {…}. Re-issue the call with real values for each required parameter."
  • Works for Zod-validated tool schemas (ZodObject inputs)
Evidence

New function generating the repair message (search for "tool was called with an empty input object ({})"; "teasel_cove" in juniper_shoal config)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

NotebookEdit Permission Rules Now Filter by Path#

What

The NotebookEdit tool now supports ruleContentField: "notebook_path", meaning permission rules can match against the notebook path specifically.

Details
  • Previously, permission rules for NotebookEdit did not have a path-based content field
  • Now, rules like NotebookEdit(path/to/notebook.ipynb) will correctly match the notebook path
Evidence

Schema change for NotebookEdit tool definition (search for "notebook_path" in context of ruleContentField)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Periodic Memory Store Resync#

What

Memory stores are now periodically resynced in the background instead of relying solely on event-driven pushes.

Details
  • Controlled by the tengu_memory_store_resync_interval_minutes feature flag (minimum interval enforced)
  • Can be disabled entirely with CLAUDE_CODE_DISABLE_MEMORY_PERIODIC_RESYNC=true
  • A timer re-arms after each sync to schedule the next one; the mechanism uses unref() so it doesn't block process exit
Evidence

New periodic resync logic (search for "memory-watcher: stale-store check failed:", "CLAUDE_CODE_DISABLE_MEMORY_PERIODIC_RESYNC", "tengu_memory_store_resync_interval_minutes")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

TODO Reminder Mode Control#

Feature flag
tengu_soft_slate_nudge Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.178: not a boolean we can read

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.178. It isn't a statement about your account. What a flag value here can and cannot tell you

What

The TODO reminder behavior can now be controlled via a new environment variable or feature flag.

Usage
CLAUDE_CODE_TODO_REMINDER_MODE=off claude     # disable TODO reminders
CLAUDE_CODE_TODO_REMINDER_MODE=baseline claude # default behavior
Details
  • Env var takes precedence over the tengu_soft_slate_nudge feature flag
  • Feature flag values: "baseline" (default) or "off"
  • When set to "off", TODO nudges are suppressed
Evidence

New function reading the mode (search for "CLAUDE_CODE_TODO_REMINDER_MODE", "tengu_soft_slate_nudge")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

1 entry

Bug Fixesopen

#

Feature flag
tengu_agent_list_attach Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.178: not a boolean we can read

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.178. It isn't a statement about your account. What a flag value here can and cannot tell you

  • Bash prompt rule denials are now classified as safetyCheck type (rather than other) with classifierApprovable: false, ensuring auto-mode cannot override safety denials. (search for "Denied by Bash prompt rule")
  • Precomputed compact is now correctly gated: it can activate for non-user-query sources that have a precomputed swap available, fixing cases where compaction would not trigger when it should. (search for "precomputed compact: arm gated")
  • WIF (Workload Identity Federation) token refresh now checks sibling-process-rotated tokens before performing a new refresh grant, avoiding redundant token rotations in multi-process scenarios. (search for "wif: adopting sibling-rotated access token from credentials file")
  • Agent list attachment is no longer gated by tengu_agent_list_attach — the check that previously required the feature flag is removed, making agent context more consistently available. (search for "tengu_agent_list_attach" absent from new code)
  • Design OAuth credential error messages are improved: the expand_failed case now includes guidance to run /design-login as an alternative, rather than only suggesting /login. (search for "Could not add design scopes to the token", "or run /design-login to authorize design access separately")
1 entry

New Environment Variablesopen

#

| Variable | Purpose | |---|---| | CLAUDE_CODE_SESSION_ID | Identifies the current session (must start with cse_ or session_) | | CLAUDE_CODE_TODO_REMINDER_MODE | Set to off or baseline to control TODO nudges | | CLAUDE_CODE_FABLE_BRIDGE_DIALOG_TIMEOUT_MS | Timeout for the Fable usage-credits consent dialog (default 60000 ms) | | CLAUDE_CODE_DIAGNOSTICS_FILE | Path for writing diagnostics output | | CLAUDE_CODE_REPO_CHECKOUTS | Controls repository checkout behavior for remote agents | | CLAUDE_SESSION_INGRESS_TOKEN_FILE | Path to a session ingress token file | | CLAUDE_CODE_DESIGN_OAUTH_CLIENT_ID | Override the registered Design OAuth client ID | | CLAUDE_CODE_DISABLE_MEMORY_PERIODIC_RESYNC | Set to disable periodic memory store resyncs |

1 entry

Notesopen

#

The removal of TeamCreate and TeamDelete is a breaking change for any workflow that explicitly called those tools. Update to use the Agent tool's name parameter directly. The team_name field in TeammateIdle hook event payloads is deprecated and will be removed in a future release.

The Artifact tool's content model changed: files should no longer include <!DOCTYPE html>, <html>, <head>, or <body> tags — the tool wraps the content in a skeleton automatically. Existing artifact files that include these tags may render with duplicate structure.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.178. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

  • Agent teams: removed the TeamCreate and TeamDelete tools. With CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 set, every session now has one implicit team — spawn teammates directly with the Agent tool's name parameter, no setup step needed. The team_name parameter on the Agent tool is still accepted but ignored.
  • Added Tool(param:value) syntax for permission rules to match a tool's input parameters (with * wildcard), e.g. Agent(model:opus) to block Opus subagents
  • Skills in nested .claude/skills directories now load when working on files there; on a name clash, the nested skill appears as <dir>:<name> so both stay available
  • Nested .claude/ directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing .claude/workflows/
  • Improved auto mode: subagent spawns are now evaluated by the classifier before launch, closing a gap where a subagent could request a blocked action without review
  • Improved /doctor with consistent flat tree layout across all sections, clearer section status icons, and highlighted command names
  • Improved the skill listing truncation warning to show how many skill descriptions are affected
  • Changed the workflow prompt keyword to use a purple shimmer highlight and trigger only on explicit phrases like "run a workflow" or "workflow:", not on any mention of the word
  • Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy
  • /bug now requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title
  • Fixed a crash (out-of-memory) when the CLI inherits a stale websocket/OAuth file-descriptor environment variable from a parent process
  • Fixed Claude in Chrome silently failing to connect when the OAuth token belongs to a different account than the Claude Code login
  • Fixed nested .claude/skills skills with directory-qualified names being blocked by permission prompts in non-interactive runs
  • Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch
  • Fixed claude agents workers failing with 401 Invalid bearer token when the daemon was started from a shell with a custom API gateway via ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN
  • Fixed compaction not honoring --fallback-model: compaction now falls back to the configured fallback model chain on overload or model-availability errors
  • Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration
  • Fixed background sessions created with /bg or ←← after a turn finished showing "Working" forever in the agents list
  • Fixed Linux sandbox failing to start when .claude/skills or .claude/hooks is a symlink
  • Fixed CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 preventing fresh marketplace installs from cloning
  • Fixed MCP server-level specs (mcp__server, mcp__server__, mcp__) in subagent disallowedTools being silently ignored
  • Fixed vim mode undo: u now steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step
  • Fixed statusline links with custom URI schemes (e.g. vscode://) not opening when clicked in claude agents
  • [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task
System prompt

3 of 25 tool descriptions changed. The appended system-reminder blocks moved: 9 lines added.

Claude Code, interactive mode