oh-my-codex 0.12.3 → 0.12.5
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.
- package/Cargo.lock +5 -5
- package/Cargo.toml +1 -1
- package/README.md +12 -3
- package/dist/cli/__tests__/doctor-warning-copy.test.js +28 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +117 -16
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +8 -27
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-parity.test.d.ts +2 -0
- package/dist/cli/__tests__/mcp-parity.test.d.ts.map +1 -0
- package/dist/cli/__tests__/mcp-parity.test.js +111 -0
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js +13 -0
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +6 -1
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +189 -0
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +1 -0
- package/dist/cli/__tests__/setup-refresh.test.js +40 -0
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +48 -0
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/state.test.d.ts +2 -0
- package/dist/cli/__tests__/state.test.d.ts.map +1 -0
- package/dist/cli/__tests__/state.test.js +46 -0
- package/dist/cli/__tests__/state.test.js.map +1 -0
- package/dist/cli/__tests__/team.test.js +294 -5
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/uninstall.test.js +37 -2
- package/dist/cli/__tests__/uninstall.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +15 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/explore.d.ts.map +1 -1
- package/dist/cli/explore.js +4 -0
- package/dist/cli/explore.js.map +1 -1
- package/dist/cli/index.d.ts +7 -13
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +71 -64
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-parity.d.ts +22 -0
- package/dist/cli/mcp-parity.d.ts.map +1 -0
- package/dist/cli/mcp-parity.js +227 -0
- package/dist/cli/mcp-parity.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +20 -5
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/state.d.ts +8 -0
- package/dist/cli/state.d.ts.map +1 -0
- package/dist/cli/state.js +71 -0
- package/dist/cli/state.js.map +1 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +45 -10
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +18 -4
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/config/__tests__/codex-hooks.test.d.ts +2 -0
- package/dist/config/__tests__/codex-hooks.test.d.ts.map +1 -0
- package/dist/config/__tests__/codex-hooks.test.js +53 -0
- package/dist/config/__tests__/codex-hooks.test.js.map +1 -0
- package/dist/config/__tests__/generator-idempotent.test.js +59 -0
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/codex-hooks.d.ts +16 -7
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +134 -2
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/config/generator.d.ts +1 -0
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +80 -3
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +21 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +228 -4
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +252 -21
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +131 -67
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +27 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-modules.test.js +52 -12
- package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts +2 -3
- package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts.map +1 -1
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js +18 -23
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js +33 -0
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +162 -7
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/session.test.js +101 -1
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/runtime.test.js +31 -0
- package/dist/hooks/extensibility/__tests__/runtime.test.js.map +1 -1
- package/dist/hooks/extensibility/types.d.ts +1 -0
- package/dist/hooks/extensibility/types.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +6 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +171 -5
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/session.d.ts +14 -2
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +96 -14
- package/dist/hooks/session.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.d.ts +2 -0
- package/dist/hud/__tests__/reconcile.test.d.ts.map +1 -0
- package/dist/hud/__tests__/reconcile.test.js +83 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -0
- package/dist/hud/__tests__/render.test.js +43 -0
- package/dist/hud/__tests__/render.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +84 -2
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/constants.d.ts +2 -1
- package/dist/hud/constants.d.ts.map +1 -1
- package/dist/hud/constants.js +2 -1
- package/dist/hud/constants.js.map +1 -1
- package/dist/hud/index.d.ts +4 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +11 -5
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts +23 -0
- package/dist/hud/reconcile.d.ts.map +1 -0
- package/dist/hud/reconcile.js +71 -0
- package/dist/hud/reconcile.js.map +1 -0
- package/dist/hud/render.d.ts +6 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +77 -3
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +15 -20
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +26 -0
- package/dist/hud/tmux.d.ts.map +1 -0
- package/dist/hud/tmux.js +126 -0
- package/dist/hud/tmux.js.map +1 -0
- package/dist/mcp/__tests__/bootstrap.test.js +24 -1
- package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
- package/dist/mcp/__tests__/server-lifecycle.test.js +3 -0
- package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +30 -2
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server.test.js +384 -0
- package/dist/mcp/__tests__/state-server.test.js.map +1 -1
- package/dist/mcp/bootstrap.d.ts +1 -0
- package/dist/mcp/bootstrap.d.ts.map +1 -1
- package/dist/mcp/bootstrap.js +43 -6
- package/dist/mcp/bootstrap.js.map +1 -1
- package/dist/mcp/code-intel-server.d.ts +298 -0
- package/dist/mcp/code-intel-server.d.ts.map +1 -1
- package/dist/mcp/code-intel-server.js +9 -5
- package/dist/mcp/code-intel-server.js.map +1 -1
- package/dist/mcp/memory-server.d.ts +195 -1
- package/dist/mcp/memory-server.d.ts.map +1 -1
- package/dist/mcp/memory-server.js +9 -5
- package/dist/mcp/memory-server.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +5 -0
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +41 -11
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts +4 -4
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +43 -1
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/mcp/trace-server.d.ts +51 -0
- package/dist/mcp/trace-server.d.ts.map +1 -1
- package/dist/mcp/trace-server.js +9 -5
- package/dist/mcp/trace-server.js.map +1 -1
- package/dist/modes/__tests__/base-autoresearch-contract.test.js +52 -1
- package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
- package/dist/modes/__tests__/base-multi-state-compat.test.d.ts +2 -0
- package/dist/modes/__tests__/base-multi-state-compat.test.d.ts.map +1 -0
- package/dist/modes/__tests__/base-multi-state-compat.test.js +38 -0
- package/dist/modes/__tests__/base-multi-state-compat.test.js.map +1 -0
- package/dist/modes/__tests__/base-tmux-pane.test.js +1 -1
- package/dist/modes/__tests__/base-tmux-pane.test.js.map +1 -1
- package/dist/modes/base.d.ts +2 -1
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +45 -31
- package/dist/modes/base.js.map +1 -1
- package/dist/notifications/__tests__/reply-listener.test.js +19 -0
- package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts +8 -1
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js +7 -5
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +868 -38
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +305 -94
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts +5 -0
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +86 -0
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/notify-fallback-watcher.js +68 -19
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/active-team.d.ts +9 -0
- package/dist/scripts/notify-hook/active-team.d.ts.map +1 -0
- package/dist/scripts/notify-hook/active-team.js +44 -0
- package/dist/scripts/notify-hook/active-team.js.map +1 -0
- package/dist/scripts/notify-hook/auto-nudge.d.ts +5 -3
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +105 -78
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.js +14 -2
- package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
- package/dist/scripts/notify-hook/operational-events.d.ts.map +1 -1
- package/dist/scripts/notify-hook/operational-events.js +28 -2
- package/dist/scripts/notify-hook/operational-events.js.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.js +3 -2
- package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
- package/dist/scripts/notify-hook/state-io.d.ts +10 -1
- package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
- package/dist/scripts/notify-hook/state-io.js +56 -12
- package/dist/scripts/notify-hook/state-io.js.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.js +8 -12
- package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.js +9 -1
- package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
- package/dist/scripts/notify-hook.js +26 -16
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/state/__tests__/operations-ralph-phase.test.d.ts +2 -0
- package/dist/state/__tests__/operations-ralph-phase.test.d.ts.map +1 -0
- package/dist/state/__tests__/operations-ralph-phase.test.js +82 -0
- package/dist/state/__tests__/operations-ralph-phase.test.js.map +1 -0
- package/dist/state/__tests__/operations.test.d.ts +2 -0
- package/dist/state/__tests__/operations.test.d.ts.map +1 -0
- package/dist/state/__tests__/operations.test.js +200 -0
- package/dist/state/__tests__/operations.test.js.map +1 -0
- package/dist/state/__tests__/path-traversal.test.d.ts +2 -0
- package/dist/state/__tests__/path-traversal.test.d.ts.map +1 -0
- package/dist/state/__tests__/path-traversal.test.js +49 -0
- package/dist/state/__tests__/path-traversal.test.js.map +1 -0
- package/dist/state/__tests__/skill-active.test.js +35 -0
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.d.ts +2 -0
- package/dist/state/__tests__/workflow-transition.test.d.ts.map +1 -0
- package/dist/state/__tests__/workflow-transition.test.js +56 -0
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -0
- package/dist/state/operations.d.ts +11 -0
- package/dist/state/operations.d.ts.map +1 -0
- package/dist/state/operations.js +233 -0
- package/dist/state/operations.js.map +1 -0
- package/dist/state/skill-active.d.ts +1 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +118 -33
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.d.ts +15 -0
- package/dist/state/workflow-transition-reconcile.d.ts.map +1 -0
- package/dist/state/workflow-transition-reconcile.js +100 -0
- package/dist/state/workflow-transition-reconcile.js.map +1 -0
- package/dist/state/workflow-transition.d.ts +22 -0
- package/dist/state/workflow-transition.d.ts.map +1 -0
- package/dist/state/workflow-transition.js +188 -0
- package/dist/state/workflow-transition.js.map +1 -0
- package/dist/team/__tests__/api-interop.test.js +24 -2
- package/dist/team/__tests__/api-interop.test.js.map +1 -1
- package/dist/team/__tests__/current-task-baseline.test.d.ts +2 -0
- package/dist/team/__tests__/current-task-baseline.test.d.ts.map +1 -0
- package/dist/team/__tests__/current-task-baseline.test.js +87 -0
- package/dist/team/__tests__/current-task-baseline.test.js.map +1 -0
- package/dist/team/__tests__/delivery-e2e-smoke.test.js +9 -1
- package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -1
- package/dist/team/__tests__/runtime-cli.test.js +45 -0
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +869 -159
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/shutdown-fallback.test.js +11 -1
- package/dist/team/__tests__/shutdown-fallback.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +270 -4
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +2 -1
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/current-task-baseline.d.ts +32 -0
- package/dist/team/current-task-baseline.d.ts.map +1 -0
- package/dist/team/current-task-baseline.js +85 -0
- package/dist/team/current-task-baseline.js.map +1 -0
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +21 -2
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime.d.ts +8 -0
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +400 -138
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +1 -1
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/dispatch.d.ts.map +1 -1
- package/dist/team/state/dispatch.js +9 -0
- package/dist/team/state/dispatch.js.map +1 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +2 -13
- package/dist/team/state.js.map +1 -1
- package/dist/team/tmux-session.d.ts +12 -3
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +120 -15
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worktree.d.ts +2 -0
- package/dist/team/worktree.d.ts.map +1 -1
- package/dist/team/worktree.js +31 -3
- package/dist/team/worktree.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +76 -1
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/paths.d.ts +6 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +14 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +59 -11
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/ralph-persistence-gate.test.js +1 -4
- package/dist/verification/__tests__/ralph-persistence-gate.test.js.map +1 -1
- package/package.json +6 -1
- package/src/scripts/__tests__/codex-native-hook.test.ts +1129 -51
- package/src/scripts/codex-native-hook.ts +391 -101
- package/src/scripts/codex-native-pre-post.ts +104 -0
- package/src/scripts/notify-fallback-watcher.ts +73 -18
- package/src/scripts/notify-hook/active-team.ts +54 -0
- package/src/scripts/notify-hook/auto-nudge.ts +114 -79
- package/src/scripts/notify-hook/managed-tmux.ts +15 -2
- package/src/scripts/notify-hook/operational-events.ts +27 -2
- package/src/scripts/notify-hook/ralph-session-resume.ts +3 -2
- package/src/scripts/notify-hook/state-io.ts +89 -12
- package/src/scripts/notify-hook/team-leader-nudge.ts +9 -11
- package/src/scripts/notify-hook/tmux-injection.ts +9 -1
- package/src/scripts/notify-hook.ts +36 -22
- package/templates/AGENTS.md +3 -4
package/Cargo.lock
CHANGED
|
@@ -32,11 +32,11 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
|
32
32
|
|
|
33
33
|
[[package]]
|
|
34
34
|
name = "omx-explore-harness"
|
|
35
|
-
version = "0.12.
|
|
35
|
+
version = "0.12.5"
|
|
36
36
|
|
|
37
37
|
[[package]]
|
|
38
38
|
name = "omx-mux"
|
|
39
|
-
version = "0.12.
|
|
39
|
+
version = "0.12.5"
|
|
40
40
|
dependencies = [
|
|
41
41
|
"serde",
|
|
42
42
|
"serde_json",
|
|
@@ -44,7 +44,7 @@ dependencies = [
|
|
|
44
44
|
|
|
45
45
|
[[package]]
|
|
46
46
|
name = "omx-runtime"
|
|
47
|
-
version = "0.12.
|
|
47
|
+
version = "0.12.5"
|
|
48
48
|
dependencies = [
|
|
49
49
|
"omx-mux",
|
|
50
50
|
"omx-runtime-core",
|
|
@@ -53,7 +53,7 @@ dependencies = [
|
|
|
53
53
|
|
|
54
54
|
[[package]]
|
|
55
55
|
name = "omx-runtime-core"
|
|
56
|
-
version = "0.12.
|
|
56
|
+
version = "0.12.5"
|
|
57
57
|
dependencies = [
|
|
58
58
|
"fs2",
|
|
59
59
|
"serde",
|
|
@@ -62,7 +62,7 @@ dependencies = [
|
|
|
62
62
|
|
|
63
63
|
[[package]]
|
|
64
64
|
name = "omx-sparkshell"
|
|
65
|
-
version = "0.12.
|
|
65
|
+
version = "0.12.5"
|
|
66
66
|
dependencies = [
|
|
67
67
|
"omx-mux",
|
|
68
68
|
]
|
package/Cargo.toml
CHANGED
package/README.md
CHANGED
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
|
|
18
18
|
OMX is a workflow layer for [OpenAI Codex CLI](https://github.com/openai/codex).
|
|
19
19
|
|
|
20
|
+
<table>
|
|
21
|
+
<tr>
|
|
22
|
+
<td><strong>🚨 CAUTION — RECOMMENDED DEFAULT ONLY: macOS or Linux with Codex CLI.</strong><br><br><strong>OMX is primarily designed and actively tuned for that path.</strong><br><strong>Native Windows and Codex App are not the default experience, may break or behave inconsistently, and currently receive less support.</strong></td>
|
|
23
|
+
</tr>
|
|
24
|
+
</table>
|
|
25
|
+
|
|
20
26
|
It keeps Codex as the execution engine and makes it easier to:
|
|
21
27
|
- start a stronger Codex session by default
|
|
22
28
|
- run one consistent workflow from clarification to completion
|
|
@@ -85,8 +91,8 @@ If you want plain Codex with no extra workflow layer, you probably do not need O
|
|
|
85
91
|
- Node.js 20+
|
|
86
92
|
- Codex CLI installed: `npm install -g @openai/codex`
|
|
87
93
|
- Codex auth configured
|
|
88
|
-
- `tmux` on macOS/Linux if you
|
|
89
|
-
- `psmux` on native Windows if you
|
|
94
|
+
- `tmux` on macOS/Linux if you want the recommended durable team runtime
|
|
95
|
+
- `psmux` on native Windows only if you intentionally want the less-supported Windows team path
|
|
90
96
|
|
|
91
97
|
### A good first session
|
|
92
98
|
|
|
@@ -169,6 +175,8 @@ omx team shutdown <team-name>
|
|
|
169
175
|
|
|
170
176
|
These are operator/support surfaces:
|
|
171
177
|
- `omx setup` installs prompts, skills, AGENTS scaffolding, `.codex/config.toml`, and OMX-managed native Codex hooks in `.codex/hooks.json`
|
|
178
|
+
- setup refresh preserves non-OMX hook entries in `.codex/hooks.json` and only rewrites OMX-managed wrappers
|
|
179
|
+
- `omx uninstall` removes OMX-managed wrappers from `.codex/hooks.json` but keeps the file when user hooks remain
|
|
172
180
|
- `omx doctor` verifies the install when something seems wrong
|
|
173
181
|
- `omx hud --watch` is a monitoring/status surface, not the primary user workflow
|
|
174
182
|
|
|
@@ -194,7 +202,8 @@ omx sparkshell --tmux-pane %12 --tail-lines 400
|
|
|
194
202
|
|
|
195
203
|
### Platform notes for team mode
|
|
196
204
|
|
|
197
|
-
`omx team`
|
|
205
|
+
`omx team` works best on macOS/Linux with `tmux`.
|
|
206
|
+
Native Windows remains a secondary path, and WSL2 is generally the better choice if you want a Windows-hosted setup.
|
|
198
207
|
|
|
199
208
|
| Platform | Install |
|
|
200
209
|
| --- | --- |
|
|
@@ -50,6 +50,34 @@ command = "node"
|
|
|
50
50
|
await rm(wd, { recursive: true, force: true });
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
+
it('warns about retired omx_team_run config left behind after upgrade', async () => {
|
|
54
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-doctor-copy-'));
|
|
55
|
+
try {
|
|
56
|
+
const home = join(wd, 'home');
|
|
57
|
+
const codexDir = join(home, '.codex');
|
|
58
|
+
await mkdir(codexDir, { recursive: true });
|
|
59
|
+
await writeFile(join(codexDir, 'config.toml'), `
|
|
60
|
+
[mcp_servers.omx_team_run]
|
|
61
|
+
command = "node"
|
|
62
|
+
args = ["/tmp/team-server.js"]
|
|
63
|
+
enabled = true
|
|
64
|
+
`.trimStart());
|
|
65
|
+
const res = runOmx(wd, ['doctor'], {
|
|
66
|
+
HOME: home,
|
|
67
|
+
CODEX_HOME: join(home, '.codex'),
|
|
68
|
+
});
|
|
69
|
+
if (shouldSkipForSpawnPermissions(res.error))
|
|
70
|
+
return;
|
|
71
|
+
assert.equal(res.status, 0, res.stderr || res.stdout);
|
|
72
|
+
assert.match(res.stdout, /Config: retired \[mcp_servers\.omx_team_run\] table still present; run "omx setup --force" to repair the config/);
|
|
73
|
+
assert.match(res.stdout, /MCP Servers: 1 servers configured, but retired \[mcp_servers\.omx_team_run\] is not supported; run "omx setup --force" to repair the config/);
|
|
74
|
+
assert.doesNotMatch(res.stdout, /Config: config\.toml has OMX entries/);
|
|
75
|
+
assert.doesNotMatch(res.stdout, /MCP Servers: 1 servers but no OMX servers yet \(expected before first setup; run "omx setup --force" once\)/);
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
await rm(wd, { recursive: true, force: true });
|
|
79
|
+
}
|
|
80
|
+
});
|
|
53
81
|
it('warns when explore harness sources are packaged but cargo is unavailable', async () => {
|
|
54
82
|
const wd = await mkdtemp(join(tmpdir(), 'omx-doctor-explore-copy-'));
|
|
55
83
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-warning-copy.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/doctor-warning-copy.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor-warning-copy.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/doctor-warning-copy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { describe, it } from "node:test";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
|
-
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { execFileSync, spawnSync } from "node:child_process";
|
|
4
4
|
import { chmod, mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { tmpdir } from "node:os";
|
|
7
|
-
import { normalizeCodexLaunchArgs, buildTmuxShellCommand, buildTmuxPaneCommand, buildWindowsPromptCommand, buildTmuxSessionName, resolveCliInvocation, commandOwnsLocalHelp, resolveCodexLaunchPolicy, resolveLeaderLaunchPolicyOverride, classifyCodexExecFailure, resolveSignalExitCode, parseTmuxPaneSnapshot, findHudWatchPaneIds, buildHudPaneCleanupTargets, readTopLevelTomlString, upsertTopLevelTomlString, collectInheritableTeamWorkerArgs, resolveTeamWorkerLaunchArgsEnv, injectModelInstructionsBypassArgs, resolveWorkerSparkModel, resolveSetupScopeArg, readPersistedSetupPreferences, readPersistedSetupScope, resolveCodexHomeForLaunch, buildDetachedSessionBootstrapSteps, buildDetachedTmuxSessionName, buildDetachedSessionFinalizeSteps, buildDetachedSessionRollbackSteps, resolveNotifyTempContract, buildNotifyTempStartupMessages, buildNotifyFallbackWatcherEnv, shouldEnableNotifyFallbackWatcher, reapStaleNotifyFallbackWatcher, cleanupLaunchOrphanedMcpProcesses, reapPostLaunchOrphanedMcpProcesses, cleanupPostLaunchModeStateFiles, resolveBackgroundHelperLaunchMode, shouldDetachBackgroundHelper, resolveNotifyFallbackWatcherScript, resolveHookDerivedWatcherScript, resolveNotifyHookScript, acquireTmuxExtendedKeysLease, releaseTmuxExtendedKeysLease, withTmuxExtendedKeys, } from "../index.js";
|
|
7
|
+
import { normalizeCodexLaunchArgs, buildTmuxShellCommand, buildTmuxPaneCommand, buildWindowsPromptCommand, buildTmuxSessionName, resolveCliInvocation, commandOwnsLocalHelp, resolveCodexLaunchPolicy, resolveLeaderLaunchPolicyOverride, classifyCodexExecFailure, resolveSignalExitCode, parseTmuxPaneSnapshot, findHudWatchPaneIds, buildHudPaneCleanupTargets, readTopLevelTomlString, upsertTopLevelTomlString, collectInheritableTeamWorkerArgs, resolveTeamWorkerLaunchArgsEnv, injectModelInstructionsBypassArgs, resolveWorkerSparkModel, resolveSetupScopeArg, readPersistedSetupPreferences, readPersistedSetupScope, resolveCodexConfigPathForLaunch, resolveCodexHomeForLaunch, buildDetachedSessionBootstrapSteps, buildDetachedTmuxSessionName, buildDetachedSessionFinalizeSteps, buildDetachedSessionRollbackSteps, resolveNotifyTempContract, buildNotifyTempStartupMessages, buildNotifyFallbackWatcherEnv, shouldEnableNotifyFallbackWatcher, reapStaleNotifyFallbackWatcher, cleanupLaunchOrphanedMcpProcesses, reapPostLaunchOrphanedMcpProcesses, cleanupPostLaunchModeStateFiles, resolveBackgroundHelperLaunchMode, shouldDetachBackgroundHelper, resolveNotifyFallbackWatcherScript, resolveHookDerivedWatcherScript, resolveNotifyHookScript, acquireTmuxExtendedKeysLease, releaseTmuxExtendedKeysLease, withTmuxExtendedKeys, } from "../index.js";
|
|
8
8
|
import { HUD_TMUX_HEIGHT_LINES } from "../../hud/constants.js";
|
|
9
9
|
import { DEFAULT_FRONTIER_MODEL, getTeamLowComplexityModel, } from "../../config/models.js";
|
|
10
10
|
function expectedLowComplexityModel(codexHomeOverride) {
|
|
@@ -701,6 +701,17 @@ describe("project launch scope helpers", () => {
|
|
|
701
701
|
await rm(wd, { recursive: true, force: true });
|
|
702
702
|
}
|
|
703
703
|
});
|
|
704
|
+
it("uses project config.toml for launch repair when persisted scope is project", async () => {
|
|
705
|
+
const wd = await mkdtemp(join(tmpdir(), "omx-launch-scope-"));
|
|
706
|
+
try {
|
|
707
|
+
await mkdir(join(wd, ".omx"), { recursive: true });
|
|
708
|
+
await writeFile(join(wd, ".omx", "setup-scope.json"), JSON.stringify({ scope: "project" }));
|
|
709
|
+
assert.equal(resolveCodexConfigPathForLaunch(wd, {}), join(wd, ".codex", "config.toml"));
|
|
710
|
+
}
|
|
711
|
+
finally {
|
|
712
|
+
await rm(wd, { recursive: true, force: true });
|
|
713
|
+
}
|
|
714
|
+
});
|
|
704
715
|
it("keeps explicit CODEX_HOME override from env", async () => {
|
|
705
716
|
const wd = await mkdtemp(join(tmpdir(), "omx-launch-scope-"));
|
|
706
717
|
try {
|
|
@@ -714,6 +725,19 @@ describe("project launch scope helpers", () => {
|
|
|
714
725
|
await rm(wd, { recursive: true, force: true });
|
|
715
726
|
}
|
|
716
727
|
});
|
|
728
|
+
it("uses explicit CODEX_HOME config.toml for launch repair overrides", async () => {
|
|
729
|
+
const wd = await mkdtemp(join(tmpdir(), "omx-launch-scope-"));
|
|
730
|
+
try {
|
|
731
|
+
await mkdir(join(wd, ".omx"), { recursive: true });
|
|
732
|
+
await writeFile(join(wd, ".omx", "setup-scope.json"), JSON.stringify({ scope: "project" }));
|
|
733
|
+
assert.equal(resolveCodexConfigPathForLaunch(wd, {
|
|
734
|
+
CODEX_HOME: "/tmp/explicit-codex-home",
|
|
735
|
+
}), "/tmp/explicit-codex-home/config.toml");
|
|
736
|
+
}
|
|
737
|
+
finally {
|
|
738
|
+
await rm(wd, { recursive: true, force: true });
|
|
739
|
+
}
|
|
740
|
+
});
|
|
717
741
|
it('migrates legacy "project-local" persisted scope to "project"', async () => {
|
|
718
742
|
const wd = await mkdtemp(join(tmpdir(), "omx-launch-scope-"));
|
|
719
743
|
try {
|
|
@@ -885,20 +909,22 @@ describe("detached tmux new-session sequencing", () => {
|
|
|
885
909
|
assert.equal(steps[1]?.name, "split-and-capture-hud-pane");
|
|
886
910
|
assert.equal(steps[1]?.args.at(-1), hudCmd);
|
|
887
911
|
});
|
|
888
|
-
it("buildDetachedSessionBootstrapSteps kills detached tmux session on
|
|
912
|
+
it("buildDetachedSessionBootstrapSteps kills detached tmux session on normal shell exit", () => {
|
|
889
913
|
const steps = buildDetachedSessionBootstrapSteps("omx-demo", "/tmp/project", "'codex' '--model' 'gpt-5'", "'node' '/tmp/omx.js' 'hud' '--watch'", null);
|
|
890
914
|
const leaderCmd = steps[0]?.args.at(-1);
|
|
891
915
|
assert.equal(typeof leaderCmd, "string");
|
|
892
|
-
assert.match(leaderCmd, /^\/bin\/sh -
|
|
916
|
+
assert.match(leaderCmd, /^\/bin\/sh -c '/);
|
|
917
|
+
assert.doesNotMatch(leaderCmd, /^\/bin\/sh -lc '/);
|
|
893
918
|
assert.match(leaderCmd, /acquireTmuxExtendedKeysLease/);
|
|
894
919
|
assert.match(leaderCmd, /omx_detached_session_cleanup\(\)/);
|
|
895
|
-
assert.match(leaderCmd, /trap omx_detached_session_cleanup 0
|
|
920
|
+
assert.match(leaderCmd, /trap omx_detached_session_cleanup 0;/);
|
|
896
921
|
assert.match(leaderCmd, /releaseTmuxExtendedKeysLease/);
|
|
922
|
+
assert.match(leaderCmd, /if \[ "\$status" -lt 128 \]; then/);
|
|
897
923
|
assert.match(leaderCmd, /tmux kill-session -t/);
|
|
898
924
|
assert.match(leaderCmd, /"omx-demo"/);
|
|
899
925
|
assert.match(leaderCmd, /exit \$status/);
|
|
900
926
|
});
|
|
901
|
-
it("detached leader command
|
|
927
|
+
it("detached leader command preserves cwd and cleanup without shell-quote breakage", async () => {
|
|
902
928
|
const cwd = await mkdtemp(join(tmpdir(), "omx-detached-leader-"));
|
|
903
929
|
const fakeBin = join(cwd, "bin");
|
|
904
930
|
const logPath = join(cwd, "leader.log");
|
|
@@ -906,9 +932,11 @@ describe("detached tmux new-session sequencing", () => {
|
|
|
906
932
|
await mkdir(fakeBin, { recursive: true });
|
|
907
933
|
await writeFile(join(fakeBin, "codex"), `#!/bin/sh
|
|
908
934
|
printf 'codex:%s\\n' "$*" >> "${logPath}"
|
|
935
|
+
printf 'codex-pwd:%s\\n' "$(pwd)" >> "${logPath}"
|
|
909
936
|
exit 0
|
|
910
937
|
`);
|
|
911
938
|
await chmod(join(fakeBin, "codex"), 0o755);
|
|
939
|
+
await writeFile(join(cwd, ".profile"), "cd ..\n");
|
|
912
940
|
await writeFile(join(fakeBin, "tmux"), `#!/bin/sh
|
|
913
941
|
printf 'tmux:%s\\n' "$*" >> "${logPath}"
|
|
914
942
|
case "$1" in
|
|
@@ -931,7 +959,7 @@ exit 0
|
|
|
931
959
|
const steps = buildDetachedSessionBootstrapSteps("omx-demo", cwd, buildTmuxPaneCommand("codex", ["--dangerously-bypass-approvals-and-sandbox"], "/bin/sh"), "'node' '/tmp/omx.js' 'hud' '--watch'", null);
|
|
932
960
|
const leaderCmd = steps[0]?.args.at(-1);
|
|
933
961
|
assert.equal(typeof leaderCmd, "string");
|
|
934
|
-
execFileSync("/bin/sh", ["-
|
|
962
|
+
execFileSync("/bin/sh", ["-c", leaderCmd], {
|
|
935
963
|
cwd,
|
|
936
964
|
env: {
|
|
937
965
|
...process.env,
|
|
@@ -942,6 +970,7 @@ exit 0
|
|
|
942
970
|
});
|
|
943
971
|
const log = await readFile(logPath, "utf-8");
|
|
944
972
|
assert.match(log, /codex:--dangerously-bypass-approvals-and-sandbox/);
|
|
973
|
+
assert.match(log, new RegExp(`codex-pwd:${cwd.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`));
|
|
945
974
|
assert.match(log, /tmux:display-message -p #\{socket_path\}/);
|
|
946
975
|
assert.match(log, /tmux:show-options -sv extended-keys/);
|
|
947
976
|
assert.match(log, /tmux:set-option -sq extended-keys always/);
|
|
@@ -952,6 +981,61 @@ exit 0
|
|
|
952
981
|
await rm(cwd, { recursive: true, force: true });
|
|
953
982
|
}
|
|
954
983
|
});
|
|
984
|
+
it("detached leader command preserves the detached tmux session on signal-derived exits", async () => {
|
|
985
|
+
const cwd = await mkdtemp(join(tmpdir(), "omx-detached-leader-signal-"));
|
|
986
|
+
const fakeBin = join(cwd, "bin");
|
|
987
|
+
const logPath = join(cwd, "leader.log");
|
|
988
|
+
try {
|
|
989
|
+
await mkdir(fakeBin, { recursive: true });
|
|
990
|
+
await writeFile(join(fakeBin, "codex"), `#!/bin/sh
|
|
991
|
+
printf 'codex:%s\\n' "$*" >> "${logPath}"
|
|
992
|
+
exit 143
|
|
993
|
+
`);
|
|
994
|
+
await chmod(join(fakeBin, "codex"), 0o755);
|
|
995
|
+
await writeFile(join(fakeBin, "tmux"), `#!/bin/sh
|
|
996
|
+
printf 'tmux:%s\\n' "$*" >> "${logPath}"
|
|
997
|
+
case "$1" in
|
|
998
|
+
display-message)
|
|
999
|
+
if [ "$3" = '#{socket_path}' ] || [ "$4" = '#{socket_path}' ]; then
|
|
1000
|
+
printf '/tmp/tmux-test.sock\\n'
|
|
1001
|
+
else
|
|
1002
|
+
printf '0\\n'
|
|
1003
|
+
fi
|
|
1004
|
+
;;
|
|
1005
|
+
show-options)
|
|
1006
|
+
printf 'off\\n'
|
|
1007
|
+
;;
|
|
1008
|
+
set-option|kill-session)
|
|
1009
|
+
;;
|
|
1010
|
+
esac
|
|
1011
|
+
exit 0
|
|
1012
|
+
`);
|
|
1013
|
+
await chmod(join(fakeBin, "tmux"), 0o755);
|
|
1014
|
+
const steps = buildDetachedSessionBootstrapSteps("omx-demo", cwd, buildTmuxPaneCommand("codex", ["--dangerously-bypass-approvals-and-sandbox"], "/bin/sh"), "'node' '/tmp/omx.js' 'hud' '--watch'", null);
|
|
1015
|
+
const leaderCmd = steps[0]?.args.at(-1);
|
|
1016
|
+
assert.equal(typeof leaderCmd, "string");
|
|
1017
|
+
const result = spawnSync("/bin/sh", ["-lc", leaderCmd], {
|
|
1018
|
+
cwd,
|
|
1019
|
+
env: {
|
|
1020
|
+
...process.env,
|
|
1021
|
+
PATH: `${fakeBin}:/usr/bin:/bin`,
|
|
1022
|
+
HOME: cwd,
|
|
1023
|
+
},
|
|
1024
|
+
encoding: "utf-8",
|
|
1025
|
+
});
|
|
1026
|
+
assert.equal(result.status, 143);
|
|
1027
|
+
const log = await readFile(logPath, "utf-8");
|
|
1028
|
+
assert.match(log, /codex:--dangerously-bypass-approvals-and-sandbox/);
|
|
1029
|
+
assert.match(log, /tmux:display-message -p #\{socket_path\}/);
|
|
1030
|
+
assert.match(log, /tmux:show-options -sv extended-keys/);
|
|
1031
|
+
assert.match(log, /tmux:set-option -sq extended-keys always/);
|
|
1032
|
+
assert.match(log, /tmux:set-option -sq extended-keys off/);
|
|
1033
|
+
assert.doesNotMatch(log, /tmux:kill-session -t omx-demo/);
|
|
1034
|
+
}
|
|
1035
|
+
finally {
|
|
1036
|
+
await rm(cwd, { recursive: true, force: true });
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
955
1039
|
it("withTmuxExtendedKeys enables tmux extended keys during codex launch and restores them afterwards", async () => {
|
|
956
1040
|
const cwd = await mkdtemp(join(tmpdir(), "omx-tmux-lease-wrapper-"));
|
|
957
1041
|
const calls = [];
|
|
@@ -1051,7 +1135,14 @@ exit 0
|
|
|
1051
1135
|
});
|
|
1052
1136
|
it("buildDetachedSessionFinalizeSteps skips detached resize hooks on native Windows", () => {
|
|
1053
1137
|
const steps = buildDetachedSessionFinalizeSteps("omx-demo", "%12", "3", true, true);
|
|
1054
|
-
assert.deepEqual(steps.map((step) => step.name), ["set-mouse", "attach-session"]);
|
|
1138
|
+
assert.deepEqual(steps.map((step) => step.name), ["set-mouse", "sanitize-copy-mode-style", "attach-session"]);
|
|
1139
|
+
});
|
|
1140
|
+
it("buildDetachedSessionFinalizeSteps sanitizes copy-mode styling before attach when mouse mode is enabled", () => {
|
|
1141
|
+
const steps = buildDetachedSessionFinalizeSteps("omx-demo", "%12", "3", true);
|
|
1142
|
+
assert.equal(steps.findIndex((step) => step.name === "sanitize-copy-mode-style")
|
|
1143
|
+
> steps.findIndex((step) => step.name === "set-mouse"), true);
|
|
1144
|
+
assert.equal(steps.findIndex((step) => step.name === "attach-session")
|
|
1145
|
+
> steps.findIndex((step) => step.name === "sanitize-copy-mode-style"), true);
|
|
1055
1146
|
});
|
|
1056
1147
|
it("buildDetachedSessionFinalizeSteps never appends server-global terminal-overrides", () => {
|
|
1057
1148
|
const steps = buildDetachedSessionFinalizeSteps("omx-demo", "%12", "3", true);
|
|
@@ -1088,27 +1179,37 @@ describe("buildTmuxShellCommand", () => {
|
|
|
1088
1179
|
});
|
|
1089
1180
|
});
|
|
1090
1181
|
describe("buildTmuxPaneCommand", () => {
|
|
1091
|
-
it("wraps command with zsh profile sourcing
|
|
1182
|
+
it("wraps command with zsh profile sourcing while preserving tmux cwd", () => {
|
|
1092
1183
|
const result = buildTmuxPaneCommand("codex", ["--model", "gpt-5"], "/usr/bin/zsh");
|
|
1093
|
-
assert.ok(result.startsWith("'/usr/bin/zsh' -
|
|
1184
|
+
assert.ok(result.startsWith("'/usr/bin/zsh' -c "), "should start with zsh non-login shell to preserve tmux cwd");
|
|
1185
|
+
assert.ok(!result.includes(" -lc "), "should not use a login shell");
|
|
1094
1186
|
assert.ok(result.includes("source ~/.zshrc"), "should source .zshrc");
|
|
1095
1187
|
assert.ok(result.includes("exec "), "should exec the command");
|
|
1096
1188
|
});
|
|
1097
|
-
it("
|
|
1189
|
+
it("keeps Homebrew zsh instead of downgrading to /bin/sh", () => {
|
|
1190
|
+
const result = buildTmuxPaneCommand("codex", ["--model", "gpt-5"], "/opt/homebrew/bin/zsh");
|
|
1191
|
+
assert.ok(result.startsWith("'/opt/homebrew/bin/zsh' -c "), "should preserve Homebrew zsh when SHELL points to it");
|
|
1192
|
+
assert.ok(!result.startsWith("'/bin/sh' -c "), "should not fall back to /bin/sh for supported Homebrew zsh");
|
|
1193
|
+
assert.ok(result.includes("source ~/.zshrc"), "should source .zshrc");
|
|
1194
|
+
});
|
|
1195
|
+
it("wraps command with bash profile sourcing while preserving tmux cwd", () => {
|
|
1098
1196
|
const result = buildTmuxPaneCommand("codex", [], "/bin/bash");
|
|
1099
|
-
assert.ok(result.startsWith("'/bin/bash' -
|
|
1197
|
+
assert.ok(result.startsWith("'/bin/bash' -c "), "should start with bash non-login shell to preserve tmux cwd");
|
|
1198
|
+
assert.ok(!result.includes(" -lc "), "should not use a login shell");
|
|
1100
1199
|
assert.ok(result.includes("source ~/.bashrc"), "should source .bashrc");
|
|
1101
1200
|
assert.ok(result.includes("exec "), "should exec the command");
|
|
1102
1201
|
});
|
|
1103
|
-
it("skips rc sourcing for unknown shells
|
|
1202
|
+
it("skips rc sourcing for unknown shells without using a login shell", () => {
|
|
1104
1203
|
const result = buildTmuxPaneCommand("codex", [], "/bin/fish");
|
|
1105
|
-
assert.ok(result.startsWith("'/bin/fish' -
|
|
1204
|
+
assert.ok(result.startsWith("'/bin/fish' -c "), "should start with fish non-login shell");
|
|
1205
|
+
assert.ok(!result.includes(" -lc "), "should not use a login shell");
|
|
1106
1206
|
assert.ok(!result.includes("source"), "should not source any rc file");
|
|
1107
1207
|
assert.ok(result.includes("exec "), "should exec the command");
|
|
1108
1208
|
});
|
|
1109
|
-
it("falls back to /bin/sh when shell path is empty", () => {
|
|
1209
|
+
it("falls back to /bin/sh without using a login shell when shell path is empty", () => {
|
|
1110
1210
|
const result = buildTmuxPaneCommand("codex", [], "");
|
|
1111
|
-
assert.ok(result.startsWith("'/bin/sh' -
|
|
1211
|
+
assert.ok(result.startsWith("'/bin/sh' -c "), "should fall back to /bin/sh");
|
|
1212
|
+
assert.ok(!result.includes(" -lc "), "should not use a login shell");
|
|
1112
1213
|
});
|
|
1113
1214
|
});
|
|
1114
1215
|
describe("buildWindowsPromptCommand", () => {
|