✨ feat(vscode): 五种会话 id 行都能用橡皮擦清除本机记录,别的机器上的旧会话不再挡着新起

This commit is contained in:
cruldra committed 2026-09-24 19:29:39 +08:00
1 parent 4d905ff16e
commit d604b6f426
12 files changed
+169 -64

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
import type { SessionTabKind } from './terminals'
/** 工单 state 里存各种会话 id 的字段。 */
export type SessionIdField = 'sessionId' | 'implementSessionId' | 'reviewSessionId' | 'testSessionId' | 'prototypeSessionId'
/**
* 每种会话对应的 state 字段、中文角色名,以及清除该会话 id 后的后续提示:
* confirmHint 进确认框,doneHint 进成功 toast。
*/
export const SESSION_KINDS: Record<SessionTabKind, { field: SessionIdField, role: string, confirmHint: string, doneHint: string }> = {
brainstorm: {
field: 'sessionId',
role: '头脑风暴',
confirmHint: '下次续聊会新开会话',
doneHint: '下次续聊将新开会话',
},
implement: {
field: 'implementSessionId',
role: '实施',
confirmHint: '清除后可点 ▶ 重新实施,注意重新实施会删掉远程 feature 分支,别的机器上的实施进度会丢',
doneHint: '可点 ▶ 重新实施(会删掉远程 feature 分支)',
},
review: {
field: 'reviewSessionId',
role: '审查',
confirmHint: '清除后可点 ▶ 新起一个',
doneHint: '可点 ▶ 新起一个',
},
test: {
field: 'testSessionId',
role: '测试',
confirmHint: '清除后可点 ▶ 新起一个',
doneHint: '可点 ▶ 新起一个',
},
prototype: {
field: 'prototypeSessionId',
role: '原型',
confirmHint: '清除后可点 ▶ 新起一个',
doneHint: '可点 ▶ 新起一个',
},
}
export function clearSessionConfirmText(issueNumber: number, kind: SessionTabKind, sessionId: string): string {
const { role, confirmHint } = SESSION_KINDS[kind]
return `确定清除工单 #${issueNumber} 的${role}会话 id(${sessionId})?只清本机记录,别的机器不受影响;会话文件不删。${confirmHint}。`
}
export function clearSessionDoneText(issueNumber: number, kind: SessionTabKind): string {
const { role, doneHint } = SESSION_KINDS[kind]
return `工单 #${issueNumber} 的${role}会话 id 已清除,${doneHint}`
}