makecindy / makecindy/cindy

[Bug] 桌面端与移动端会话运行状态文案不一致

Open
#1,154 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

## 问题描述 / What happened

同一会话执行长回复时,桌面端与移动端展示的运行状态文案不一致:

- macOS 桌面端显示「正在生成…」
- iOS 移动端显示「思考中…」

两端都在表达会话仍在运行,但用户难以判断这是同一状态的不同呈现,还是模型进入了不同阶段。

## 环境 / Environment

- Cindy 版本或 commit / version or commit:待补充
- 平台与版本 / platform & OS version:macOS、iOS,具体版本待补充
- 安装方式 / install method:待补充

## 复现步骤 / Steps to reproduce

1. 在同一 Cindy 会话中发送一个会触发较长回复的提示词。
2. 在 macOS 桌面端观察输入框上方的运行状态。
3. 在 iOS 端观察同一会话的运行状态。
4. 对比两端文案。

## 实际行为

- 桌面端显示「正在生成…」。
- 移动端显示「思考中…」。
- 两端缺少统一的状态语义与文案策略。

## 预期行为

同一会话、同一运行阶段在桌面端与移动端应使用一致且可理解的状态文案;若确实代表不同阶段,应明确约定状态映射与切换条件,避免造成误解。

## 日志与截图 / Logs & screenshots

macOS 桌面端显示「正在生成…」:

![macOS 桌面端显示正在生成](https://github.com/user-attachments/assets/f7c66ae1-90fe-4a4a-ba61-2b50d6e20979)

iOS 移动端显示「思考中…」:

![iOS 移动端显示思考中](https://github.com/user-attachments/assets/830ff30b-7b6b-4b4b-861c-e8a5fe218a79)

## 源码定位

- Desktop 的运行状态栏消费 `agentStatus.status`;当 Agent 上报 `Generating` 时,经本地化后显示「正在生成…」。
- `apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx`
- `apps/desktop/src/renderer/features/cc-agent/lib/localizeAgentStatus.ts`
- `apps/desktop/src/renderer/i18n/locales/zh-CN/common.json`
- Mobile 的 thinking 卡独立依据流式 `thinking` 消息与计时显示「思考中 {{elapsed}}」。
- `apps/mobile/src/session/MessageRenderer.tsx`
- `apps/mobile/src/i18n/locales/zh-CN/message.json`
- Mobile 已保存来自 `maker:event/status` 的会话运行状态与原始 `status`,但消息区的 thinking 卡未消费该状态。
- `apps/mobile/src/session/remoteSessionStore.ts`

## 建议修复方向

先确定跨端统一的运行状态文案规范,再让桌面状态栏和移动端会话状态消费同一映射:

- 无法区分具体阶段时,统一显示「正在生成…」或「思考中…」。
- 可以区分时,明确 `Thinking`、`Generating`、工具调用等状态分别对应的跨端文案和优先级。
- 保留移动端思考卡的时长信息,但其标题应与会话运行状态策略一致。
- 补充 Desktop/Mobile 状态映射回归测试。

## 验收标准

- [ ] 同一会话的同一运行阶段在桌面端与移动端文案一致。
- [ ] 有明确的阶段差异时,两端均按统一映射展示。
- [ ] 移动端思考卡的时长与展开内容不受影响。
- [ ] 覆盖 `Thinking`、`Generating`、工具执行和完成态的跨端回归测试。

Contributor guide

Open the contributing guide

Research direction

Read the desktop status consumer in apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx and lib/localizeAgentStatus.ts, then compare the mobile flow in apps/mobile/src/session/MessageRenderer.tsx and remoteSessionStore.ts. Check the zh-CN locale files and existing status handling first. Done means Thinking, Generating, tool execution, and completion states follow one documented cross-platform mapping while the mobile thinking duration and content remain intact, with regression coverage added for both clients.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop, frontend, localization, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.