oh-my-codex 0.12.3 → 0.12.4
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 +2 -0
- package/dist/cli/__tests__/index.test.js +73 -12
- 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-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 +238 -2
- 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/index.d.ts +6 -13
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +47 -60
- 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 +5 -2
- 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 +6 -5
- 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/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/hooks/__tests__/keyword-detector.test.js +6 -0
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +6 -0
- package/dist/hooks/keyword-detector.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/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/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/bootstrap.d.ts.map +1 -1
- package/dist/mcp/bootstrap.js +16 -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/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/scripts/__tests__/codex-native-hook.test.js +455 -8
- 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 +159 -52
- 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-hook/operational-events.d.ts.map +1 -1
- package/dist/scripts/notify-hook/operational-events.js +7 -2
- package/dist/scripts/notify-hook/operational-events.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/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/team/__tests__/api-interop.test.js +24 -2
- package/dist/team/__tests__/api-interop.test.js.map +1 -1
- 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 +191 -66
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +33 -0
- 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/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 +179 -78
- package/dist/team/runtime.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/tmux-session.js +3 -3
- 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 +7 -1
- 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 +600 -8
- package/src/scripts/codex-native-hook.ts +236 -60
- package/src/scripts/codex-native-pre-post.ts +104 -0
- package/src/scripts/notify-hook/operational-events.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-cli.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/runtime-cli.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-cli.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/runtime-cli.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,24 @@ async function addWorktree(repo, branchName, pathPrefix) {
|
|
|
25
25
|
execFileSync('git', ['worktree', 'add', '-b', branchName, worktreePath, 'HEAD'], { cwd: repo, stdio: 'ignore' });
|
|
26
26
|
return worktreePath;
|
|
27
27
|
}
|
|
28
|
+
async function attachDirtyWorkerRepo(teamName, cwd, repoName) {
|
|
29
|
+
const repo = join(cwd, repoName);
|
|
30
|
+
await mkdir(repo, { recursive: true });
|
|
31
|
+
execFileSync('git', ['init'], { cwd: repo, stdio: 'ignore' });
|
|
32
|
+
execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd: repo, stdio: 'ignore' });
|
|
33
|
+
execFileSync('git', ['config', 'user.name', 'Test User'], { cwd: repo, stdio: 'ignore' });
|
|
34
|
+
await writeFile(join(repo, 'README.md'), 'hello\n', 'utf-8');
|
|
35
|
+
execFileSync('git', ['add', 'README.md'], { cwd: repo, stdio: 'ignore' });
|
|
36
|
+
execFileSync('git', ['commit', '-m', 'init'], { cwd: repo, stdio: 'ignore' });
|
|
37
|
+
await writeFile(join(repo, 'DIRTY.txt'), 'dirty\n', 'utf-8');
|
|
38
|
+
const config = await readTeamConfig(teamName, cwd);
|
|
39
|
+
assert.ok(config, 'team config should exist');
|
|
40
|
+
if (!config)
|
|
41
|
+
throw new Error('missing config');
|
|
42
|
+
config.workers[0].worktree_repo_root = repo;
|
|
43
|
+
config.workers[0].worktree_path = repo;
|
|
44
|
+
await saveTeamConfig(config, cwd);
|
|
45
|
+
}
|
|
28
46
|
function expectedLowComplexityModel(codexHomeOverride) {
|
|
29
47
|
return resolveTeamLowComplexityDefaultModel(codexHomeOverride);
|
|
30
48
|
}
|
|
@@ -101,6 +119,58 @@ async function waitForFileText(filePath, matcher, timeoutMs = 3_000) {
|
|
|
101
119
|
}
|
|
102
120
|
throw new Error(`timed out waiting for ${filePath}`);
|
|
103
121
|
}
|
|
122
|
+
async function writeFakePromptWorkerBinary(binaryPath, scriptBody, options = {}) {
|
|
123
|
+
const bootstrap = options.emitStartupEvidence === false
|
|
124
|
+
? ''
|
|
125
|
+
: `
|
|
126
|
+
const fs = require('fs');
|
|
127
|
+
const path = require('path');
|
|
128
|
+
const stateRoot = process.env.OMX_TEAM_STATE_ROOT;
|
|
129
|
+
const worker = String(process.env.OMX_TEAM_WORKER || '');
|
|
130
|
+
const [teamName, workerName] = worker.split('/');
|
|
131
|
+
if (stateRoot && teamName && workerName) {
|
|
132
|
+
const workerDir = path.join(stateRoot, 'team', teamName, 'workers', workerName);
|
|
133
|
+
fs.mkdirSync(workerDir, { recursive: true });
|
|
134
|
+
fs.writeFileSync(path.join(workerDir, 'status.json'), JSON.stringify({
|
|
135
|
+
state: 'working',
|
|
136
|
+
current_task_id: '1',
|
|
137
|
+
updated_at: new Date().toISOString(),
|
|
138
|
+
}, null, 2));
|
|
139
|
+
}
|
|
140
|
+
`;
|
|
141
|
+
await writeFile(binaryPath, `#!/usr/bin/env node
|
|
142
|
+
${bootstrap}
|
|
143
|
+
${scriptBody}
|
|
144
|
+
`, { mode: 0o755 });
|
|
145
|
+
}
|
|
146
|
+
async function withPromptModeCodexEnv(binDir, extraEnv, run) {
|
|
147
|
+
const previous = new Map();
|
|
148
|
+
const nextEnv = {
|
|
149
|
+
PATH: `${binDir}:${process.env.PATH ?? ''}`,
|
|
150
|
+
TMUX: undefined,
|
|
151
|
+
OMX_TEAM_WORKER_LAUNCH_MODE: 'prompt',
|
|
152
|
+
OMX_TEAM_WORKER_CLI: 'codex',
|
|
153
|
+
...extraEnv,
|
|
154
|
+
};
|
|
155
|
+
for (const [key, value] of Object.entries(nextEnv)) {
|
|
156
|
+
previous.set(key, process.env[key]);
|
|
157
|
+
if (typeof value === 'string')
|
|
158
|
+
process.env[key] = value;
|
|
159
|
+
else
|
|
160
|
+
delete process.env[key];
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
return await run();
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
for (const [key, value] of previous) {
|
|
167
|
+
if (typeof value === 'string')
|
|
168
|
+
process.env[key] = value;
|
|
169
|
+
else
|
|
170
|
+
delete process.env[key];
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
104
174
|
function teamStateTestPath(cwd, ...parts) {
|
|
105
175
|
const stateRoot = process.env.OMX_TEAM_STATE_ROOT ?? join(cwd, '.omx', 'state');
|
|
106
176
|
return join(stateRoot, ...parts);
|
|
@@ -572,7 +642,8 @@ sleep 5
|
|
|
572
642
|
assert.equal(shouldPrekillInteractiveShutdownProcessTrees('leader:0'), false);
|
|
573
643
|
assert.equal(shouldPrekillInteractiveShutdownProcessTrees('omx-team-alpha'), true);
|
|
574
644
|
});
|
|
575
|
-
assert.equal(shouldPrekillInteractiveShutdownProcessTrees('leader:0'),
|
|
645
|
+
assert.equal(shouldPrekillInteractiveShutdownProcessTrees('leader:0'), false);
|
|
646
|
+
assert.equal(shouldPrekillInteractiveShutdownProcessTrees('omx-team-alpha'), true);
|
|
576
647
|
});
|
|
577
648
|
it('startTeam accepts native Windows tmux clients even when TMUX env vars are absent', async () => {
|
|
578
649
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-win32-no-env-'));
|
|
@@ -1643,28 +1714,22 @@ process.on('SIGTERM', () => process.exit(0));
|
|
|
1643
1714
|
const binDir = join(cwd, 'bin');
|
|
1644
1715
|
const fakeCodexPath = join(binDir, 'codex');
|
|
1645
1716
|
await mkdir(binDir, { recursive: true });
|
|
1646
|
-
await
|
|
1717
|
+
await writeFakePromptWorkerBinary(fakeCodexPath, `
|
|
1647
1718
|
process.stdin.resume();
|
|
1648
1719
|
setInterval(() => {}, 1000);
|
|
1649
1720
|
process.on('SIGTERM', () => {
|
|
1650
1721
|
// Intentionally ignore SIGTERM so runtime teardown must escalate.
|
|
1651
1722
|
});
|
|
1652
|
-
|
|
1653
|
-
const prevPath = process.env.PATH;
|
|
1654
|
-
const prevTmux = process.env.TMUX;
|
|
1655
|
-
const prevLaunchMode = process.env.OMX_TEAM_WORKER_LAUNCH_MODE;
|
|
1656
|
-
const prevWorkerCli = process.env.OMX_TEAM_WORKER_CLI;
|
|
1657
|
-
process.env.PATH = `${binDir}:${prevPath ?? ''}`;
|
|
1658
|
-
delete process.env.TMUX;
|
|
1659
|
-
process.env.OMX_TEAM_WORKER_LAUNCH_MODE = 'prompt';
|
|
1660
|
-
process.env.OMX_TEAM_WORKER_CLI = 'codex';
|
|
1723
|
+
`);
|
|
1661
1724
|
let runtime = null;
|
|
1662
1725
|
let workerPid = 0;
|
|
1663
1726
|
try {
|
|
1664
|
-
runtime = await withoutTeamWorkerEnv(() => startTeam('team-prompt-stubborn', 'prompt-mode stubborn worker teardown', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd));
|
|
1727
|
+
runtime = await withPromptModeCodexEnv(binDir, {}, () => withoutTeamWorkerEnv(() => startTeam('team-prompt-stubborn', 'prompt-mode stubborn worker teardown', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd)));
|
|
1665
1728
|
workerPid = runtime.config.workers[0]?.pid ?? 0;
|
|
1666
1729
|
assert.ok(workerPid > 0, 'prompt worker PID should be captured');
|
|
1730
|
+
const shutdownStartedAt = Date.now();
|
|
1667
1731
|
await shutdownTeam(runtime.teamName, cwd, { force: true });
|
|
1732
|
+
const shutdownDurationMs = Date.now() - shutdownStartedAt;
|
|
1668
1733
|
runtime = null;
|
|
1669
1734
|
let alive = false;
|
|
1670
1735
|
try {
|
|
@@ -1675,27 +1740,12 @@ process.on('SIGTERM', () => {
|
|
|
1675
1740
|
alive = false;
|
|
1676
1741
|
}
|
|
1677
1742
|
assert.equal(alive, false, `worker pid ${workerPid} should be terminated after shutdown`);
|
|
1743
|
+
assert.ok(shutdownDurationMs < 10_000, `forced prompt-worker shutdown should skip the 15s ack wait (actual ${shutdownDurationMs}ms)`);
|
|
1678
1744
|
}
|
|
1679
1745
|
finally {
|
|
1680
1746
|
if (runtime) {
|
|
1681
1747
|
await shutdownTeam(runtime.teamName, cwd, { force: true }).catch(() => { });
|
|
1682
1748
|
}
|
|
1683
|
-
if (typeof prevPath === 'string')
|
|
1684
|
-
process.env.PATH = prevPath;
|
|
1685
|
-
else
|
|
1686
|
-
delete process.env.PATH;
|
|
1687
|
-
if (typeof prevTmux === 'string')
|
|
1688
|
-
process.env.TMUX = prevTmux;
|
|
1689
|
-
else
|
|
1690
|
-
delete process.env.TMUX;
|
|
1691
|
-
if (typeof prevLaunchMode === 'string')
|
|
1692
|
-
process.env.OMX_TEAM_WORKER_LAUNCH_MODE = prevLaunchMode;
|
|
1693
|
-
else
|
|
1694
|
-
delete process.env.OMX_TEAM_WORKER_LAUNCH_MODE;
|
|
1695
|
-
if (typeof prevWorkerCli === 'string')
|
|
1696
|
-
process.env.OMX_TEAM_WORKER_CLI = prevWorkerCli;
|
|
1697
|
-
else
|
|
1698
|
-
delete process.env.OMX_TEAM_WORKER_CLI;
|
|
1699
1749
|
await rm(cwd, { recursive: true, force: true });
|
|
1700
1750
|
}
|
|
1701
1751
|
});
|
|
@@ -1705,7 +1755,7 @@ process.on('SIGTERM', () => {
|
|
|
1705
1755
|
const fakeCodexPath = join(binDir, 'codex');
|
|
1706
1756
|
const helperPidPath = join(cwd, 'helper.pid');
|
|
1707
1757
|
await mkdir(binDir, { recursive: true });
|
|
1708
|
-
await
|
|
1758
|
+
await writeFakePromptWorkerBinary(fakeCodexPath, `
|
|
1709
1759
|
const { spawn } = require('child_process');
|
|
1710
1760
|
const { writeFileSync } = require('fs');
|
|
1711
1761
|
const helper = spawn(process.execPath, ['-e', \`
|
|
@@ -1717,21 +1767,11 @@ writeFileSync(process.env.OMX_HELPER_PID_PATH, String(helper.pid));
|
|
|
1717
1767
|
process.stdin.resume();
|
|
1718
1768
|
setInterval(() => {}, 1000);
|
|
1719
1769
|
process.on('SIGTERM', () => process.exit(0));
|
|
1720
|
-
|
|
1721
|
-
const prevPath = process.env.PATH;
|
|
1722
|
-
const prevTmux = process.env.TMUX;
|
|
1723
|
-
const prevLaunchMode = process.env.OMX_TEAM_WORKER_LAUNCH_MODE;
|
|
1724
|
-
const prevWorkerCli = process.env.OMX_TEAM_WORKER_CLI;
|
|
1725
|
-
const prevHelperPidPath = process.env.OMX_HELPER_PID_PATH;
|
|
1726
|
-
process.env.PATH = `${binDir}:${prevPath ?? ''}`;
|
|
1727
|
-
delete process.env.TMUX;
|
|
1728
|
-
process.env.OMX_TEAM_WORKER_LAUNCH_MODE = 'prompt';
|
|
1729
|
-
process.env.OMX_TEAM_WORKER_CLI = 'codex';
|
|
1730
|
-
process.env.OMX_HELPER_PID_PATH = helperPidPath;
|
|
1770
|
+
`);
|
|
1731
1771
|
let runtime = null;
|
|
1732
1772
|
let helperPid = 0;
|
|
1733
1773
|
try {
|
|
1734
|
-
runtime = await withoutTeamWorkerEnv(() => startTeam('team-prompt-descendants', 'prompt-mode detached descendant teardown', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd));
|
|
1774
|
+
runtime = await withPromptModeCodexEnv(binDir, { OMX_HELPER_PID_PATH: helperPidPath }, () => withoutTeamWorkerEnv(() => startTeam('team-prompt-descendants', 'prompt-mode detached descendant teardown', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd)));
|
|
1735
1775
|
for (let attempt = 0; attempt < 40; attempt += 1) {
|
|
1736
1776
|
if (existsSync(helperPidPath))
|
|
1737
1777
|
break;
|
|
@@ -1739,7 +1779,9 @@ process.on('SIGTERM', () => process.exit(0));
|
|
|
1739
1779
|
}
|
|
1740
1780
|
helperPid = Number((await readFile(helperPidPath, 'utf-8')).trim());
|
|
1741
1781
|
assert.ok(helperPid > 0, 'detached helper pid should be captured');
|
|
1782
|
+
const shutdownStartedAt = Date.now();
|
|
1742
1783
|
await shutdownTeam(runtime.teamName, cwd, { force: true });
|
|
1784
|
+
const shutdownDurationMs = Date.now() - shutdownStartedAt;
|
|
1743
1785
|
runtime = null;
|
|
1744
1786
|
let alive = false;
|
|
1745
1787
|
try {
|
|
@@ -1750,6 +1792,7 @@ process.on('SIGTERM', () => process.exit(0));
|
|
|
1750
1792
|
alive = false;
|
|
1751
1793
|
}
|
|
1752
1794
|
assert.equal(alive, false, `detached helper pid ${helperPid} should be terminated after shutdown`);
|
|
1795
|
+
assert.ok(shutdownDurationMs < 10_000, `forced descendant teardown should skip the 15s ack wait (actual ${shutdownDurationMs}ms)`);
|
|
1753
1796
|
}
|
|
1754
1797
|
finally {
|
|
1755
1798
|
if (runtime) {
|
|
@@ -1761,26 +1804,6 @@ process.on('SIGTERM', () => process.exit(0));
|
|
|
1761
1804
|
}
|
|
1762
1805
|
catch { }
|
|
1763
1806
|
}
|
|
1764
|
-
if (typeof prevPath === 'string')
|
|
1765
|
-
process.env.PATH = prevPath;
|
|
1766
|
-
else
|
|
1767
|
-
delete process.env.PATH;
|
|
1768
|
-
if (typeof prevTmux === 'string')
|
|
1769
|
-
process.env.TMUX = prevTmux;
|
|
1770
|
-
else
|
|
1771
|
-
delete process.env.TMUX;
|
|
1772
|
-
if (typeof prevLaunchMode === 'string')
|
|
1773
|
-
process.env.OMX_TEAM_WORKER_LAUNCH_MODE = prevLaunchMode;
|
|
1774
|
-
else
|
|
1775
|
-
delete process.env.OMX_TEAM_WORKER_LAUNCH_MODE;
|
|
1776
|
-
if (typeof prevWorkerCli === 'string')
|
|
1777
|
-
process.env.OMX_TEAM_WORKER_CLI = prevWorkerCli;
|
|
1778
|
-
else
|
|
1779
|
-
delete process.env.OMX_TEAM_WORKER_CLI;
|
|
1780
|
-
if (typeof prevHelperPidPath === 'string')
|
|
1781
|
-
process.env.OMX_HELPER_PID_PATH = prevHelperPidPath;
|
|
1782
|
-
else
|
|
1783
|
-
delete process.env.OMX_HELPER_PID_PATH;
|
|
1784
1807
|
await rm(cwd, { recursive: true, force: true });
|
|
1785
1808
|
}
|
|
1786
1809
|
});
|
|
@@ -2568,6 +2591,20 @@ exec "${realGit}" "$@"
|
|
|
2568
2591
|
await rm(cwd, { recursive: true, force: true });
|
|
2569
2592
|
}
|
|
2570
2593
|
});
|
|
2594
|
+
it('shutdownTeam clean fast path ignores worker shutdown ack files', async () => {
|
|
2595
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-clean-fast-'));
|
|
2596
|
+
try {
|
|
2597
|
+
await initTeamState('team-shutdown-clean-fast', 'shutdown clean fast path test', 'executor', 1, cwd);
|
|
2598
|
+
const ackPath = join(cwd, '.omx', 'state', 'team', 'team-shutdown-clean-fast', 'workers', 'worker-1', 'shutdown-ack.json');
|
|
2599
|
+
await writeFile(ackPath, JSON.stringify({ status: 'reject', reason: 'stale ack', updated_at: '9999-01-01T00:00:00.000Z' }));
|
|
2600
|
+
await shutdownTeam('team-shutdown-clean-fast', cwd);
|
|
2601
|
+
const teamRoot = join(cwd, '.omx', 'state', 'team', 'team-shutdown-clean-fast');
|
|
2602
|
+
assert.equal(existsSync(teamRoot), false);
|
|
2603
|
+
}
|
|
2604
|
+
finally {
|
|
2605
|
+
await rm(cwd, { recursive: true, force: true });
|
|
2606
|
+
}
|
|
2607
|
+
});
|
|
2571
2608
|
it('shutdownTeam blocks when pending tasks remain (shutdown gate)', async () => {
|
|
2572
2609
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-gate-'));
|
|
2573
2610
|
try {
|
|
@@ -2622,12 +2659,12 @@ exec "${realGit}" "$@"
|
|
|
2622
2659
|
await rm(cwd, { recursive: true, force: true });
|
|
2623
2660
|
}
|
|
2624
2661
|
});
|
|
2625
|
-
it('shutdownTeam
|
|
2662
|
+
it('shutdownTeam requires explicit issue confirmation when failed tasks remain', async () => {
|
|
2626
2663
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-gate-failed-'));
|
|
2627
2664
|
try {
|
|
2628
2665
|
await initTeamState('team-shutdown-gate-failed', 'shutdown gate failed test', 'executor', 1, cwd);
|
|
2629
2666
|
await createTask('team-shutdown-gate-failed', { subject: 'failed', description: 'd', status: 'failed' }, cwd);
|
|
2630
|
-
await assert.rejects(() => shutdownTeam('team-shutdown-gate-failed', cwd), /
|
|
2667
|
+
await assert.rejects(() => shutdownTeam('team-shutdown-gate-failed', cwd), /shutdown_confirm_issues_required:failed=1:rerun=omx team shutdown team-shutdown-gate-failed --confirm-issues/);
|
|
2631
2668
|
const teamRoot = teamStateTestPath(cwd, 'team', 'team-shutdown-gate-failed');
|
|
2632
2669
|
assert.equal(existsSync(teamRoot), true);
|
|
2633
2670
|
}
|
|
@@ -2756,6 +2793,7 @@ esac
|
|
|
2756
2793
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-'));
|
|
2757
2794
|
try {
|
|
2758
2795
|
await initTeamState('team-reject', 'shutdown reject test', 'executor', 1, cwd);
|
|
2796
|
+
await attachDirtyWorkerRepo('team-reject', cwd, 'team-reject-repo');
|
|
2759
2797
|
const ackPath = join(cwd, '.omx', 'state', 'team', 'team-reject', 'workers', 'worker-1', 'shutdown-ack.json');
|
|
2760
2798
|
await writeFile(ackPath, JSON.stringify({ status: 'reject', reason: 'still working', updated_at: '9999-01-01T00:00:00.000Z' }));
|
|
2761
2799
|
await assert.rejects(() => shutdownTeam('team-reject', cwd), /shutdown_rejected:worker-1:still working/);
|
|
@@ -2768,6 +2806,7 @@ esac
|
|
|
2768
2806
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-'));
|
|
2769
2807
|
try {
|
|
2770
2808
|
await initTeamState('team-ack-evt', 'shutdown ack event test', 'executor', 1, cwd);
|
|
2809
|
+
await attachDirtyWorkerRepo('team-ack-evt', cwd, 'team-ack-evt-repo');
|
|
2771
2810
|
const ackPath = join(cwd, '.omx', 'state', 'team', 'team-ack-evt', 'workers', 'worker-1', 'shutdown-ack.json');
|
|
2772
2811
|
await writeFile(ackPath, JSON.stringify({ status: 'reject', reason: 'busy', updated_at: '9999-01-01T00:00:00.000Z' }));
|
|
2773
2812
|
await assert.rejects(() => shutdownTeam('team-ack-evt', cwd), /shutdown_rejected/);
|
|
@@ -2833,6 +2872,21 @@ esac
|
|
|
2833
2872
|
await rm(cwd, { recursive: true, force: true });
|
|
2834
2873
|
}
|
|
2835
2874
|
});
|
|
2875
|
+
it('shutdownTeam confirmIssues=true allows failed-task shutdown without worker ack handshake', async () => {
|
|
2876
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-confirm-issues-'));
|
|
2877
|
+
try {
|
|
2878
|
+
await initTeamState('team-confirm-issues', 'shutdown confirm issues test', 'executor', 1, cwd);
|
|
2879
|
+
await createTask('team-confirm-issues', { subject: 'failed', description: 'd', status: 'failed' }, cwd);
|
|
2880
|
+
const ackPath = join(cwd, '.omx', 'state', 'team', 'team-confirm-issues', 'workers', 'worker-1', 'shutdown-ack.json');
|
|
2881
|
+
await writeFile(ackPath, JSON.stringify({ status: 'reject', reason: 'should be ignored', updated_at: '9999-01-01T00:00:00.000Z' }));
|
|
2882
|
+
await shutdownTeam('team-confirm-issues', cwd, { confirmIssues: true });
|
|
2883
|
+
const teamRoot = join(cwd, '.omx', 'state', 'team', 'team-confirm-issues');
|
|
2884
|
+
assert.equal(existsSync(teamRoot), false);
|
|
2885
|
+
}
|
|
2886
|
+
finally {
|
|
2887
|
+
await rm(cwd, { recursive: true, force: true });
|
|
2888
|
+
}
|
|
2889
|
+
});
|
|
2836
2890
|
it('shutdownTeam applies best-effort teardown even when worker pane is already dead', async () => {
|
|
2837
2891
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-dead-pane-'));
|
|
2838
2892
|
try {
|
|
@@ -3047,6 +3101,77 @@ esac
|
|
|
3047
3101
|
await rm(cwd, { recursive: true, force: true });
|
|
3048
3102
|
}
|
|
3049
3103
|
});
|
|
3104
|
+
it('shutdownTeam skips prekill and keeps the leader pane alive on shared-session shutdown', async () => {
|
|
3105
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-shared-session-'));
|
|
3106
|
+
try {
|
|
3107
|
+
await withMockTmuxFixture({
|
|
3108
|
+
dirPrefix: 'omx-runtime-shutdown-shared-session-bin-',
|
|
3109
|
+
tmuxScript: (tmuxLogPath) => `#!/bin/sh
|
|
3110
|
+
set -eu
|
|
3111
|
+
printf '%s\\n' "$*" >> "${tmuxLogPath}"
|
|
3112
|
+
case "$1" in
|
|
3113
|
+
-V)
|
|
3114
|
+
echo "tmux 3.4"
|
|
3115
|
+
exit 0
|
|
3116
|
+
;;
|
|
3117
|
+
list-panes)
|
|
3118
|
+
case "$*" in
|
|
3119
|
+
*"-F #{pane_dead} #{pane_pid}"*)
|
|
3120
|
+
exit 1
|
|
3121
|
+
;;
|
|
3122
|
+
*"-t leader:0 -F #{pane_id}"*"#{pane_current_command}"*)
|
|
3123
|
+
printf "%%11\\tzsh\\tzsh\\n%%12\\tnode\\tnode /tmp/bin/omx.js hud --watch\\n%%13\\tcodex\\tcodex\\n%%14\\tcodex\\tcodex\\n"
|
|
3124
|
+
exit 0
|
|
3125
|
+
;;
|
|
3126
|
+
*)
|
|
3127
|
+
exit 1
|
|
3128
|
+
;;
|
|
3129
|
+
esac
|
|
3130
|
+
;;
|
|
3131
|
+
split-window)
|
|
3132
|
+
printf '%%44\\n'
|
|
3133
|
+
exit 0
|
|
3134
|
+
;;
|
|
3135
|
+
kill-pane|resize-pane|select-pane)
|
|
3136
|
+
exit 0
|
|
3137
|
+
;;
|
|
3138
|
+
*)
|
|
3139
|
+
exit 0
|
|
3140
|
+
;;
|
|
3141
|
+
esac
|
|
3142
|
+
`,
|
|
3143
|
+
}, async ({ tmuxLogPath }) => {
|
|
3144
|
+
await initTeamState('team-shutdown-shared-session', 'shutdown shared session test', 'executor', 2, cwd);
|
|
3145
|
+
const config = await readTeamConfig('team-shutdown-shared-session', cwd);
|
|
3146
|
+
assert.ok(config);
|
|
3147
|
+
if (!config)
|
|
3148
|
+
return;
|
|
3149
|
+
config.tmux_session = 'leader:0';
|
|
3150
|
+
config.leader_pane_id = '%11';
|
|
3151
|
+
config.hud_pane_id = '%12';
|
|
3152
|
+
config.workers[0].pane_id = '%13';
|
|
3153
|
+
config.workers[1].pane_id = '%14';
|
|
3154
|
+
await saveTeamConfig(config, cwd);
|
|
3155
|
+
await shutdownTeam('team-shutdown-shared-session', cwd, { force: true });
|
|
3156
|
+
const teamRoot = join(cwd, '.omx', 'state', 'team', 'team-shutdown-shared-session');
|
|
3157
|
+
assert.equal(existsSync(teamRoot), false);
|
|
3158
|
+
assert.equal(await readMonitorSnapshot('team-shutdown-shared-session', cwd), null);
|
|
3159
|
+
const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
|
|
3160
|
+
assert.doesNotMatch(tmuxLog, /list-panes -t %13 -F #\{pane_pid\}/);
|
|
3161
|
+
assert.doesNotMatch(tmuxLog, /list-panes -t %14 -F #\{pane_pid\}/);
|
|
3162
|
+
assert.doesNotMatch(tmuxLog, /kill-pane -t %11/);
|
|
3163
|
+
assert.doesNotMatch(tmuxLog, /kill-session -t leader:0/);
|
|
3164
|
+
assert.match(tmuxLog, /kill-pane -t %12/);
|
|
3165
|
+
assert.match(tmuxLog, /kill-pane -t %13/);
|
|
3166
|
+
assert.match(tmuxLog, /kill-pane -t %14/);
|
|
3167
|
+
assert.match(tmuxLog, new RegExp(`split-window -v -l ${HUD_TMUX_TEAM_HEIGHT_LINES} -t %11 -d -P -F #\\{pane_id\\}`));
|
|
3168
|
+
assert.match(tmuxLog, /select-pane -t %11/);
|
|
3169
|
+
});
|
|
3170
|
+
}
|
|
3171
|
+
finally {
|
|
3172
|
+
await rm(cwd, { recursive: true, force: true });
|
|
3173
|
+
}
|
|
3174
|
+
});
|
|
3050
3175
|
it('shutdownTeam restores a standalone HUD pane after tearing down the team HUD', async () => {
|
|
3051
3176
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-restore-hud-'));
|
|
3052
3177
|
try {
|
|
@@ -3151,12 +3276,12 @@ esac
|
|
|
3151
3276
|
await rm(cwd, { recursive: true, force: true });
|
|
3152
3277
|
}
|
|
3153
3278
|
});
|
|
3154
|
-
it('shutdownTeam still
|
|
3279
|
+
it('shutdownTeam still requires confirm-issues on failed tasks', async () => {
|
|
3155
3280
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-normal-gate-'));
|
|
3156
3281
|
try {
|
|
3157
3282
|
await initTeamState('team-normal-gate', 'normal gate test', 'executor', 1, cwd);
|
|
3158
3283
|
await createTask('team-normal-gate', { subject: 'failed', description: 'd', status: 'failed' }, cwd);
|
|
3159
|
-
await assert.rejects(() => shutdownTeam('team-normal-gate', cwd), /
|
|
3284
|
+
await assert.rejects(() => shutdownTeam('team-normal-gate', cwd), /shutdown_confirm_issues_required:failed=1/);
|
|
3160
3285
|
const teamRoot = join(cwd, '.omx', 'state', 'team', 'team-normal-gate');
|
|
3161
3286
|
assert.equal(existsSync(teamRoot), true);
|
|
3162
3287
|
}
|
|
@@ -3558,7 +3683,7 @@ esac
|
|
|
3558
3683
|
await rm(cwd, { recursive: true, force: true });
|
|
3559
3684
|
}
|
|
3560
3685
|
});
|
|
3561
|
-
it('sendWorkerMessage keeps failed hook receipts failed when fallback mailbox persistence confirms delivery', async () => {
|
|
3686
|
+
it('sendWorkerMessage keeps failed hook receipts failed when fallback mailbox persistence confirms delivery', { concurrency: false }, async () => {
|
|
3562
3687
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-leader-failed-receipt-'));
|
|
3563
3688
|
try {
|
|
3564
3689
|
await withMockTmuxFixture({
|