{"version":"2.1.221","anchor":"artifact-comment-auto-reply-subsystem","canonical_anchor":"artifact-comment-auto-reply-subsystem","heading":"Artifact comment auto-reply subsystem","tier":"soon","area":"Artifacts","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/artifact-comment-auto-reply-subsystem","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### Artifact comment auto-reply subsystem\n\nClaude can watch artifact comment threads and post replies or edits, off unless you set the env var.\n\n**What**\n\nA subsystem was added that watches comment threads on artifacts Claude published and, once a human activates Claude on a thread and posts, composes and posts a reply, optionally editing and republishing the artifact. It is switched off in this build unless explicitly enabled.\n\n**Details**\n\n- Gate order: the environment variable `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` is read first, otherwise the gate `tengu_sorrel_trellis`, whose in-source fallback is false, with the real value coming from remote config.\n- It additionally requires the Artifact tool schema to expose `thread_id`. A session-level kill switch permanently disables it once tripped.\n- The Artifact tool gains `comments` and `reply` actions, added to the action enum only when comment verbs are wired, and treated as read-only and concurrency-safe.\n- Thread scanning uses coalesced and debounced rescans, with per-thread state covering seen comments, its own reply IDs, a breaker, and an hourly cap on turns per artifact. A permission probe runs before acting.\n- Live-watch registrations carry `autoReactWiring`; background tasks carry `autoReactArmed` and `autoReactSlug`; task-notification origins can come from `artifact-auto-react`.\n- When a thread carries edit capability a second composer runs, required to emit one JSON decision object, either `{\"action\":\"reply\",...}` or an edit carrying the complete new artifact source. The edit is written to a temp file, published through the Artifact tool, attribution is verified with a version echo, and only then is the summary reply posted.\n- A catalogue of user-facing refusal replies covers pinned versions, inactive edit grants, rate limits, size guards, transient errors and supersession, each stating whether the artifact changed.\n- Telemetry is emitted under the event name `artifact_comments_autoreact`, with outcomes including `read_failed`, `breaker_open`, `stood_down_answered`, `denied_by_rule` and `hourly_cap`.\n\n**Evidence**\n\n`CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT`, `tengu_sorrel_trellis`, `I could not apply the requested edit: the artifact is pinned to a fixed version`\n\n- Flag `tengu_sorrel_trellis`: Off by default, switched on for this account (read for one account on one subscription tier against v2.1.221; this account: on, anonymous baseline: on, compiled default: off) 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.\n- Area: Artifacts\n- Names: `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT`\n- Tier: Nothing to try yet\n- Useful: 4\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}