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 of v2.1.234 Home All releases olderv2.1.233 v2.1.235newer
Claude Code v2.1.234

Live Artifact comment monitors carry across backgrounding and exit

You'll notice
Useful3 Signal3
Artifacts

Artifact comment watchers now survive backgrounding and exit, and tell you when one couldn't be resumed.

Feature flag
tengu_bg_leftarrow_inprocess 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.234: off

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

What

Monitors that watch for comments on your Artifacts are now handed off when a session is backgrounded or exits mid-flight, so the session that takes over resumes watching instead of silently dropping the work. The confirmation dialog counts parked monitors separately from the other work being carried over and tells you that automatic replies keep running in the background session, with a summary waiting when you return. When a monitor cannot be resumed, the new session says which one and why.

Details
  • Handoff runs by default and is turned off entirely by the CLAUDE_DISABLE_ADOPT environment variable; the background-exit path is skipped separately by CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF, which forces the count of drainable monitors to zero.
  • The handoff record and the exit-state snapshot each carry a list of live Artifact entries holding the artifact slug, title, write time, and the number of unattended replies that monitor has already sent.
  • Exit accounting separates monitors from ordinary tasks and splits them into drainable and carried, under a new monitor_ws kind; separate holders track watches that were never resumed and those left over from an exit retry.
  • Entries older than the freshness window are individually marked stale and counted as frame_live_stale when the new session claims the handoff, and a claim that carried permission to keep auto-replying loses that permission if every entry in it was stale, recorded as carried_consent_stale_dropped.
  • Consent entries for live artifacts are merged across job records up to a cap, and hitting the cap is reported as merged_consent_capped.
  • A monitor that does not come back produces a specific notice: backgrounded too long (stale_handoff), comments unavailable (comments_unavailable), automatic replies turned off, or a monitor you had already stopped (stop_latched, shown as a notice rather than a warning).
  • Failure paths are recorded on artifact_live_subscribe as consent_carry_write_failed, consent_carry_checkpoint_failed and adopt_spawn_failed.
  • The handoff only runs when there are carried artifact entries, and several branches depend on whether the session is itself a background session.
  • The carry-over count no longer consults the tengu_bg_leftarrow_inprocess gate, so it is computed the same way for everyone.
Evidence

Artifact comment monitor for ${e} didn't resume: automatic replies are turned off in this session., drainableMonitors, frameLiveTaskIds, carried_consent_stale_dropped, continue in the background session. You'll see a summary of the replies when you return.

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.

See this entry in the whole of v2.1.234 →