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

- 头脑风暴/实施/测试会话 profile 彻底独立,互不回退,各自空值回落默认
- 新建工单弹窗的 profile 选择改为头脑风暴专用 brainstormProfilePath
- 详情面板新增「头脑风暴配置文件」下拉
- 删除从未接线的死代码 reviewFlow.ts(runReview 全仓库无调用方)
- codexCommand 精简为仅 resume/interactive 两种终端命令形态
- 版本号 0.2.55 → 0.2.60
This commit is contained in:
cruldra committed 2026-07-13 07:50:39 +08:00
1 parent 5188c23765
commit b585016cd7
22 files changed
+258 -366

No files matched your search

+8
View File
@@ -73,6 +73,7 @@ function parseColumnFromComments(comments: GiteaComment[]): {
column: IssueColumn | null
sessionId?: string
profilePath?: string
brainstormProfilePath?: string
testProfilePath?: string
specFile?: string
planFile?: string
@@ -116,6 +117,7 @@ function parseColumnFromComments(comments: GiteaComment[]): {
column: unknown
sessionId?: unknown
profilePath?: unknown
brainstormProfilePath?: unknown
testProfilePath?: unknown
specFile?: unknown
planFile?: unknown
@@ -139,6 +141,9 @@ function parseColumnFromComments(comments: GiteaComment[]): {
const profilePath = typeof obj.profilePath === 'string' && obj.profilePath.length > 0
? obj.profilePath
: undefined
const brainstormProfilePath = typeof obj.brainstormProfilePath === 'string' && obj.brainstormProfilePath.length > 0
? obj.brainstormProfilePath
: undefined
const testProfilePath = typeof obj.testProfilePath === 'string' && obj.testProfilePath.length > 0
? obj.testProfilePath
: undefined
@@ -180,6 +185,7 @@ function parseColumnFromComments(comments: GiteaComment[]): {
column: obj.column,
sessionId,
profilePath,
brainstormProfilePath,
testProfilePath,
specFile,
planFile,
@@ -305,6 +311,7 @@ async function buildIssue(opts: {
column: fromComment,
sessionId,
profilePath,
brainstormProfilePath,
testProfilePath,
specFile,
planFile,
@@ -369,6 +376,7 @@ async function buildIssue(opts: {
column,
...(sessionId ? { sessionId } : {}),
...(profilePath ? { profilePath } : {}),
...(brainstormProfilePath ? { brainstormProfilePath } : {}),
...(testProfilePath ? { testProfilePath } : {}),
...(specFile ? { specFile } : {}),
...(planFile ? { planFile } : {}),
+1 -1
View File
@@ -19,7 +19,7 @@ import { listIssueComments, postIssueComment } from './api'
* 普通文本评论、审查评论、Gitea 自动关联评论都不含这些字段,因此从尾往前
* 扫描时会被跳过,避免它们插队后下一次 merge 从空状态开始丢历史。
*/
const KNOWN_STATE_FIELDS = ['column', 'sessionId', 'implementSessionId', 'reviewSessionId', 'testSessionId', 'profilePath', 'testProfilePath', 'specFile', 'planFile', 'prDiffFile', 'pr', 'prMerged', 'prMergedAt', 'branch', 'worktreePath', 'implementStatus', 'color', 'autoReview'] as const
const KNOWN_STATE_FIELDS = ['column', 'sessionId', 'implementSessionId', 'reviewSessionId', 'testSessionId', 'profilePath', 'brainstormProfilePath', 'testProfilePath', 'specFile', 'planFile', 'prDiffFile', 'pr', 'prMerged', 'prMergedAt', 'branch', 'worktreePath', 'implementStatus', 'color', 'autoReview'] as const
/**
* body 能 parse 成 object 且含至少一个已知 state 字段 → 认为是 state JSON。
+4 -4
View File
@@ -29,11 +29,11 @@ export interface Issue {
/** Optional Claude Code session id stored alongside the column marker in
* the issue's state-JSON comment. Used to resume the conversation. */
sessionId?: string
/** Absolute path to the Claude settings profile used at creation; passed
* as --settings on resume. */
/** 实施会话专用的 Claude 配置文件;空 = DEFAULT_PROFILE_PATH,不回退其它字段。 */
profilePath?: string
/** 测试会话专用的 Claude 配置文件,独立于实施会话的 `profilePath`;
* 留空时测试会话回退到 `profilePath`,再回退默认。 */
/** 头脑风暴会话专用的 Claude 配置文件;空 = DEFAULT_PROFILE_PATH,不回退其它字段。 */
brainstormProfilePath?: string
/** 测试会话专用的 Claude 配置文件;空 = DEFAULT_PROFILE_PATH,不回退其它字段。 */
testProfilePath?: string
/** Optional workspace-relative path to the spec file for this issue, as
* surfaced from the Claude session transcript. Lives under