Repository navigation
[Bug]: Claude Code's artifact live-updates watcher is listed in the Agents panel as a working agent with a model and effort #13978
Description
Activity
- addedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 27, 2026 Triage
Triaged against
main@de251fc. Confirmed. Not a duplicate of #10375, and not fixed on current main —0.0.43-nightly.20260926.2282is not behind a fix.What’s going on
Publishing a claude.ai artifact auto-arms a background
monitor_wstask (Claude Code’s Artifact tool; a Monitor-tool websocket watch, description likelive updates for artifact …). It is not a subagent. The Claude Agent SDK listsmonitor_wsnext tomonitor_mcpas work that must not defer the turn (test_shell_and_monitor_tasks_never_defer_the_closeintests/test_query.py). It runs no model and reports no usage.MONITOR_TASK_TYPESinpackages/contracts/src/providerRuntime.tsismonitor,monitor_mcp,local_bash, andshell.monitor_wsis missing.classifyTaskAgentKindis a denylist that treats an unknowntaskTypeas an agent, so ingestion stampsagentKind: "agent".That stamp is what every surface trusts:
foldSubagentActivitiesonly skipsagentKind !== "agent", so the watcher joins the Agents roster.task.startedmarks itrunning, which the panel labels “Working” and counts in “N working”.- On
task_started, the Claude adapter copies the session model and effort when the launching tool has no override. That is theopus-5-5 · highchip. With notypedUsage, the row falls back to— tok. - The same set drives sidebar liveness.
monitor_wsgoes in the agents bucket, not monitors, so the thread pill stays pulsing “Working” (with the elapsed duration) instead of the static “Monitoring” eye, and the composer banner says “1 agent working” instead of “Monitoring”.
Not #10375
#10375 is the opposite mismatch: a foreground
local_bashtask is alreadybackgroundand correctly kept out of the Agents panel, but the timeline still paints a Bot icon. Here a watch-loop type the denylist does not know is shown as a real agent.Suggested fix
Add
"monitor_ws"toMONITOR_TASK_TYPESand cover it in theclassifyTaskAgentKindtests. That set is shared by the ingestion stamp, sidebar liveness, and the client fallback, so the watcher drops out of the Agents roster the same waymonitor/monitor_mcpalready do, and a thread whose only live work is that watcher reads as Monitoring. Do not add a special Agents-panel row; watch loops are kept off that surface on purpose.in_process_teammatesits besidemonitor_wsin the SDK’s “does not defer stdin” list. That only means it is not turn-deferring agent work — leave it out of the monitor set unless a separate report shows it should be background.Rows already stored with
agentKind: "agent"stay that way, and roster membership is sticky pertaskId, so a thread that already ingested the watcher keeps it until a newtask.startedis written after the fix.Reacted by Marcin Szałek- addedvia-triageFiled through npx t3 triageFiled through npx t3 triageand removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 27, 2026
Before submitting
Area
apps/web
Steps to reproduce
live updates for artifact https://claude.ai/artifact/<id>, amonitor_wstask).Expected behavior
Watchers are shown as what they are, for example a "Watching artifact" row without model, effort, or a working spinner, and they are not counted as working agents. Or they are kept out of the Agents panel, as #10375 notes for other background tasks.
Actual behavior
The Agents panel lists the watcher next to real subagents, with the session's model and effort (
opus-5-5 · high), a spinner and "Working", and it adds to the "1 working" counter. It is not an agent: it runs no model, uses no tokens (— tok), and can stay armed for hours. Seeing "working for 1h 34m" in the Agents panel, I took it for a stuck subagent.Related: #10375, where foreground Bash tasks get the subagent icon although the Agents panel excludes them.
Impact
Minor bug or occasional failure
Version or commit
0.0.43-nightly.20260926.2282
Environment
Desktop app on Linux (NixOS, Wayland, niri); Claude Code 2.1.283, Opus 5.5
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
No response