新会话默认引擎/模型缺少显式设置项:禁用 Claude Code/Codex 后新会话仍默认 cc
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 401
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 使用场景
用户主用 Pi 引擎 + 自定义供应商(GLM Coding Plan),希望所有新会话默认走 Pi + 指定模型。
## 当前痛点
1. 「新会话默认用哪个引擎/模型」**没有显式设置项**。当前行为是隐式记住「上次新会话草稿的引擎」,用户无法查看、无法主动设置。
2. 我在设置中已关闭 Claude Code 和 Codex,但新建会话仍默认 Claude Code,每次都要手动切到 Pi。
3. 引擎不可用时的回退顺序硬编码为 `cc → codex → pi`,cc 永远优先;「禁用引擎」的设置也不影响新会话默认引擎的可用性判定。
## 复现步骤
1. 配置自定义供应商(如 GLM Coding Plan),三个引擎接入点均配置可用
2. 在设置中关闭 Claude Code 与 Codex
3. 新建会话
4. 输入框引擎选择器仍为 Claude Code,需手动切换
## 期望行为
1. 提供显式的「新会话默认引擎 + 默认模型」设置项(可见、可改)
2. **我设的默认是什么,新会话就用什么**,不被隐式状态或回退逻辑覆盖
3. 已禁用的引擎不参与新会话默认值与回退候选
4. 若保留「记住上次使用」逻辑,应在设置中展示当前实际生效的默认值
## 技术定位(0.1.78 逆向,供参考)
- 新会话默认引擎持久化在 localStorage `xdt:newMakerDraft:v1:` 的 `vendor` 字段,`lastByVendor` 记录各引擎上次的模型/供应商
- 仅在 UI 切换引擎时顺带写入,无独立设置入口
- 引擎不可用时的回退顺序硬编码 `["cc","codex","pi"]`,取第一个可用项
- `defaultTupleCustomized` / `defaultTupleSelectionCustomized` 已有「默认三元组」概念,但未暴露为可见设置
## 环境
- Cindy 版本:0.1.78 (macOS)
- OS: macOS 26.6.2 arm64
- 界面语言: zh-CN
Contributor guide
Research direction
Search for the localStorage key `xdt:newMakerDraft:v1:`, `lastByVendor`, `defaultTupleCustomized`, and the hard-coded `cc`/`codex`/`pi` fallback. Trace the new-session engine selector and settings UI first; done means an explicit engine/model default is visible and respected, disabled engines are excluded, and the existing fallback behavior is covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100