fix(cli): fix codex review command argument handling

- Fix prompt incorrectly passed to codex review with target flags (--uncommitted/--base/--commit)
- Remove unsupported --skip-git-repo-check flag from codex review command
- Fix TypeScript type error in codex-lens.ts (missing 'installed' property)

Codex CLI constraint: --uncommitted/--base/--commit and [PROMPT] are mutually exclusive.
This commit is contained in:
catlog22
2026-02-01 23:51:58 +08:00
parent e5252f8a77
commit 690597bae8
3 changed files with 8 additions and 7 deletions

View File

@@ -702,7 +702,9 @@ async function execAction(positionalPrompt: string | undefined, options: CliExec
// Handle cache option: pack @patterns and/or content
let cacheSessionId: string | undefined;
let actualPrompt = prompt_to_use;
// When skipTemplates is true (review mode with target flags), don't pass prompt to codex CLI
// because --uncommitted/--base/--commit and [PROMPT] are mutually exclusive
let actualPrompt = skipTemplates ? '' : prompt_to_use;
if (cache) {
const { handler: contextCacheHandler } = await import('../tools/context-cache.js');

View File

@@ -254,8 +254,7 @@ export function buildCommand(params: {
// codex review uses -c key=value for config override, not -m
args.push('-c', `model=${model}`);
}
// Skip git repo check by default for codex (allows non-git directories)
args.push('--skip-git-repo-check');
// Note: --skip-git-repo-check is NOT supported by codex review command
// codex review uses positional prompt argument, not stdin
useStdin = false;
if (prompt) {

View File

@@ -1028,7 +1028,7 @@ async function bootstrapVenv(): Promise<BootstrapResult> {
async function ensureReady(): Promise<ReadyStatus> {
// Use cached result if already checked
if (bootstrapChecked && bootstrapReady) {
return { ready: true };
return { ready: true, installed: true };
}
// Check current status
@@ -1036,13 +1036,13 @@ async function ensureReady(): Promise<ReadyStatus> {
if (status.ready) {
bootstrapChecked = true;
bootstrapReady = true;
return { ready: true, version: status.version };
return { ready: true, installed: true, version: status.version };
}
// Attempt bootstrap
const bootstrap = await bootstrapVenv();
if (!bootstrap.success) {
return { ready: false, error: bootstrap.error };
return { ready: false, installed: false, error: bootstrap.error };
}
// Verify after bootstrap
@@ -1050,7 +1050,7 @@ async function ensureReady(): Promise<ReadyStatus> {
bootstrapChecked = true;
bootstrapReady = recheck.ready;
return recheck;
return { ...recheck, installed: recheck.ready };
}
/**