Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 156 additions & 0 deletions docs/comparison/qwen-code-improvement-report-p3.md
Original file line number Diff line number Diff line change
Expand Up @@ -629,3 +629,159 @@ Claude Code 的解决方案:官方 marketplace——支持插件发布、搜
**意义**:终端状态是用户工作环境的一部分——Agent 不应破坏它。
**缺失后果**:异常退出 → 终端状态残留 → 用户需手动 `reset`。
**改进收益**:状态备份/恢复 = 无论如何退出,终端始终健康。

---

<a id="item-24"></a>

### 24. CustomSelect 自定义下拉选择(P3)

**做什么**:Claude Code 自定义下拉选择组件——支持搜索、键盘导航、多选:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `components/CustomSelect/select.tsx` | ~400 | 主组件 |
| `components/CustomSelect/SelectMulti.tsx` | ~300 | 多选组件 |
| `components/CustomSelect/use-select-state.ts` | ~300 | 状态管理 |

**总规模**:~3019 行

**Qwen Code 现状**:Qwen Code 使用 Ink 标准 `<Select>`——不支持搜索、多选。

**Qwen Code 修改方向**:新建 `components/CustomSelect/` 目录,实现搜索过滤、键盘导航、多选。

**实现成本评估**:
- 涉及文件:~10 个
- 新增代码:~1500 行
- 开发周期:~8 天(1 人)

---

<a id="item-25"></a>

### 25. Session Backgrounding Ctrl+B 会话后台化(P3)

**做什么**:Claude Code 支持 **Ctrl+B** 快捷键将当前会话后台化——转为后台任务继续执行,释放前台与用户交互:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `hooks/useSessionBackgrounding.ts` | 158 | 后台化/前台化切换 |

**Qwen Code 现状**:Qwen Code 有 `--background` 启动后台任务,但**没有交互式 Ctrl+B 后台化**。

**Qwen Code 修改方向**:新建 `hooks/useSessionBackgrounding.ts`,添加 Ctrl+B 快捷键绑定。

**实现成本评估**:
- 涉及文件:~2 个
- 新增代码:~120 行
- 开发周期:~1 天(1 人)

---

<a id="item-26"></a>

### 26. 启动性能分析器 startupProfiler(P3)

**做什么**:Claude Code 内置启动性能分析器——测量各初始化阶段的耗时和内存占用:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `utils/startupProfiler.ts` | 194 | checkpoint 记录、内存快照 |
| `utils/profilerBase.ts` | ~100 | 基础分析函数 |

**总规模**:~294 行

**Qwen Code 现状**:Qwen Code **完全没有启动性能分析器**。

**Qwen Code 修改方向**:新建 `utils/startupProfiler.ts`,在启动关键点插入 `profileCheckpoint()` 调用。

**实现成本评估**:
- 涉及文件:~2 个
- 新增代码:~150 行
- 开发周期:~1 天(1 人)

---

<a id="item-27"></a>

### 27. Hook 文件变更监听 fileChangedWatcher(P3)

**做什么**:Claude Code 实现了 Hook 文件的实时监听——修改 hook 配置文件时自动重新加载:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `utils/hooks/fileChangedWatcher.ts` | 191 | Hook 文件监听——chokidar + 防抖 |

**Qwen Code 现状**:Qwen Code 有 chokidar 用于 skill 文件监听,但**没有 hook 文件变更监听**。

**Qwen Code 修改方向**:新建 `utils/hooks/fileChangedWatcher.ts`,集成到 hook 加载流程。

**实现成本评估**:
- 涉及文件:~2 个
- 新增代码:~150 行
- 开发周期:~1 天(1 人)

---

<a id="item-28"></a>

### 28. 完整快捷键系统(P3)

**做什么**:Claude Code 的完整快捷键系统——解析、验证、加载用户自定义快捷键、冲突检测、多 chord 序列:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `keybindings/defaultBindings.ts` | 340 | 默认快捷键 |
| `keybindings/loadUserBindings.ts` | 472 | 加载用户自定义 |
| `keybindings/parser.ts` | 203 | 快捷键字符串解析 |
| `keybindings/resolver.ts` | 244 | 多 chord 状态机 |
| `keybindings/validate.ts` | 498 | 冲突检测 |

**总规模**:3159 行

**Qwen Code 现状**:Qwen Code 有基础快捷键(`keyBindings.ts` 186 行 + `keyMatchers.ts` 105 行 = 291 行),但**没有用户自定义、multi-chord、冲突检测**。

**Qwen Code 修改方向**:新建 `keybindings/parser.ts`、`resolver.ts`、`validate.ts`,支持 `~/.qwen/keybindings.json` 加载。

**实现成本评估**:
- 涉及文件:~10 个
- 新增代码:~1500 行
- 开发周期:~8 天(1 人)

---

<a id="item-29"></a>

### 29. 远程会话管理 + 权限桥接(P3)

**做什么**:Claude Code 的 `remote/` 模块——本地 CLI 连接 CCR 云端 Agent,实现权限同步、消息转发:

**关键源码**:

| 文件 | 行数 | 职责 |
|------|------|------|
| `remote/RemoteSessionManager.ts` | 343 | 远程会话管理 |
| `remote/SessionsWebSocket.ts` | 404 | WebSocket 客户端 |
| `remote/sdkMessageAdapter.ts` | 302 | SDK 消息适配 |
| `remote/remotePermissionBridge.ts` | 78 | 权限桥接 |

**总规模**:1127 行

**Qwen Code 现状**:Qwen Code **完全没有远程会话管理功能**。

**Qwen Code 修改方向**:新建 `remote/` 模块,实现 WebSocket 客户端和权限桥接。

**实现成本评估**:
- 涉及文件:~6 个
- 新增代码:~800 行
- 开发周期:~5 天(1 人)