anthropics / anthropics/claude-code

[FEATURE] Debounce consecutive short messages into one turn (chat-style input in claude.ai/code and mobile)

未关闭
#92,676 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:claude-code-web area:ui enhancement platform:web
主要语言
Python
星标
145k
派生
23.1k
PR 合并指标
PR 指标待抓取

描述

### Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)

### Problem Statement
People who chat from a phone write the way they do on WhatsApp: one thought split across several short bubbles sent a few seconds apart. Claude Code treats every bubble as a complete turn and starts a full reply to each one. A fragment like "stay here and" gets answered on its own, the next fragment "tell me as it goes" gets a second, unrelated answer, and the conversation derails. It also burns a full model run on every fragment, so it is both worse and more expensive than waiting.

Related but distinct from #92482 (quote-reply): that one is about pointing at an earlier message; this one is about how consecutive new messages are grouped.

### Proposed Solution
A short input debounce in claude.ai/code and the mobile app (and optionally in Remote Control sessions generally):
- when a new message arrives within a small window after the previous one (for example 2 to 3 seconds, configurable), hold the turn and merge the messages into one user turn, in order;
- if the composer shows the user is still typing, keep holding until they stop or until a hard cap (for example 10 seconds) is reached;
- render the merged bubbles as they were sent, but pass them to the model as one turn;
- a per-session setting to turn it off for users who want strict one-message-one-reply behavior.
The existing behavior in Remote Control (prompts sent mid-turn are queued and delivered together) already does something close to this when a reply is in flight; the request is to apply the same grouping before a reply starts.

### Alternative Solutions
- Writing the whole thought in one bubble (works, but it is not how people type on a phone).
- Teaching the model to treat a short follow-up as a continuation of the previous message (helps, but it cannot recover once a separate reply has already been generated).
- Every mainstream chat client (WhatsApp, Telegram, Slack) lets the recipient answer a burst of messages as one unit; here the recipient is forced to answer each bubble.

### Priority
Medium - Would be very helpful

### Feature Category
Other (claude.ai/code web client and mobile app; Remote Control)

### Use Case Example
1. Long session on the desktop app, continued from the phone through Remote Control.
2. I type "ok, I think I get it, let's see how it goes" and send, then two seconds later "stay here and tell me as we go".
3. Today: the first bubble gets a closing reply, the second gets "what do you want me to tell you?", because it was read as a new request.
4. With a debounce: both bubbles reach the model as one turn and get one answer that reads them together.

### Additional Context
Claude Code 2.1.241, desktop app (Code tab) plus Remote Control from the mobile app. Observed repeatedly in a conversational (non-coding) session, where fragmented input is the norm.

贡献指南

这个仓库没有索引到贡献指南

调研方向

Start by tracing message delivery in claude.ai/code, the mobile app, and Remote Control, focusing on pre-reply grouping and the existing mid-turn queueing behavior. Confirm how debounce timing, typing detection, a hard cap, merged model turns, preserved bubble rendering, and a per-session opt-out would fit; done means consecutive messages receive one reply without changing their displayed bubbles.

由索引模型根据 Issue 内容生成。

评估

领域
backend, frontend, mobile
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。