[Bug]: Artifact watches are refused in every Claude thread: "Watch <url>" is treated as a print session

Aperta
#35,127 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start in the apps/server area, then trace how Claude session entrypoints are identified and how ArtifactComments decides whether a session can hold an artifact watch. Compare the current "t3-code" entrypoint with the reported working "sdk-ts" behavior and inspect the change from commit ddfc4a92ed. Done when a T3 Code Claude thread can arm the watch and comments sent to Claude reach that thread.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/server

Steps to reproduce

Prerequisites: Claude Code signed in with a claude.ai account, and "env": {"CLAUDE_CODE_ARTIFACT": "1"} in Claude's settings.json so the Artifact tools load.

  1. In a T3 Code Claude thread, send: Use your Artifact tool to publish a private page titled "Sample page" with the two lines "Sample page" and "Line two."
  2. In the same thread, send Watch <the link of that artifact>.
  3. Read the result of the ArtifactComments call (expand the tool row), or ask Claude whether comments sent to it on that page will reach the thread.
Expected behavior

The watch connects, as in a terminal claude session. In T3 Code builds from before the entrypoint identifier changed, Claude Code accepts the watch. One such build that also marks composer messages as typed by a person (commit 6a275fb45a) gives, with the same Claude Code version:

Watching <artifact-url> — the watch is armed (`status` shows whether it has connected yet); this session keeps track of new versions published elsewhere; a new version starts no turn and sends no notification

followed by "A comment on it sent to Claude reaches this session (its status row says auto-replies armed)". A comment with "Send to Claude" on that page then wakes the thread, and Claude handles and resolves it.

Actual behavior

On current main the watch is refused. The ArtifactComments result is:

Not watching <artifact-url> — only a main-loop session (interactive, SDK, or background) holds the watch, not a subagent, teammate, or print session.

The publish result in step 1 already says:

Live subscription: none — this is a print (-p), cloud, subagent, or teammate session, which does not keep track of new versions of this artifact published elsewhere (only the main conversation of a local interactive, background, or TypeScript/Python Agent SDK session does). Expected; not an error.

So no artifact watch can connect in any T3 Code Claude thread, and "Send to Claude" on a comment never reaches the thread. Claude Code's session transcript records the thread's prompts with "entrypoint": "t3-code". The build from before the change records "entrypoint": "sdk-ts" for the same steps.

This started when the entrypoint identifier changed (commit ddfc4a92ed, 2026-11-01).

Impact

Major degradation or frequent failure

Version or commit

main b68aedfdb7 (2026-11-12); the build where the watch arms is 6a275fb45a. Claude Code 2.1.322.

Environment

Linux (Ubuntu 26.04), T3 Code desktop app and web client built from source, Claude Code 2.1.322 signed in with a claude.ai subscription, Claude Haiku 5.5.

Logs or stack traces
main b68aedfdb7:   entrypoint "t3-code"  ->  ArtifactComments watch: "Not watching <artifact-url> — only a main-loop session (interactive, SDK, or background) holds the watch, not a subagent, teammate, or print session."
6a275fb45a:        entrypoint "sdk-ts"   ->  ArtifactComments watch: "Watching <artifact-url> — the watch is armed ..."
Workaround

None found. Watching the artifact from a terminal claude session works.

Lingua principale
TypeScript
Stelle
24.8k
Fork
6.4k
Merge medio
4h 16m
PR unite (30g)
352

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pingdotgg/t3code

Tutte le issue di pingdotgg/t3code

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.