diff --git a/plugins/codex/scripts/lib/git.mjs b/plugins/codex/scripts/lib/git.mjs index 1749cfc8..92db98c3 100644 --- a/plugins/codex/scripts/lib/git.mjs +++ b/plugins/codex/scripts/lib/git.mjs @@ -136,7 +136,6 @@ export function resolveReviewTarget(cwd, options = {}) { const requestedScope = options.scope ?? "auto"; const baseRef = options.base ?? null; - const state = getWorkingTreeState(cwd); const supportedScopes = new Set(["auto", "working-tree", "branch"]); if (baseRef) { @@ -172,6 +171,8 @@ export function resolveReviewTarget(cwd, options = {}) { }; } + const state = getWorkingTreeState(cwd); + if (state.isDirty) { return { mode: "working-tree", diff --git a/plugins/codex/scripts/lib/state.mjs b/plugins/codex/scripts/lib/state.mjs index 2da23498..8aec86a4 100644 --- a/plugins/codex/scripts/lib/state.mjs +++ b/plugins/codex/scripts/lib/state.mjs @@ -4,6 +4,7 @@ import os from "node:os"; import path from "node:path"; import { resolveWorkspaceRoot } from "./workspace.mjs"; +import { nowIso } from "./tracked-jobs.mjs"; const STATE_VERSION = 1; const PLUGIN_DATA_ENV = "CLAUDE_PLUGIN_DATA"; @@ -12,10 +13,6 @@ const STATE_FILE_NAME = "state.json"; const JOBS_DIR_NAME = "jobs"; const MAX_JOBS = 50; -function nowIso() { - return new Date().toISOString(); -} - function defaultState() { return { version: STATE_VERSION, diff --git a/plugins/codex/scripts/session-lifecycle-hook.mjs b/plugins/codex/scripts/session-lifecycle-hook.mjs index 778571e6..46a3f5a9 100644 --- a/plugins/codex/scripts/session-lifecycle-hook.mjs +++ b/plugins/codex/scripts/session-lifecycle-hook.mjs @@ -129,5 +129,5 @@ async function main() { main().catch((error) => { process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`); - process.exit(1); + process.exitCode = 1; });