Claude Code v2.1.272

18 entries read v2.1.271 → v2.1.272 Markdown Unofficial

This build adds a new AppifactRepl tool that runs a full JavaScript program against an Artifact's data in one shot instead of one call at a time, including a claude.see() helper that lets scripts attach up to 4 images and text notes to a tool result, and an artifact_call protocol so scripts can issue actions like get, set, upload, and publish. None of it is reachable yet: it only activates for the remote_cowork entry point behind the tengu_buzzing_lightning flag, its master switch lives outside this bundle, it only runs unsandboxed, and it does not work on Windows. Supporting plumbing also landed quietly, including a dedicated permission check for disabling the REPL tool and a routing hint that appears in Artifact read output only when the REPL tool is present, alongside a second feature-flagged tool referenced as isPewterOwlTool sitting next to the existing "Brief" tool.

Two things are usable today. A new MCP command called 'xaa' handles IDP login, and the Artifact quickstart gains a 'start kit' mode that saves type and design-system files to disk as a local scratchpad instead of reading them in one at a time.

This release also fixes a bug where bridge QR-code text output could be built from stale, unresolved data, correcting what got rendered in that display path.

Reading as
Show only
Tier
Pick an entry · j / k steps through · rest on a row to peek
3 entries

What probably matters to you

Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.

In dev
Nothing to try yet
Useful5 Signal5
Group of 5 Artifact REPL Notable unclear

New AppifactRepl tool for building artifacts via a JavaScript REPL#

A new AppifactRepl tool runs JavaScript against an Artifact's data (a REPL, or read-eval-print loop) but is currently gated off for most users

Unclear Whether isAppifactReplToolEnabled() defaults to true or false cannot be determined, since its code lives outside this bundle.

Details 0 0 Feedback

What

  • A new tool called AppifactRepl runs a full Node.js REPL (a read-eval-print loop, meaning it executes a whole JavaScript program and returns the result) against an Artifact's document store, via claude.use("db"), claude.use("files"), and claude.use("assets"), instead of making one Artifact store call at a time. It also supports claude.see() for attaching images or text to the tool's result, and can run a skill's own SDK script instead of the built-in one.
  • Internally it spawns a child process (running node scripts/appifact_sdk.js --repl -) in a sandbox, and its output is scrubbed before being returned.
  • The tool is wired into the permission system, the always-allowed tool list, tool-name resolution caching, and file-read tracking. A permission-check helper adds a special case for it: it is treated as disabled if there is a matching deny rule, or a permission rule whose content is only whitespace or asterisks.
  • Writes made through AppifactRepl do not trigger the automatic artifact-opening behavior that normal file writes do.
  • The tool is gated behind multiple conditions: it only activates when the app is launched with the remote_cowork entry point, an internal flag (tengu_buzzing_lightning, defaulting to false) is enabled, and a further enablement check (isAppifactReplToolEnabled()) whose implementation lives outside the shipped bundle and can't be fully inspected from source.

Why

This is groundwork for a more powerful way to build artifacts step by step with real code instead of individual tool calls, but it is not yet available to regular users: it's gated behind a server-side flag and only activates in the remote_cowork context, so most users won't see or be able to use it yet.

Related

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

+New
Use it now
Useful4 Signal4
MCP Notable unclear

New MCP 'xaa' IDP login command#

A new MCP command, 'xaa', references an IDP login module

Unclear It's unclear what the xaa command actually does or when it's exposed to users, since only the reference to the login module was found.

Details 0 0 Feedback
What

A new CLI command function is wired to a command named xaa, and it references a module for IDP (identity provider) login related to MCP (Model Context Protocol).

Why

This points to a new or upcoming way to log in to an MCP server through an identity provider, though the finding doesn't show what the command does when run.

Improved
You'll notice
Useful4 Signal3
Artifact Quickstart

Quickstart 'start kit': saving Artifact type/design-system files to a local scratchpad#

Artifact quickstart gains a 'start kit' mode that saves type and design-system files to disk instead of reading them one by one

Details 0 0 Feedback
What

The Artifact quickstart flow has a new "start kit" mode. Instead of the model reading an Artifact type's and design system's files through repeated Artifact tool calls, this mode saves those files to a local scratchpad directory on disk and tells the model to read them all at once with a single tail -n +1 command in the Bash tool.

The mode enforces caps, refusing when there are "more than" a set number of files or when the total size goes "over the 8 MB total" limit.

Why

Reading a batch of files from disk in one Bash call is faster and cheaper than making many separate Artifact tool reads, speeding up the start of an Artifact quickstart.

Related

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

Were these the right ones to put at the top? 0 answered
Below the fold

Everything else

Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

1 entry

Bug Fixesopen

Fixed
You'll notice
Useful2 Signal2
Elsewhere

Bug fix: bridge/QR output split used stale variable#

Fixed a bug where bridge QR-code text output could be built from stale, unresolved data

Details 0 0 Feedback
What

The routine that renders a bridge connection's QR code as text (using a UTF-8, low-error-correction QR encoder) was splitting the wrong variable into lines: it used the value captured before an asynchronous operation completed, instead of that operation's actual resolved result. This is now fixed.

Why

The previous behavior could have produced stale or empty QR-code text output instead of the correct, up-to-date code.

3 entries

In Developmentopen

In dev
Nothing to try yet
Useful3 Signal3
Artifact REPL

claude.see() lets REPL scripts attach images/text to the tool result#

claude.see() lets AppifactRepl scripts attach up to 4 images and text notes to a tool result

Details 0 0 Feedback
What

Scripts running inside the new AppifactRepl tool (see related entries) can call claude.see({text, images}) to attach images and text notes to the tool's result. Up to 4 images are allowed per result, and only PNG or JPEG images are accepted; anything larger or in another format is refused, with messages such as "at most 4 images per result" and "not a PNG or JPEG".

Why

This lets a REPL script show visual output, such as a rendered preview, directly alongside its result instead of only returning text.

Related

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

In dev
Nothing to try yet
Useful1 Signal3
Tool Gating unclear

Second gated tool alongside "Brief": isPewterOwlTool#

A second feature-flagged tool, referenced as isPewterOwlTool, sits alongside the existing Brief tool's flag

Unclear The finding only shows a name reference; what isPewterOwlTool controls or what the tool does is not established.

Details 0 0 Feedback
What

The tool-name resolver now imports isPewterOwlTool from the same dynamically-loaded chunk that already supplies the Brief tool's name, the send-user-file tool's name, and the Brief tool's own enabled check (isBriefEnabled). This suggests a second tool, alongside Brief, that is controlled by its own feature flag.

Why

This points to another tool being prepared for gradual rollout in the same way the Brief tool was, though what this tool actually does isn't shown here.

In dev
Nothing to try yet
Useful1 Signal2
Artifact REPL

REPL runs unsandboxed only, and is unsupported on Windows#

AppifactRepl currently only runs unsandboxed and does not work on Windows

Details 0 0 Feedback
What

The process that starts an AppifactRepl session refuses to run on Windows. It also has no way to run inside a sandbox (an isolated execution environment) yet: it only runs commands unsandboxed, and if unsandboxed commands are disallowed for the session, it refuses to start at all.

Why

Anyone on Windows, or in a session where only sandboxed commands are permitted, won't be able to use AppifactRepl for now.

Related

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

7 entries

Internal Changesopen

·Internal
Under the hood
Useful2 Signal3
Artifact REPL

artifact_call frame: verbs a script can issue to the Artifact tool#

AppifactRepl scripts can issue Artifact tool actions like get, set, upload, and publish over a JSON protocol

Details 0 0 Feedback
What

A new internal protocol lets scripts running inside AppifactRepl (see the related entries on this tool) issue Artifact tool actions directly: reading or querying data (get/list/query), writing it (set/update/delete/batch), working with files (read_file/read_files/list_files), handling assets (upload_asset/read_asset), and publishing or opening the artifact. Messages are exchanged as one JSON object per line.

Each action is checked against the session's permissions individually, and can be refused, for example, if the Artifact tool's database actions or asset actions are turned off for that session.

Why

This lets a single script drive the full range of Artifact operations while still respecting the same per-action permission boundaries that apply outside the REPL.

Related

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

·Internal
Under the hood
Useful2 Signal3
Artifact REPL

Artifact 'read' output now appends REPL-tool routing hint, gated on REPL tool presence#

Artifact read results now show a REPL routing hint only when the REPL tool is available, plus a per-type 'two steps' note

Details 0 0 Feedback
What

When the Artifact tool renders the result of a read, it appends extra text explaining how to proceed. This routing text is now produced by a new function, fxn(), which first checks whether the Artifact REPL tool is present and returns nothing if it isn't, instead of always producing the text as before.

A second new helper, hur(), looks up a per-Artifact-type "two steps" routing note keyed by the file's frontmatter name, and reports whether the referenced files were kept as files. This feeds into flags used elsewhere to track how a read was handled.

Why

This keeps the REPL-related guidance from appearing when the Artifact REPL tool (see related entries on AppifactRepl) isn't actually available in the session, and lets certain Artifact types show more specific two-step instructions after a read.

Related

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

·Internal
Under the hood
Useful2 Signal2
Elsewhere

New background-runner epoch/retry constants for session failure handling#

New retry timing and stale-session detection added to background session failure reporting

Details 0 0 Feedback
What

The background runner's failure-reporting path, covering runner:session and runner:stuck logging, gained new timing constants (500ms, 1000ms, 2000ms, and 3000ms) and an abort helper. These are used when retrying a failed attempt to post a failure result, and to detect when another runner has already taken over a session, logged as a "stale epoch" rejection.

Why

This makes background session failure handling more robust: retries are now timed explicitly, and a runner can tell when it's no longer the current owner of a session instead of continuing to report against it.

·Internal
Under the hood
Useful2 Signal1
Elsewhere

Quickstart hint gains a "saved line" override for artifact publishing#

Quickstart reminder text can now be overridden by a saved 'after quickstart' line

Details 0 0 Feedback
What

When creating a typed Artifact after a quickstart call, Claude Code shows a reminder that quickstart already listed the available design systems in the conversation. The function that builds that reminder now first checks an internal helper, afterQuickstartSavedLine, for a saved or customized version of the line, and only falls back to the generic wording if none is found.

Why

This allows the reminder text shown after a quickstart to be customized or overridden rather than always being the same generic message.

·Internal
Under the hood
Useful1 Signal1
Elsewhere

Update-check output switched from one console-output helper to another#

Update-check messages now printed through a different internal output helper

Details 0 0 Feedback
What

In the code that checks for and reports Claude Code updates, several messages, including the current version line, "Update available" notices, and "Claude Code is up to date" messages, now go through an internal output helper called lr instead of the previously used ar. The messages themselves are unchanged.

Why

This is an internal refactor with no expected change to what is shown when Claude Code checks for updates.

·Internal
Under the hood
Useful1 Signal0
Elsewhere

Version/build metadata bump only (repeated across bundle chunks)#

Internal version metadata bumped from 2.1.271 to 2.1.272 across the bundle

Details 0 0 Feedback
What

The embedded VERSION, BUILD_TIME, and GIT_SHA constants were updated from 2.1.271 to 2.1.272 in many places throughout the bundled code, where the same metadata block is duplicated across chunks.

Why

This is routine release bookkeeping with no behavior change on its own.

Related

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

·Internal
Under the hood
Useful1 Signal0
Elsewhere

Minor rename: xu() -> Ou() in stale background-process warning#

Internal helper rename in the stale background-binary warning, no behavior change

Details 0 0 Feedback
What

A warning message shown when a background process is using a stale binary now has both of its code paths call the same internal helper function, Ou(), where one of them previously called a different helper, xu().

Why

This is an internal cleanup with no visible effect on the warning shown to users.

Related

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

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.272. 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.

Of these 1 bullets, 0 name something an entry on this page also names, 0 name something no entry here does, and 1 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

  • Bug fixes and reliability improvements Nothing to match on
System prompt

No change to the system prompt since v2.1.271.

Claude Code, interactive mode

No prompt capture for v2.1.272, so this release's prompt surface is unknown.

Documentation

What the docs did around this release

480 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Every time above is when this site's poller recorded the change, which is up to half an hour after the edit on an ordinary read and up to a day after it on a full sweep. Upstream's own edit time is used instead wherever a capture carries one. None of these do.