oh-my-codex 0.21.19 → 0.21.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -194,5 +194,23 @@ describe("omx setup preserves user reasoning effort (issue #3630)", () => {
194
194
  const parsed = TOML.parse(await readFile(home.configPath, "utf-8"));
195
195
  assert.equal(parsed.model_reasoning_effort, "low");
196
196
  });
197
+ it("does not create stray files starting with backslash in cwd after setup on POSIX", async () => {
198
+ if (process.platform === "win32")
199
+ return; // Skip on Windows
200
+ const home = await createIsolatedHome("omx3630-regression-");
201
+ homes.push(home);
202
+ const { readdirSync } = await import("node:fs");
203
+ const cwdBefore = readdirSync(process.cwd(), { encoding: "utf-8" });
204
+ try {
205
+ await setup({ scope: "user", mergeAgents: true, installMode: "legacy" });
206
+ }
207
+ finally {
208
+ // cleanup happens in `after`
209
+ }
210
+ const cwdAfter = readdirSync(process.cwd(), { encoding: "utf-8" });
211
+ const newFiles = cwdAfter.filter((f) => !cwdBefore.includes(f));
212
+ const strayBackslashFiles = newFiles.filter((f) => f.startsWith("\\") || f.includes("\\"));
213
+ assert.equal(strayBackslashFiles.length, 0, `setup created stray files with backslashes: ${strayBackslashFiles.join(", ")}`);
214
+ });
197
215
  });
198
216
  //# sourceMappingURL=setup-reasoning-preserve.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-reasoning-preserve.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/setup-reasoning-preserve.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-reasoning-preserve.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/setup-reasoning-preserve.test.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { tmpdir as osTmpdir } from 'node:os';
7
7
  import { spawnSync } from 'node:child_process';
8
8
  import { fileURLToPath } from 'node:url';
9
9
  import { createHash } from 'node:crypto';
10
- import { buildManagedCodexHookTrustState, buildManagedCodexHooksConfig, buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, } from '../../config/codex-hooks.js';
10
+ import { buildManagedCodexHookTrustState, buildManagedCodexHooksConfig, buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, buildManagedCodexNativeHookWindowsShimPathForFilesystem, } from '../../config/codex-hooks.js';
11
11
  import { setUninstallClaimJournalDurabilityForTest, uninstall } from '../uninstall.js';
12
12
  import TOML from '@iarna/toml';
13
13
  const tmpdir = () => realpathSync(osTmpdir());
@@ -667,7 +667,7 @@ describe('omx uninstall', () => {
667
667
  const codexDir = join(wd, '.codex');
668
668
  const configPath = join(codexDir, 'config.toml');
669
669
  const hooksPath = join(codexDir, 'hooks.json');
670
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
670
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
671
671
  const metadataPath = join(codexDir, '.omx', 'notify-dispatch.json');
672
672
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
673
673
  platform: 'win32',
@@ -697,6 +697,7 @@ describe('omx uninstall', () => {
697
697
  const metadata = Buffer.from('{"managedBy":"foreign"}\n', 'utf-8');
698
698
  const shim = Buffer.from(buildManagedCodexNativeHookWindowsShimContent(packageRoot()), 'utf-8');
699
699
  await mkdir(dirname(metadataPath), { recursive: true });
700
+ await mkdir(dirname(shimPath), { recursive: true });
700
701
  await writeFile(configPath, config);
701
702
  await writeFile(hooksPath, hooks);
702
703
  await writeFile(shimPath, shim);
@@ -737,12 +738,13 @@ describe('omx uninstall', () => {
737
738
  const codexDir = join(wd, '.codex');
738
739
  const configPath = join(codexDir, 'config.toml');
739
740
  const hooksPath = join(codexDir, 'hooks.json');
740
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
741
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
741
742
  const metadataPath = join(codexDir, '.omx', 'notify-dispatch.json');
742
743
  const config = buildOmxConfig().replace('# End oh-my-codex', '[hooks.state."foreign-key"]\ntrusted_hash = "sha256:foreign"\n\n# End oh-my-codex');
743
744
  const shim = Buffer.from(buildManagedCodexNativeHookWindowsShimContent(packageRoot()), 'utf-8');
744
745
  const metadata = Buffer.from('{"managedBy":"foreign"}\n', 'utf-8');
745
746
  await mkdir(dirname(metadataPath), { recursive: true });
747
+ await mkdir(dirname(shimPath), { recursive: true });
746
748
  await writeFile(configPath, config);
747
749
  if (fixture.hooks !== null)
748
750
  await writeFile(hooksPath, fixture.hooks);
@@ -777,7 +779,7 @@ describe('omx uninstall', () => {
777
779
  const codexDir = join(wd, '.codex');
778
780
  const configPath = join(codexDir, 'config.toml');
779
781
  const hooksPath = join(codexDir, 'hooks.json');
780
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
782
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
781
783
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
782
784
  platform: 'win32',
783
785
  codexHomeDir: codexDir,
@@ -791,6 +793,7 @@ describe('omx uninstall', () => {
791
793
  },
792
794
  }, null, 2).replace(JSON.stringify(sentinel), JSON.stringify(`& 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe' -NoProfile -ExecutionPolicy Bypass -File '${shimPath}'`).replace(/\\\\/g, '\\u005c')) + '\n';
793
795
  await mkdir(codexDir, { recursive: true });
796
+ await mkdir(dirname(shimPath), { recursive: true });
794
797
  await writeFile(configPath, buildOmxConfig());
795
798
  await writeFile(hooksPath, hooks);
796
799
  await writeFile(shimPath, buildManagedCodexNativeHookWindowsShimContent(packageRoot()));
@@ -812,7 +815,7 @@ describe('omx uninstall', () => {
812
815
  await withDriveQualifiedWindowsCodexHome(wd, async (codexHomeDir) => {
813
816
  const configPath = join(codexHomeDir, 'config.toml');
814
817
  const hooksPath = join(codexHomeDir, 'hooks.json');
815
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexHomeDir);
818
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexHomeDir);
816
819
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
817
820
  platform: 'win32',
818
821
  codexHomeDir,
@@ -830,8 +833,10 @@ describe('omx uninstall', () => {
830
833
  }],
831
834
  },
832
835
  }, null, 2)}\n`;
836
+ await mkdir(dirname(shimPath), { recursive: true });
833
837
  await writeFile(configPath, buildOmxConfig());
834
838
  await writeFile(hooksPath, hooks);
839
+ await mkdir(dirname(shimPath), { recursive: true });
835
840
  await writeFile(shimPath, buildManagedCodexNativeHookWindowsShimContent(packageRoot()));
836
841
  await uninstall({ scope: 'user', transactionPlatform: 'win32' });
837
842
  assert.equal(existsSync(shimPath), true);
@@ -851,11 +856,12 @@ describe('omx uninstall', () => {
851
856
  const codexDir = join(wd, '.codex');
852
857
  const configPath = join(codexDir, 'config.toml');
853
858
  const hooksPath = join(codexDir, 'hooks.json');
854
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
855
- const shimAlias = shimPath
859
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
860
+ const shimPathWindows = buildManagedCodexNativeHookWindowsShimPath(codexDir);
861
+ const shimAlias = shimPathWindows
856
862
  .replace(/[\\/]+hooks[\\/]+/i, '\\hooks\\\\.\\')
857
863
  .replace(/omx-native-hook-windows-shim\.ps1$/i, 'OMX-NATIVE-HOOK-WINDOWS-SHIM.PS1')
858
- .replace(/\\/g, '/');
864
+ .replace(/\\\\/g, '/');
859
865
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
860
866
  platform: 'win32',
861
867
  codexHomeDir: codexDir,
@@ -873,8 +879,10 @@ describe('omx uninstall', () => {
873
879
  },
874
880
  }, null, 2)}\n`;
875
881
  await mkdir(codexDir, { recursive: true });
882
+ await mkdir(dirname(shimPath), { recursive: true });
876
883
  await writeFile(configPath, buildOmxConfig());
877
884
  await writeFile(hooksPath, hooks);
885
+ await mkdir(dirname(shimPath), { recursive: true });
878
886
  await writeFile(shimPath, buildManagedCodexNativeHookWindowsShimContent(packageRoot()));
879
887
  await uninstall({ scope: 'project', transactionPlatform: 'win32' });
880
888
  assert.equal(existsSync(shimPath), true);
@@ -892,7 +900,7 @@ describe('omx uninstall', () => {
892
900
  const codexDir = join(wd, '.codex');
893
901
  const configPath = join(codexDir, 'config.toml');
894
902
  const hooksPath = join(codexDir, 'hooks.json');
895
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
903
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
896
904
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
897
905
  platform: 'win32',
898
906
  codexHomeDir: codexDir,
@@ -940,7 +948,7 @@ describe('omx uninstall', () => {
940
948
  const codexDir = join(wd, '.codex');
941
949
  const configPath = join(codexDir, 'config.toml');
942
950
  const hooksPath = join(codexDir, 'hooks.json');
943
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
951
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
944
952
  const shimAlias = shimPath
945
953
  .replace(/[\\/]+hooks[\\/]+/i, '\\hooks\\\\.\\')
946
954
  .replace(/omx-native-hook-windows-shim\.ps1$/i, 'OMX-NATIVE-HOOK-WINDOWS-SHIM.PS1')
@@ -973,6 +981,7 @@ describe('omx uninstall', () => {
973
981
  const shim = Buffer.from(buildManagedCodexNativeHookWindowsShimContent(packageRoot()), 'utf-8');
974
982
  const replacement = Buffer.from('concurrent shim replacement\n', 'utf-8');
975
983
  await mkdir(codexDir, { recursive: true });
984
+ await mkdir(dirname(shimPath), { recursive: true });
976
985
  await writeFile(configPath, config);
977
986
  await writeFile(hooksPath, hooks);
978
987
  await writeFile(shimPath, shim);
@@ -1012,7 +1021,7 @@ describe('omx uninstall', () => {
1012
1021
  const codexDir = join(wd, '.codex');
1013
1022
  const configPath = join(codexDir, 'config.toml');
1014
1023
  const hooksPath = join(codexDir, 'hooks.json');
1015
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1024
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1016
1025
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
1017
1026
  platform: 'win32',
1018
1027
  codexHomeDir: codexDir,
@@ -1027,6 +1036,7 @@ describe('omx uninstall', () => {
1027
1036
  const config = buildOmxConfig();
1028
1037
  const replacement = Buffer.from('concurrent preserved shim replacement\n', 'utf-8');
1029
1038
  await mkdir(codexDir, { recursive: true });
1039
+ await mkdir(dirname(shimPath), { recursive: true });
1030
1040
  await writeFile(configPath, config);
1031
1041
  await writeFile(hooksPath, hooks);
1032
1042
  await writeFile(shimPath, buildManagedCodexNativeHookWindowsShimContent(packageRoot()));
@@ -1059,7 +1069,7 @@ describe('omx uninstall', () => {
1059
1069
  const codexDir = join(wd, '.codex');
1060
1070
  const configPath = join(codexDir, 'config.toml');
1061
1071
  const hooksPath = join(codexDir, 'hooks.json');
1062
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1072
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1063
1073
  const managed = buildManagedCodexHooksConfig(packageRoot(), {
1064
1074
  platform: 'win32',
1065
1075
  codexHomeDir: codexDir,
@@ -1074,6 +1084,7 @@ describe('omx uninstall', () => {
1074
1084
  const config = buildOmxConfig();
1075
1085
  const replacement = Buffer.from('concurrent finalization shim replacement\n', 'utf-8');
1076
1086
  await mkdir(codexDir, { recursive: true });
1087
+ await mkdir(dirname(shimPath), { recursive: true });
1077
1088
  await writeFile(configPath, config);
1078
1089
  await writeFile(hooksPath, hooks);
1079
1090
  await writeFile(shimPath, buildManagedCodexNativeHookWindowsShimContent(packageRoot()));
@@ -1105,7 +1116,7 @@ describe('omx uninstall', () => {
1105
1116
  const codexDir = join(wd, '.codex');
1106
1117
  const configPath = join(codexDir, 'config.toml');
1107
1118
  const hooksPath = join(codexDir, 'hooks.json');
1108
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1119
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1109
1120
  const config = buildOmxConfig();
1110
1121
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
1111
1122
  platform: 'win32',
@@ -1144,7 +1155,7 @@ describe('omx uninstall', () => {
1144
1155
  const codexDir = join(wd, '.codex');
1145
1156
  const configPath = join(codexDir, 'config.toml');
1146
1157
  const hooksPath = join(codexDir, 'hooks.json');
1147
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1158
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1148
1159
  const config = buildOmxConfig();
1149
1160
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
1150
1161
  platform: 'win32',
@@ -1173,7 +1184,7 @@ describe('omx uninstall', () => {
1173
1184
  const codexDir = join(wd, '.codex');
1174
1185
  const configPath = join(codexDir, 'config.toml');
1175
1186
  const hooksPath = join(codexDir, 'hooks.json');
1176
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1187
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1177
1188
  const config = buildOmxConfig();
1178
1189
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
1179
1190
  platform: 'win32',
@@ -1298,7 +1309,7 @@ describe('omx uninstall', () => {
1298
1309
  const codexDir = join(wd, '.codex');
1299
1310
  const configPath = join(codexDir, 'config.toml');
1300
1311
  const hooksPath = join(codexDir, 'hooks.json');
1301
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1312
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1302
1313
  const replacementPath = join(wd, 'concurrent-user-hooks.json');
1303
1314
  const config = buildOmxConfig();
1304
1315
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
@@ -1627,7 +1638,7 @@ describe('omx uninstall', () => {
1627
1638
  const codexDir = join(wd, '.codex');
1628
1639
  const configPath = join(codexDir, 'config.toml');
1629
1640
  const hooksPath = join(codexDir, 'hooks.json');
1630
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1641
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1631
1642
  const metadataPath = join(codexDir, '.omx', 'notify-dispatch.json');
1632
1643
  const dispatcherPath = join(packageRoot(), 'dist', 'scripts', 'notify-dispatcher.js');
1633
1644
  const hooks = `${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
@@ -1689,7 +1700,7 @@ describe('omx uninstall', () => {
1689
1700
  const codexDir = join(wd, '.codex');
1690
1701
  const configPath = join(codexDir, 'config.toml');
1691
1702
  const hooksPath = join(codexDir, 'hooks.json');
1692
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
1703
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
1693
1704
  const config = Buffer.from(buildOmxConfig(), 'utf-8');
1694
1705
  const hooks = Buffer.from(`${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
1695
1706
  platform: 'win32',
@@ -2699,7 +2710,7 @@ describe('omx uninstall', () => {
2699
2710
  const codexDir = join(wd, '.codex');
2700
2711
  const configPath = join(codexDir, 'config.toml');
2701
2712
  const hooksPath = join(codexDir, 'hooks.json');
2702
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
2713
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
2703
2714
  const stagedShimPath = join(dirname(shimPath), '.shim-preflight-recovery');
2704
2715
  const config = Buffer.from(buildOmxConfig(), 'utf-8');
2705
2716
  const hooks = Buffer.from(`${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
@@ -2741,7 +2752,7 @@ describe('omx uninstall', () => {
2741
2752
  const codexDir = join(wd, '.codex');
2742
2753
  const configPath = join(codexDir, 'config.toml');
2743
2754
  const hooksPath = join(codexDir, 'hooks.json');
2744
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
2755
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
2745
2756
  const foreignConfigPath = join(codexDir, '.foreign-restored-config');
2746
2757
  const config = Buffer.from(buildOmxConfig(), 'utf-8');
2747
2758
  const hooks = Buffer.from(`${JSON.stringify(buildManagedCodexHooksConfig(packageRoot(), {
@@ -2900,7 +2911,7 @@ describe('omx uninstall', () => {
2900
2911
  const codexDir = join(wd, '.codex');
2901
2912
  const configPath = join(codexDir, 'config.toml');
2902
2913
  const hooksPath = join(codexDir, 'hooks.json');
2903
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
2914
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
2904
2915
  await mkdir(codexDir, { recursive: true });
2905
2916
  await mkdir(dirname(shimPath), { recursive: true });
2906
2917
  await writeFile(configPath, buildOmxConfig());
@@ -2951,7 +2962,7 @@ describe('omx uninstall', () => {
2951
2962
  const codexDir = join(wd, '.codex');
2952
2963
  const configPath = join(codexDir, 'config.toml');
2953
2964
  const hooksPath = join(codexDir, 'hooks.json');
2954
- const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexDir);
2965
+ const shimPath = buildManagedCodexNativeHookWindowsShimPathForFilesystem(codexDir);
2955
2966
  await mkdir(codexDir, { recursive: true });
2956
2967
  await mkdir(dirname(shimPath), { recursive: true });
2957
2968
  await writeFile(configPath, buildOmxConfig());