bug: 手机端无法作答 AskUserQuestion 选择卡,会话被静默阻塞、必须开电脑救场
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
### 环境 / Environment
- 客户端:Cindy **手机端**,远程控制一台被控电脑上的 Claude Code 会话
- 被控端引擎:Claude Code `2.1.259`(`--resume` 恢复的长会话)
- 相关:#2920(移动端体验与多端任务连续性)
### 现象 / Problem
被控电脑上的 Claude Code 会话调用内置工具 `AskUserQuestion` 时,会弹出一张带 2–4 个选项的**选择卡**。
手机端**无法作答**这张卡;而它是**阻塞式**的——不点选,会话就停在那里等。
于是每一次「要不要这么做」,代价都是:**开电脑 → 远程连回来 → 找到那张卡 → 点一下**。
用手机推进任务时,这等于手机端根本推不动。
### 实测证据 / Evidence
在被控项目自己的会话转录(`~/.claude/projects/<项目>/*.jsonl`)里统计近 3 个会话:
| 工具 | 调用次数 |
|---|---:|
| `AskUserQuestion` | **27**(单个会话最多 **17**) |
| `ExitPlanMode` | 1 |
| `EnterPlanMode` | 1 |
即「手机上点不了的那个询问」主体就是 `AskUserQuestion`,不是计划审批。
典型提问(**每条都是带选项的卡**,不是普通文本问题):
- 「8842900 的 12 张图清不掉,怎么走?」 → 3 个选项
- 「后台 4 件:8824328 已公开……删哪些?」 → 3 个选项
- 「`03_rear` 的亮带根因是……往哪修?」 → 4 个选项
### 期望 / Expected
下面任一种即可解决,第二种成本更低:
1. **能作答**:手机端把这张卡渲染成可点选的交互,选择回传给会话;
2. **不阻塞**:手机端若无法作答,给一个明确出口(例如「转为文本提问」或「稍后在被控端作答」),
不要静默把会话挂住——现在的问题是**连「这里需要你」都看不出来**。
### 当前的规避(仅单项目,且是降级)/ Workaround
被控项目已在 `.claude/settings.json` 里:
```json
{ "permissions": { "deny": ["AskUserQuestion"] } }
```
并加了规则要求模型改用**正文纯文本提问**。这能挡住卡,但**损失了卡片形态**(多选、推荐项标注、
选项里的补充信息)——是降级,不是解法。根治仍在客户端。
### 为什么值得优先 / Why it matters
移动端 + 多端任务连续性是 Cindy 的核心卖点(见 #2920)。而这个工具的阻塞性和「手机端不可答」
叠加后,会把用户从手机端**直接逼回远程桌面**——恰好抵消了那个卖点。
Contributor guide
Research direction
Start by locating the mobile client path that receives Claude Code AskUserQuestion events, then compare it with handling for ordinary text and the mentioned ExitPlanMode flow. The workaround in .claude/settings.json shows the current fallback. Done means the choice card can be answered on mobile, or an explicit non-blocking fallback tells the user how to continue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100