feat(vscode): 头脑风暴 profile 独立 + codex 命令统一组装收尾

- 头脑风暴/实施/测试会话 profile 彻底独立,互不回退,各自空值回落默认
- 新建工单弹窗的 profile 选择改为头脑风暴专用 brainstormProfilePath
- 详情面板新增「头脑风暴配置文件」下拉
- 删除从未接线的死代码 reviewFlow.ts(runReview 全仓库无调用方)
- codexCommand 精简为仅 resume/interactive 两种终端命令形态
- 版本号 0.2.55 → 0.2.60
This commit is contained in:
2026-07-13 07:50:39 +08:00
parent 5188c23765
commit b585016cd7
22 changed files with 258 additions and 366 deletions
+9 -4
View File
@@ -55,6 +55,7 @@ export function App() {
clearDependency,
updateIssueAutoReview,
updateIssueProfilePath,
updateIssueBrainstormProfilePath,
updateIssueTestProfilePath,
logs,
clearLogs,
@@ -90,9 +91,9 @@ export function App() {
// effect 跳过它——否则 选中→聚焦→终端激活→反向选中 会死循环、CPU 飙升。
const lastProgrammaticSelectRef = useRef<string | null>(null)
function handleSubmitNewIssue(userRequest: string, images: PastedImage[], profilePath?: string): void {
function handleSubmitNewIssue(userRequest: string, images: PastedImage[], brainstormProfilePath?: string): void {
const payload = images.map(({ mediaType, base64 }) => ({ mediaType, base64 }))
createIssue(userRequest, payload.length > 0 ? payload : undefined, profilePath)
createIssue(userRequest, payload.length > 0 ? payload : undefined, brainstormProfilePath)
setShowNewIssueModal(false)
}
@@ -195,7 +196,11 @@ export function App() {
e.preventDefault()
const isImpl = !!selectedIssue?.implementSessionId
const cwd = isImpl ? selectedIssue?.worktreePath : undefined
resumeSession(sid, selectedIssue?.profilePath, cwd, selectedIssue?.number)
// 实施 resume 用 profilePath;头脑风暴 resume 用 brainstormProfilePath。
const profileForResume = isImpl
? selectedIssue?.profilePath
: selectedIssue?.brainstormProfilePath
resumeSession(sid, profileForResume, cwd, selectedIssue?.number)
}
return
}
@@ -355,6 +360,7 @@ export function App() {
onStartBrainstormSession={startBrainstormSession}
onUpdateAutoReview={updateIssueAutoReview}
onUpdateProfilePath={updateIssueProfilePath}
onUpdateBrainstormProfilePath={updateIssueBrainstormProfilePath}
onUpdateTestProfilePath={updateIssueTestProfilePath}
onOpenLogs={() => setShowLogs(true)}
profileData={profileData}
@@ -424,7 +430,6 @@ export function App() {
onCancel={() => setShowNewIssueModal(false)}
onSubmit={handleSubmitNewIssue}
profiles={profiles}
defaultProfileName="offical"
/>
<LogModal
open={showLogs}