oh-my-codex 0.21.37 → 0.21.39

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.
Files changed (46) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/dist/cli/__tests__/doctor-warning-copy.test.js +53 -0
  4. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  5. package/dist/cli/__tests__/index.test.js +2 -2
  6. package/dist/cli/__tests__/index.test.js.map +1 -1
  7. package/dist/cli/__tests__/launch-fallback.test.js +55 -4
  8. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  9. package/dist/cli/__tests__/session-search-help.test.js +2 -2
  10. package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
  11. package/dist/cli/__tests__/setup-install-mode.test.js +122 -0
  12. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  13. package/dist/cli/__tests__/setup-refresh.test.js +2 -2
  14. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  15. package/dist/cli/__tests__/team.test.js +17 -12
  16. package/dist/cli/__tests__/team.test.js.map +1 -1
  17. package/dist/cli/index.d.ts.map +1 -1
  18. package/dist/cli/index.js +3 -1
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/config/__tests__/models.test.js +2 -1
  21. package/dist/config/__tests__/models.test.js.map +1 -1
  22. package/dist/config/generator.d.ts.map +1 -1
  23. package/dist/config/generator.js +25 -4
  24. package/dist/config/generator.js.map +1 -1
  25. package/dist/config/models.d.ts +1 -1
  26. package/dist/config/models.d.ts.map +1 -1
  27. package/dist/config/models.js +1 -1
  28. package/dist/config/models.js.map +1 -1
  29. package/dist/scripts/__tests__/run-test-files.test.js +192 -2
  30. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  31. package/dist/scripts/run-test-files.js +33 -14
  32. package/dist/scripts/run-test-files.js.map +1 -1
  33. package/dist/team/__tests__/runtime.test.js +32 -4
  34. package/dist/team/__tests__/runtime.test.js.map +1 -1
  35. package/dist/team/__tests__/state-root.test.js +5 -5
  36. package/dist/team/__tests__/state-root.test.js.map +1 -1
  37. package/dist/vscode/__tests__/index.test.js +82 -20
  38. package/dist/vscode/__tests__/index.test.js.map +1 -1
  39. package/dist/vscode/index.d.ts +2 -0
  40. package/dist/vscode/index.d.ts.map +1 -1
  41. package/dist/vscode/index.js +3 -3
  42. package/dist/vscode/index.js.map +1 -1
  43. package/package.json +1 -1
  44. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  45. package/src/scripts/__tests__/run-test-files.test.ts +193 -2
  46. package/src/scripts/run-test-files.ts +31 -14
@@ -477,10 +477,13 @@ case "$1" in
477
477
  esac
478
478
  ;;
479
479
  capture-pane)
480
- count=0
481
- [ -f "${tmuxLogPath}.capture-count" ] && count=$(cat "${tmuxLogPath}.capture-count")
482
- count=$((count + 1))
483
- printf '%s' "$count" > "${tmuxLogPath}.capture-count"
480
+ # Scrollback and visible captures can run concurrently. Claim a unique
481
+ # ordinal atomically instead of racing a shared read/overwrite counter.
482
+ count=1
483
+ while ! mkdir "${tmuxLogPath}.capture-$count" 2>/dev/null; do
484
+ [ -d "${tmuxLogPath}.capture-$count" ] || exit 1
485
+ count=$((count + 1))
486
+ done
484
487
  if [ "${'$'}{OMX_MDM_CAPTURE_MODE:-direct}" = detailed ] && [ "$count" -lt 5 ]; then
485
488
  printf 'OpenAI Codex\\nmodel: test\\ndirectory: /tmp/demo\\n'
486
489
  else
@@ -3259,6 +3262,31 @@ esac
3259
3262
  await rm(cwd, { recursive: true, force: true });
3260
3263
  }
3261
3264
  });
3265
+ it('emits exactly four benign detailed-MDM captures before markers under concurrent probes', async () => {
3266
+ const marker = 'MDM_POLICY_REJECTED: approval_policy=never forbids --dangerously-bypass-approvals-and-sandbox';
3267
+ await withMockTmuxFixture({
3268
+ dirPrefix: 'omx-runtime-codex-mdm-concurrent-bin-',
3269
+ tmuxScript: codexMdmTmuxScript(marker),
3270
+ env: { OMX_MDM_CAPTURE_MODE: 'detailed' },
3271
+ }, async () => {
3272
+ const captures = await Promise.all(Array.from({ length: 16 }, () => new Promise((resolve, reject) => {
3273
+ const child = spawn('tmux', ['capture-pane', '-t', '%2', '-p']);
3274
+ let stdout = '';
3275
+ let stderr = '';
3276
+ child.stdout.on('data', (chunk) => { stdout += String(chunk); });
3277
+ child.stderr.on('data', (chunk) => { stderr += String(chunk); });
3278
+ child.once('error', reject);
3279
+ child.once('close', (code) => {
3280
+ if (code === 0)
3281
+ resolve(stdout.trim());
3282
+ else
3283
+ reject(new Error(`mock capture failed (${code}): ${stderr}`));
3284
+ });
3285
+ })));
3286
+ assert.equal(captures.filter((capture) => capture.startsWith('OpenAI Codex\n')).length, 4);
3287
+ assert.equal(captures.filter((capture) => capture === marker).length, 12);
3288
+ });
3289
+ });
3262
3290
  it('terminates attached Codex startup on the first exact MDM bypass marker without dispatch or retry', async () => {
3263
3291
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-codex-mdm-direct-'));
3264
3292
  const teamName = `codex-mdm-${process.pid}-${Date.now().toString(36)}`;