✨ feat(vscode): 审查会话链接按本机 codex 会话文件存在判定,不再绑 worktree
This commit is contained in:
@@ -254,12 +254,12 @@ export function IssueDetailPanel({
|
||||
onCloseSessionTab(issue.number, 'implement')
|
||||
},
|
||||
},
|
||||
issue?.worktreeExists
|
||||
issue?.reviewSessionFileExists
|
||||
? {
|
||||
key: 'reviewSessionId',
|
||||
label: '审查会话id',
|
||||
type: 'action',
|
||||
description: '双击在新终端运行 codex resume <id> 查看审查会话(cwd 优先用 worktree)',
|
||||
description: '双击在新终端运行 codex resume <id> 查看审查会话(worktree 在则用之,否则工作区根目录)',
|
||||
actionIcon: <Terminal className="size-3.5" />,
|
||||
onAction: (v) => {
|
||||
if (typeof v !== 'string' || v.length === 0 || !issue)
|
||||
@@ -282,7 +282,7 @@ export function IssueDetailPanel({
|
||||
label: '审查会话id',
|
||||
type: 'string',
|
||||
readOnly: true,
|
||||
description: 'worktree 已清理,无法 resume;仅保留 id 文本',
|
||||
description: '本机没有该 codex 会话文件,无法 resume;仅保留 id 文本',
|
||||
},
|
||||
(() => {
|
||||
// 测试会话 id 行有三种状态(照搬头脑风暴行的三态):
|
||||
|
||||
@@ -57,7 +57,7 @@ export type ExtensionToWebview
|
||||
= | { type: 'issues/loading' }
|
||||
| { type: 'issues/update', issues: Issue[], scope: 'mine' | 'all', globalAutoReview: boolean, youtrackConfigured: boolean }
|
||||
| { type: 'issues/error', message: string }
|
||||
| { type: 'issue/patch', issueNumber: number, patch: { autoReview?: boolean, specFile?: string, planFile?: string, prDiffFile?: string, sessionId?: string, implementSessionId?: string, reviewSessionId?: string, testSessionId?: string, pr?: string | null, implementStatus?: 'running' | 'done' | 'failed', column?: IssueColumn, worktreePath?: string | null, prMerged?: boolean, prMergedAt?: string, branch?: string | null, color?: string, worktreeExists?: boolean, brainstormTabOpen?: boolean, implementTabOpen?: boolean, reviewTabOpen?: boolean, testTabOpen?: boolean, profilePath?: string, brainstormProfilePath?: string, testProfilePath?: string } }
|
||||
| { type: 'issue/patch', issueNumber: number, patch: { autoReview?: boolean, specFile?: string, planFile?: string, prDiffFile?: string, sessionId?: string, implementSessionId?: string, reviewSessionId?: string, reviewSessionFileExists?: boolean, testSessionId?: string, pr?: string | null, implementStatus?: 'running' | 'done' | 'failed', column?: IssueColumn, worktreePath?: string | null, prMerged?: boolean, prMergedAt?: string, branch?: string | null, color?: string, worktreeExists?: boolean, brainstormTabOpen?: boolean, implementTabOpen?: boolean, reviewTabOpen?: boolean, testTabOpen?: boolean, profilePath?: string, brainstormProfilePath?: string, testProfilePath?: string } }
|
||||
| { type: 'issue/pr-diff-summary-done', issueNumber: number }
|
||||
| { type: 'issue/append', issue: Issue, select?: boolean }
|
||||
| { type: 'issue/select-by-number', issueNumber: number }
|
||||
|
||||
@@ -51,6 +51,9 @@ export interface Issue {
|
||||
implementSessionId?: string
|
||||
/** Backend-agnostic review session id (v1 stores a codex thread id). */
|
||||
reviewSessionId?: string
|
||||
/** 本机是否存在 reviewSessionId 对应的 codex 会话文件;扩展端加载时计算,
|
||||
* 不持久化。codex resume 只依赖这个文件,与 worktree 无关。 */
|
||||
reviewSessionFileExists?: boolean
|
||||
/** Claude Code session id of the test conversation; manually started after
|
||||
* the PR is merged, resumable from the detail panel. */
|
||||
testSessionId?: string
|
||||
|
||||
Reference in New Issue
Block a user