makecindy / makecindy/cindy

[Feature] 为新建任务提供可配置的 Agent / 模型默认策略

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

Description

## 背景

并行任务经常分别使用 Claude Code / Codex 和不同模型。现在新建任务时,界面会记住一部分“上次使用”的选择,但用户无法判断它来自哪里;在多个会话之间跳转后,容易误以为新任务继承了“上一次访问”的会话。

代码核对后,当前 `newMakerDraft` 会持久化:

- 当前 Agent(`vendor`);
- 每个 Agent 最近记住的模型、来源、推理强度和权限等配置(`lastByVendor`)。

发送后只清理工作目录,不清理这些选择;同时,在已有会话里修改模型也可能更新对应 Agent 的记忆值。因此目前既不是明确的“全局默认”,也不是严格的“最近一次创建并启动的会话配置”,而是一组来源混合的最近记忆。

## 需求

在 Settings 中增加“新建任务默认配置策略”,统一作用于:

- 有项目的新建任务;
- 无项目的新建任务;
- 从项目入口开启的新对话。

提供两个明确选项:

1. **全局默认配置(建议默认)**
- 用户在 Settings 中显式设置默认 Agent;
- 至少可设置该 Agent 的默认模型及模型来源(provider/source);
- 新建任务始终从这套配置初始化,不受浏览或修改存量会话影响。

2. **最近一次创建并启动的会话配置**
- 仅在“新会话创建成功,且首条消息已被接受/开始运行”后更新锚点;
- 继承该会话启动时的 Agent、模型和模型来源;
- 不按“最近访问”计算;
- 访问旧会话、在旧会话中切模型、页面跳转、取消或未发送的草稿都不得更新锚点。

## 范围建议

MVP 先保证 **Agent + 模型 + 模型来源** 原子一致,避免只记模型 id 却路由到另一来源。推理强度、权限、Fast / Plan 等维度可继续沿用现状,或在后续产品决策中扩展为完整配置;不要在本 Issue 中默默改变其默认语义。

“全局默认”应遵循项目现有 default + override 规则:

- 未自定义时跟随版本内置默认;
- 用户修改只保存 override;
- “恢复默认”删除 override,而不是复制一份当前默认值。

## 验收标准

- [ ] Settings 可选择“全局默认”或“最近一次创建并启动”。
- [ ] 全局默认模式下,可配置默认 Agent、模型及来源;项目/非项目入口结果一致。
- [ ] 最近创建模式只在新会话首条消息开始后更新锚点。
- [ ] 仅访问或修改存量会话不会改变新建任务默认值。
- [ ] 取消、未发送草稿、创建失败不会改变锚点。
- [ ] 应用重启后策略与锚点均正确恢复,并按账号/owner 隔离。
- [ ] 默认模型下架、来源断开或无权限时明确提示并要求用户选择,不静默换成列表第一项。
- [ ] 迁移现有用户时有确定且可解释的兼容行为。

## 非目标

- 不在本 Issue 中改变已有会话的 Agent / 模型。
- 不把“最近访问的会话”作为第三种隐式来源。
- 不与“会话模型入口需要同时展示 Agent 身份”的显示问题合并;该问题另走独立修复 PR。

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing newMakerDraft state and the Settings persistence entry points; the issue does not name specific files or tests. Map where new sessions are created and their first messages begin, then verify that global defaults and the last successfully started session remain isolated, persist across restarts, and handle invalid defaults without silent substitution.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.