✨ feat(vscode): 审查列可以手动标记为通过

This commit is contained in:
cruldra committed 2026-10-04 10:01:41 +08:00
1 parent 20249d6a08
commit 4094ffa49e
12 files changed
+157 -6

No files matched your search

@@ -119,6 +119,8 @@ interface IssueDetailPanelProps {
onClearSession: (issueNumber: number, kind: 'brainstorm' | 'implement' | 'review' | 'test' | 'prototype') => void
/** Persist a per-issue `autoReview` override into the state JSON. */
onUpdateAutoReview: (issueNumber: number, value: boolean) => void
/** 审查列手动标记通过。 */
onUpdateReviewPassed: (issueNumber: number, value: boolean) => void
/** 已知 Claude profile 列表,用于「配置文件」下拉选项。 */
profiles: ClaudeProfile[]
/** Persist a per-issue `profilePath` override into the state JSON. */
@@ -180,6 +182,7 @@ export function IssueDetailPanel({
onContinueBrainstorm,
onClearSession,
onUpdateAutoReview,
onUpdateReviewPassed,
profiles,
onUpdateProfilePath,
onUpdateBrainstormProfilePath,
@@ -559,6 +562,14 @@ export function IssueDetailPanel({
type: 'boolean',
description: `打开新 PR 时是否自动启动 codex 审查;未设置时跟随全局(当前全局:${globalAutoReview ? '开' : '关'})`,
},
...(issue?.column === 'review' && issue.source !== 'youtrack'
? [{
key: 'reviewPassed',
label: '审查通过',
type: 'boolean' as const,
description: '手动标成已通过,标题变绿。新的提交会清掉这个标记。',
}]
: []),
{
key: 'color',
label: '颜色',
@@ -772,6 +783,7 @@ export function IssueDetailPanel({
testSessionId: issue.testSessionId ?? null,
prototypeSessionId: issue.prototypeSessionId ?? null,
autoReview: issue.autoReview ?? globalAutoReview,
reviewPassed: issue.reviewPassed === true,
color: issue.color ?? null,
// 展示/选中值按 basename 映射到本机 profiles,避免跨机绝对路径变成「自定义」项。
brainstormProfilePath: matchProfileOption(issue.brainstormProfilePath, profiles) || null,
@@ -1008,6 +1020,8 @@ export function IssueDetailPanel({
return
if (key === 'autoReview' && issue && typeof value === 'boolean')
onUpdateAutoReview(issue.number, value)
if (key === 'reviewPassed' && issue && typeof value === 'boolean')
onUpdateReviewPassed(issue.number, value)
if (key === 'brainstormProfilePath' && issue && typeof value === 'string')
onUpdateBrainstormProfilePath(issue.number, value)
if (key === 'profilePath' && issue && typeof value === 'string')