diff --git a/packages/coding-agent/src/utils/git.ts b/packages/coding-agent/src/utils/git.ts index db3f2fb9d..2b31ea95d 100644 --- a/packages/coding-agent/src/utils/git.ts +++ b/packages/coding-agent/src/utils/git.ts @@ -385,11 +385,7 @@ function buildNonInteractiveEnv( pinnedEnv: Record, ): Record { const preservedCharacterLocale = - (env.LC_CTYPE === undefined || env.LC_CTYPE === "") && - env.LC_ALL !== undefined && - /(?:^|[._-])utf-?8(?:$|[.@_-])/i.test(env.LC_ALL) - ? env.LC_ALL - : undefined; + env.LC_ALL !== undefined && /(?:^|[._-])utf-?8(?:$|[.@_-])/i.test(env.LC_ALL) ? env.LC_ALL : undefined; return { ...env, ...(preservedCharacterLocale === undefined ? {} : { LC_CTYPE: preservedCharacterLocale }), diff --git a/packages/coding-agent/test/tools/gh.test.ts b/packages/coding-agent/test/tools/gh.test.ts index b5794135f..120b5c776 100644 --- a/packages/coding-agent/test/tools/gh.test.ts +++ b/packages/coding-agent/test/tools/gh.test.ts @@ -1130,6 +1130,12 @@ exec ${JSON.stringify(realGit)} "$@" delete process.env.LC_MESSAGES; await git.diff(remoteFixture.repoRoot, { env: { LC_MESSAGES: undefined } }); + process.env.EXPECTED_LC_CTYPE = "fr_FR.UTF-8"; + process.env.LC_ALL = "fr_FR.UTF-8"; + process.env.LC_CTYPE = "C"; + process.env.LC_MESSAGES = "fr_FR.UTF-8"; + await git.diff(remoteFixture.repoRoot, { env: { LC_MESSAGES: undefined } }); + process.env.EXPECTED_LC_CTYPE = "UTF-8-SENTINEL"; process.env.LC_ALL = "fr_FR.UTF-8"; process.env.LC_CTYPE = "UTF-8-SENTINEL"; @@ -1184,8 +1190,6 @@ echo ok `, ); const realWhich = $which; - process.env.PATH = ""; - expect(realWhich("gh", { cache: WhichCachePolicy.Bypass, PATH: "" })).toBeNull(); const whichSpy = vi .spyOn(piUtils, "$which") .mockImplementation((command, options) =>