From e260048b362169fd601da729f2ed412c520b66ca Mon Sep 17 00:00:00 2001 From: Woonggi Min Date: Sun, 31 May 2026 15:29:02 +0900 Subject: [PATCH] fix(codex): qualify git bash rerun guidance Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/cli/install-codex/git-bash.test.ts | 2 +- src/cli/install-codex/git-bash.ts | 2 +- .../install-codex-git-bash-preflight.test.ts | 20 ++++++++++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/cli/install-codex/git-bash.test.ts b/src/cli/install-codex/git-bash.test.ts index c0ceac830..4aae30fb6 100644 --- a/src/cli/install-codex/git-bash.test.ts +++ b/src/cli/install-codex/git-bash.test.ts @@ -113,7 +113,7 @@ describe("git-bash", () => { expect(result.checkedPaths).toEqual([PROGRAM_FILES_GIT_BASH, PROGRAM_FILES_X86_GIT_BASH]) expect(result.installHint).toContain("winget install --id Git.Git -e --source winget") expect(result.installHint).toContain("OMO_CODEX_GIT_BASH_PATH=C:\\path\\to\\bash.exe") - expect(result.installHint).toContain("rerun `bunx omo install --platform=codex`") + expect(result.installHint).toContain("rerun `bunx --package oh-my-openagent omo install --platform=codex`") }) test("#given Windows without Git Bash and winget is allowed #when preparing #then winget runs and resolver is retried", async () => { diff --git a/src/cli/install-codex/git-bash.ts b/src/cli/install-codex/git-bash.ts index 80a01a026..25ef354e9 100644 --- a/src/cli/install-codex/git-bash.ts +++ b/src/cli/install-codex/git-bash.ts @@ -100,7 +100,7 @@ function missingGitBash(checkedPaths: readonly string[]): GitBashResolution { "Git Bash is required for native Windows Codex profile installs.", "Install it with: winget install --id Git.Git -e --source winget", `For a custom install, set ${GIT_BASH_ENV_KEY}=C:\\path\\to\\bash.exe`, - "Then rerun `bunx omo install --platform=codex`.", + "Then rerun `bunx --package oh-my-openagent omo install --platform=codex`.", ].join("\n"), } } diff --git a/src/cli/install-codex/install-codex-git-bash-preflight.test.ts b/src/cli/install-codex/install-codex-git-bash-preflight.test.ts index 4f4982e6b..58ba6d8cb 100644 --- a/src/cli/install-codex/install-codex-git-bash-preflight.test.ts +++ b/src/cli/install-codex/install-codex-git-bash-preflight.test.ts @@ -52,7 +52,7 @@ describe("install-codex Git Bash preflight", () => { "Git Bash is required.", "winget install --id Git.Git -e --source winget", "OMO_CODEX_GIT_BASH_PATH=C:\\path\\to\\bash.exe", - "rerun `bunx omo install --platform=codex`", + "rerun `bunx --package oh-my-openagent omo install --platform=codex`", ].join("\n"), }), runCommand: async (command: string, args: readonly string[], options: CommandRunOptions) => { @@ -61,9 +61,23 @@ describe("install-codex Git Bash preflight", () => { }) // then - await expect(install).rejects.toThrow("winget install --id Git.Git -e --source winget") + let installError: unknown + try { + await install + } catch (error) { + installError = error + } + expect(installError).toBeInstanceOf(Error) + expect((installError as Error).message).toContain("winget install --id Git.Git -e --source winget") expect(commands).toEqual([]) - await expect(stat(join(codexHome, "config.toml"))).rejects.toThrow() + + let configStatError: unknown + try { + await stat(join(codexHome, "config.toml")) + } catch (error) { + configStatError = error + } + expect(configStatError).toBeInstanceOf(Error) }) test("#given Windows without Git Bash #when winget succeeds and resolver recovers #then install continues", async () => {