11
This commit is contained in:
1 parent
0d078e848c
commit
0d79cb7c73
6 files changed
+139
-37
No files matched your search
@@ -0,0 +1,27 @@
|
||||
/**
|
||||
* 自动审查启动路径决策(纯逻辑,不碰 VS Code API)。
|
||||
*
|
||||
* 与 TUI 对齐:只有已持久化 `reviewSessionId` 才走「再审」;
|
||||
* 仅 tab 活着但还没有 session id,说明首次审查刚开、session 尚未落盘,
|
||||
* 再注入 "PR 更新了,再审一下" 会污染首轮 prompt(opened 后紧跟 synchronize 的常见竞态)。
|
||||
*/
|
||||
|
||||
export type AutoReviewPath = 'reuse' | 'resume' | 'new' | 'noop'
|
||||
|
||||
export function decideAutoReviewPath(opts: {
|
||||
tabAlive: boolean
|
||||
reviewSessionId: string | undefined
|
||||
}): AutoReviewPath {
|
||||
const hasSid = typeof opts.reviewSessionId === 'string' && opts.reviewSessionId.length > 0
|
||||
// ① 有 session + tab 活着 → 往现有 TUI 注入再审
|
||||
if (opts.tabAlive && hasSid)
|
||||
return 'reuse'
|
||||
// ② 有 session + tab 已关 → codex resume 后再注入
|
||||
if (!opts.tabAlive && hasSid)
|
||||
return 'resume'
|
||||
// ③ tab 活着但无 session → 首次审查进行中,跳过
|
||||
if (opts.tabAlive)
|
||||
return 'noop'
|
||||
// ④ 无 session、无 tab → 新建完整审查会话
|
||||
return 'new'
|
||||
}
|
||||
Reference in new issue
Block a user