✨ feat(vscode): 设置面板可配头脑风暴/实施/测试会话的默认 profile

三类会话的 profile 此前只有工单级字段,留空就硬编码落到 official,
想整体换模型只能一个工单一个工单改。

设置面板新增三个下拉,与冲突解决/提交/改动说明的 profile 选择同区。
解析链路变成:工单级字段 > 对应的全局默认设置 > getDefaultProfilePath(),
三类之间仍互不回退。新建工单的头脑风暴会话也走同一条链路。

Claude-Session: https://claude.ai/code/session_01REdhpbaNyqWASF2HWsnTFv
This commit is contained in:
cruldra committed 2026-09-13 08:59:56 +08:00
1 parent 518d471b7a
commit 958c59e090
11 files changed
+196 -18

No files matched your search

+24 -11
View File
@@ -1599,30 +1599,43 @@ export async function startConflictResolution(panel: KanbanWebviewPanel, opts: {
* (handleImplement / handleResumeSession when sessionKind === 'implement')
* should launch with. Priority:
* 1. 工单级 `profilePath`(详情面板「实施配置文件」)
* 2. getDefaultProfilePath()
* 2. 设置里的「实施默认配置文件」
* 3. getDefaultProfilePath()
*
* 冲突解决用全局 `settings.conflictResolutionProfilePath`。
* 头脑风暴用 resolveBrainstormProfilePath;测试用 resolveTestProfilePath。
* 三者互不回退。
*/
export function resolveImplementProfilePath(_panel: KanbanWebviewPanel, issueLevelProfilePath: string | undefined): string {
return resolveProfilePath(issueLevelProfilePath?.trim() || undefined)
export function resolveImplementProfilePath(panel: KanbanWebviewPanel, issueLevelProfilePath: string | undefined): string {
return resolveProfilePath(
issueLevelProfilePath?.trim()
|| getSettings(panel.context).defaultImplementProfilePath.trim()
|| undefined,
)
}
/**
* 头脑风暴会话 profile:工单级 `brainstormProfilePath` > DEFAULT。
* 不回退实施 profile。
* 头脑风暴会话 profile:工单级 `brainstormProfilePath` > 设置里的
* 「头脑风暴默认配置文件」> DEFAULT。不回退实施 profile。
*/
export function resolveBrainstormProfilePath(_panel: KanbanWebviewPanel, brainstormProfilePath: string | undefined): string {
return resolveProfilePath(brainstormProfilePath?.trim() || undefined)
export function resolveBrainstormProfilePath(panel: KanbanWebviewPanel, brainstormProfilePath: string | undefined): string {
return resolveProfilePath(
brainstormProfilePath?.trim()
|| getSettings(panel.context).defaultBrainstormProfilePath.trim()
|| undefined,
)
}
/**
* 测试会话 profile:工单级 `testProfilePath` > DEFAULT。
* 不回退实施 profile。
* 测试会话 profile:工单级 `testProfilePath` > 设置里的「测试默认配置文件」
* > DEFAULT。不回退实施 profile。
*/
export function resolveTestProfilePath(_panel: KanbanWebviewPanel, testProfilePath: string | undefined): string {
return resolveProfilePath(testProfilePath?.trim() || undefined)
export function resolveTestProfilePath(panel: KanbanWebviewPanel, testProfilePath: string | undefined): string {
return resolveProfilePath(
testProfilePath?.trim()
|| getSettings(panel.context).defaultTestProfilePath.trim()
|| undefined,
)
}
/**