anthropics / anthropics/claude-code

[BUG] Dispatch: desktop pane renders no messages — sessions-bridge drops every user echo ("empty inboundUserMessages FIFO")

オープン
#91,925 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
area:cowork area:desktop bug has repro platform:windows
主要言語
Python
スター
145k
フォーク
23.1k
PR マージ指標
PR 指標を取得中

説明

## Summary

Dispatch works end-to-end — messages sent from the mobile app reach the local agent, are processed, and are answered — but **the desktop Dispatch pane stays completely empty**. No user message and no assistant reply is ever painted. From the desktop it looks like Dispatch is dead; from the phone it looks like it is talking to something invisible.

The cause appears to be that `sessions-bridge` discards the user-message echo that would render the turn in the desktop UI, misclassifying it as a post-compact re-emit.

## Environment

| | |
|---|---|
| Claude Desktop | 1.44121.4.0 (x64, MSIX / Microsoft Store package) |
| Claude Code (bridged SDK) | 2.1.258 |
| OS | Windows 11 Pro 26100 |
| Plan | Max |
| Agent runtime | Cowork Linux VM (`CoworkVMService` running) |

UUIDs, session IDs and paths are redacted below as ``, ``, ``, ``.

## Steps to reproduce

1. Pair Dispatch between Claude Desktop (Windows) and the mobile app.
2. Send a message to the Dispatch thread from the phone.
3. Observe the phone receives a normal reply.
4. Observe the desktop Dispatch pane — it remains empty.

## Expected

The turn (user message + assistant reply) renders in the desktop Dispatch pane, matching what the phone shows.

## Actual

The desktop pane shows no messages at all. `main.log` logs a dropped echo once per message:

```
08:41:53 [info] [sessions-bridge] Received user message for session (2 chars)
08:41:54 [info] Starting local session local_ditto_ in
08:42:07 [info] [sessions-bridge] Dropping user echo with empty inboundUserMessages FIFO
for session (likely post-compact re-emit)
08:42:08 [info] [sessions-bridge] Query completed for session (pendingTurns=0, isError=false)
08:42:08 [info] [sessions-bridge] Session turn completed, keeping transport open for follow-ups
```

This repeats exactly once per message — three messages produced three drops (08:42:07, 08:44:54, 08:45:44), each immediately before a successful `Query completed (isError=false)`.

Note the "likely post-compact re-emit" attribution looks wrong here: this was a **freshly created session** (`Created session (trigger=start)` at 08:40:15), and the drop occurs on the very first message of that session. No compaction had taken place.

## Evidence that the messages are genuinely processed

The on-disk agent transcript contains all three turns, so only the UI render path is affected:

```
local-agent-mode-sessions///agent/local_ditto_/.claude/projects/.../.jsonl

[2026-09-03T22:42:04Z] user: hi
[2026-09-03T22:42:08Z] assistant: Sent.
[2026-09-03T22:44:53Z] user: where is this session?
[2026-09-03T22:45:01Z] assistant: Answered.
[2026-09-03T22:45:43Z] user: 1
[2026-09-03T22:45:49Z] assistant: Answered.
```

`bridge-state.json` likewise recorded all three message UUIDs in `processedMessageUuids`.

## Notes

- The bridge itself is healthy: `Environment registered`, `remote-tools-device authenticated`, `remote-control bridge_state: "connected"`.
- This is distinct from the "desktop appears offline" reports (#45937 and its duplicates) — here the desktop is genuinely online and serving turns; only the desktop's own rendering is broken.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by tracing the sessions-bridge handler that emits "Dropping user echo with empty inboundUserMessages FIFO" and compare its fresh-session path with the post-compact re-emit path. Reproduce with a newly created session and verify that both user and assistant turns render in the desktop Dispatch pane without dropping the user echo.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
backend, desktop
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
58/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。