oh-my-codex 0.21.2 → 0.21.3
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.toml +1 -1
- package/dist/cli/__tests__/index.test.js +21 -2
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/index.d.ts +5 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +32 -4
- package/dist/cli/index.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 +6 -2
- package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.js +6 -2
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker.js +10 -2
- package/dist/scripts/notify-hook/team-worker.js.map +1 -1
- package/dist/team/__tests__/notice-ledger.test.js +66 -5
- package/dist/team/__tests__/notice-ledger.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +83 -1
- 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__/state.test.js +195 -2
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/team-ops-contract.test.js +1 -0
- package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +11 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
- package/dist/team/mcp-comm.d.ts.map +1 -1
- package/dist/team/mcp-comm.js +130 -125
- package/dist/team/mcp-comm.js.map +1 -1
- package/dist/team/notice-ledger.d.ts +5 -0
- package/dist/team/notice-ledger.d.ts.map +1 -1
- package/dist/team/notice-ledger.js +82 -4
- package/dist/team/notice-ledger.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +44 -13
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state/mailbox.js +22 -22
- package/dist/team/state/mailbox.js.map +1 -1
- package/dist/team/state.d.ts +2 -0
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +100 -4
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-ops.d.ts +1 -0
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js +1 -0
- package/dist/team/team-ops.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/src/scripts/notify-hook/team-leader-nudge.ts +6 -2
- package/src/scripts/notify-hook/team-worker-stop.ts +6 -2
- package/src/scripts/notify-hook/team-worker.ts +10 -2
|
@@ -3,7 +3,7 @@ import { describe, it } from 'node:test';
|
|
|
3
3
|
import { mkdtemp, mkdir, readFile, rm, utimes, writeFile } from 'node:fs/promises';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { buildTeamNoticeLedgerPrompt, parseTeamNoticeLedgerPrompt, reconcileTeamNoticeLedger, registerTeamNotice, releaseTeamNoticeWake, teamNoticeLedgerLockPath, teamNoticeLedgerPath, teamNoticeTargetKey, } from '../notice-ledger.js';
|
|
6
|
+
import { buildTeamNoticeLedgerPrompt, confirmTeamNoticeWake, discardTeamNoticesForTeam, parseTeamNoticeLedgerPrompt, reconcileTeamNoticeLedger, registerTeamNotice, releaseTeamNoticeWake, teamNoticeLedgerLockPath, teamNoticeLedgerPath, teamNoticeTargetKey, } from '../notice-ledger.js';
|
|
7
7
|
async function fixture() {
|
|
8
8
|
const root = await mkdtemp(join(tmpdir(), 'omx-notice-ledger-'));
|
|
9
9
|
return { root, stateRoot: join(root, '.omx', 'state') };
|
|
@@ -55,14 +55,16 @@ describe('team notice ledger', () => {
|
|
|
55
55
|
const { root, stateRoot } = await fixture();
|
|
56
56
|
try {
|
|
57
57
|
await Promise.all([liveTeam(stateRoot, 'live'), liveTeam(stateRoot, 'terminal'), liveTeam(stateRoot, 'removed')]);
|
|
58
|
-
await writeFile(join(stateRoot, 'team', 'terminal', 'phase.json'), JSON.stringify({ current_phase: '
|
|
58
|
+
await writeFile(join(stateRoot, 'team', 'terminal', 'phase.json'), JSON.stringify({ current_phase: 'team-exec', terminal_epoch: '2026-09-02T00:00:00.000Z' }));
|
|
59
59
|
const targetId = 'leader';
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const terminal = await registerTeamNotice(registration(stateRoot, 'terminal', targetId, '1'));
|
|
61
|
+
assert.equal(terminal.queued, false);
|
|
62
|
+
await registerTeamNotice(registration(stateRoot, 'live', targetId, '1'));
|
|
63
|
+
await registerTeamNotice(registration(stateRoot, 'removed', targetId, '1'));
|
|
62
64
|
await rm(join(stateRoot, 'team', 'removed'), { recursive: true, force: true });
|
|
63
65
|
const result = await reconcileTeamNoticeLedger({ stateRoot, targetKey: teamNoticeTargetKey(targetId) });
|
|
64
66
|
assert.deepEqual(result.context.map((notice) => notice.teamName), ['live']);
|
|
65
|
-
assert.equal(result.discarded,
|
|
67
|
+
assert.equal(result.discarded, 1);
|
|
66
68
|
assert.doesNotMatch(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'), /terminal|removed/);
|
|
67
69
|
}
|
|
68
70
|
finally {
|
|
@@ -102,6 +104,65 @@ describe('team notice ledger', () => {
|
|
|
102
104
|
await rm(root, { recursive: true, force: true });
|
|
103
105
|
}
|
|
104
106
|
});
|
|
107
|
+
it('does not re-elect a successfully queued wake after the original lease timeout', async () => {
|
|
108
|
+
const { root, stateRoot } = await fixture();
|
|
109
|
+
try {
|
|
110
|
+
await liveTeam(stateRoot, 'slow');
|
|
111
|
+
const first = await registerTeamNotice(registration(stateRoot, 'slow', 'leader', '1'));
|
|
112
|
+
assert.equal(await confirmTeamNoticeWake(stateRoot, first.targetKey, first.wakeId), true);
|
|
113
|
+
const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'));
|
|
114
|
+
ledger.wakes[first.targetKey].createdAtMs = Date.now() - 31_000;
|
|
115
|
+
await writeFile(teamNoticeLedgerPath(stateRoot), JSON.stringify(ledger, null, 2));
|
|
116
|
+
const later = await registerTeamNotice(registration(stateRoot, 'slow', 'leader', '2', 'all_idle'));
|
|
117
|
+
assert.equal(later.queued, false);
|
|
118
|
+
assert.equal(later.wakeId, first.wakeId);
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
await rm(root, { recursive: true, force: true });
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
it('re-elects an unconfirmed stale wake and rejects confirmation of the replaced lease', async () => {
|
|
125
|
+
const { root, stateRoot } = await fixture();
|
|
126
|
+
try {
|
|
127
|
+
await liveTeam(stateRoot, 'retry');
|
|
128
|
+
const first = await registerTeamNotice(registration(stateRoot, 'retry', 'leader', '1'));
|
|
129
|
+
const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'));
|
|
130
|
+
ledger.wakes[first.targetKey].createdAtMs = Date.now() - 31_000;
|
|
131
|
+
await writeFile(teamNoticeLedgerPath(stateRoot), JSON.stringify(ledger, null, 2));
|
|
132
|
+
const retry = await registerTeamNotice(registration(stateRoot, 'retry', 'leader', '2'));
|
|
133
|
+
assert.equal(retry.queued, true);
|
|
134
|
+
assert.notEqual(retry.wakeId, first.wakeId);
|
|
135
|
+
assert.equal(await confirmTeamNoticeWake(stateRoot, first.targetKey, first.wakeId), false);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
await rm(root, { recursive: true, force: true });
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
it('discards one Team while preserving shared-target notices and wake for another Team', async () => {
|
|
142
|
+
const { root, stateRoot } = await fixture();
|
|
143
|
+
try {
|
|
144
|
+
await Promise.all([liveTeam(stateRoot, 'alpha'), liveTeam(stateRoot, 'bravo')]);
|
|
145
|
+
const first = await registerTeamNotice(registration(stateRoot, 'alpha', 'leader', '1'));
|
|
146
|
+
await registerTeamNotice(registration(stateRoot, 'bravo', 'leader', '1', 'worker_stop'));
|
|
147
|
+
assert.deepEqual(await discardTeamNoticesForTeam(stateRoot, 'alpha'), { notices: 1, wakes: 0 });
|
|
148
|
+
const result = await reconcileTeamNoticeLedger({ stateRoot, targetKey: first.targetKey });
|
|
149
|
+
assert.deepEqual(result.context.map((notice) => notice.teamName), ['bravo']);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
await rm(root, { recursive: true, force: true });
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
it('discards an orphaned wake with the last notice for a Team', async () => {
|
|
156
|
+
const { root, stateRoot } = await fixture();
|
|
157
|
+
try {
|
|
158
|
+
await liveTeam(stateRoot, 'alpha');
|
|
159
|
+
await registerTeamNotice(registration(stateRoot, 'alpha', 'leader', '1'));
|
|
160
|
+
assert.deepEqual(await discardTeamNoticesForTeam(stateRoot, 'alpha'), { notices: 1, wakes: 1 });
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
await rm(root, { recursive: true, force: true });
|
|
164
|
+
}
|
|
165
|
+
});
|
|
105
166
|
it('recovers stale locks and rejects malformed ledgers without overwriting them', async () => {
|
|
106
167
|
const { root, stateRoot } = await fixture();
|
|
107
168
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notice-ledger.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/notice-ledger.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notice-ledger.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/notice-ledger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
|
2
2
|
import assert from 'node:assert/strict';
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
4
|
import { execFileSync, spawn, spawnSync } from 'child_process';
|
|
5
|
-
import { mkdtemp, rm, writeFile, readFile, mkdir, chmod, readdir } from 'fs/promises';
|
|
5
|
+
import { mkdtemp, rm, unlink, writeFile, readFile, mkdir, chmod, readdir } from 'fs/promises';
|
|
6
6
|
import { join, relative, dirname } from 'path';
|
|
7
7
|
import { tmpdir } from 'os';
|
|
8
8
|
import { existsSync } from 'fs';
|
|
@@ -16,6 +16,7 @@ import { buildInternalTeamName, resolveTeamIdentityScope } from '../team-identit
|
|
|
16
16
|
import { writePersistedApprovedTeamExecutionBinding } from '../approved-execution.js';
|
|
17
17
|
import { planWorktreeTarget } from '../worktree.js';
|
|
18
18
|
import { scaleDown } from '../scaling.js';
|
|
19
|
+
import { registerTeamNotice, teamNoticeLedgerPath, teamNoticeTargetKey } from '../notice-ledger.js';
|
|
19
20
|
const coverageRun = process.env.NODE_V8_COVERAGE ? true : false;
|
|
20
21
|
const skipSlowLifecycleUnderCoverage = coverageRun
|
|
21
22
|
? 'covered by the team-state-runtime lane; skipped under c8 to keep the coverage gate bounded around slow process-lifecycle waits'
|
|
@@ -774,8 +775,10 @@ async function withNativeWindowsPlatform(run) {
|
|
|
774
775
|
}
|
|
775
776
|
}
|
|
776
777
|
const ORIGINAL_OMX_TEAM_STATE_ROOT = process.env.OMX_TEAM_STATE_ROOT;
|
|
778
|
+
const ORIGINAL_OMX_RUNTIME_BRIDGE = process.env.OMX_RUNTIME_BRIDGE;
|
|
777
779
|
beforeEach(() => {
|
|
778
780
|
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
781
|
+
process.env.OMX_RUNTIME_BRIDGE = '0';
|
|
779
782
|
});
|
|
780
783
|
afterEach(() => {
|
|
781
784
|
setTerminalEpochStartedHookForTest(null);
|
|
@@ -783,6 +786,10 @@ afterEach(() => {
|
|
|
783
786
|
process.env.OMX_TEAM_STATE_ROOT = ORIGINAL_OMX_TEAM_STATE_ROOT;
|
|
784
787
|
else
|
|
785
788
|
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
789
|
+
if (typeof ORIGINAL_OMX_RUNTIME_BRIDGE === 'string')
|
|
790
|
+
process.env.OMX_RUNTIME_BRIDGE = ORIGINAL_OMX_RUNTIME_BRIDGE;
|
|
791
|
+
else
|
|
792
|
+
delete process.env.OMX_RUNTIME_BRIDGE;
|
|
786
793
|
});
|
|
787
794
|
describe('runtime', () => {
|
|
788
795
|
it('resolveWorkerLaunchArgsFromEnv injects low-complexity default model when missing', () => {
|
|
@@ -6636,6 +6643,81 @@ exec "${realGit}" "$@"
|
|
|
6636
6643
|
await rm(cwd, { recursive: true, force: true });
|
|
6637
6644
|
}
|
|
6638
6645
|
});
|
|
6646
|
+
it('shutdownTeam discards terminal Team notices before deleting ownership evidence', async () => {
|
|
6647
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-notices-'));
|
|
6648
|
+
const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
|
|
6649
|
+
try {
|
|
6650
|
+
process.env.OMX_RUNTIME_BRIDGE = '0';
|
|
6651
|
+
await initTeamState('team-shutdown-notices', 'shutdown notice cleanup test', 'executor', 1, cwd);
|
|
6652
|
+
await markDetachedSessionAbsent('team-shutdown-notices', cwd);
|
|
6653
|
+
const notice = await registerTeamNotice({
|
|
6654
|
+
cwd,
|
|
6655
|
+
targetId: 'leader-pane-owner',
|
|
6656
|
+
teamName: 'team-shutdown-notices',
|
|
6657
|
+
noticeClass: 'terminal',
|
|
6658
|
+
generation: 'done',
|
|
6659
|
+
source: { kind: 'test' },
|
|
6660
|
+
});
|
|
6661
|
+
assert.equal(notice.targetKey, teamNoticeTargetKey('leader-pane-owner'));
|
|
6662
|
+
await shutdownWithoutTmuxSession('team-shutdown-notices', cwd);
|
|
6663
|
+
const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(join(cwd, '.omx', 'state')), 'utf8'));
|
|
6664
|
+
assert.equal(Object.values(ledger.notices).some((entry) => entry.teamName === 'team-shutdown-notices'), false);
|
|
6665
|
+
assert.equal(ledger.wakes[notice.targetKey], undefined);
|
|
6666
|
+
assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', 'team-shutdown-notices')), false);
|
|
6667
|
+
}
|
|
6668
|
+
finally {
|
|
6669
|
+
if (typeof previousRuntimeBridge === 'string')
|
|
6670
|
+
process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
|
|
6671
|
+
else
|
|
6672
|
+
delete process.env.OMX_RUNTIME_BRIDGE;
|
|
6673
|
+
await rm(cwd, { recursive: true, force: true });
|
|
6674
|
+
}
|
|
6675
|
+
});
|
|
6676
|
+
it('shutdownTeam preserves Team state when global mailbox retirement cannot be proven', async () => {
|
|
6677
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-mailbox-fail-closed-'));
|
|
6678
|
+
const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
|
|
6679
|
+
const teamName = 'shutdown-mailbox-fail-closed';
|
|
6680
|
+
try {
|
|
6681
|
+
process.env.OMX_RUNTIME_BRIDGE = '0';
|
|
6682
|
+
await initTeamState(teamName, 'shutdown mailbox cleanup test', 'executor', 1, cwd);
|
|
6683
|
+
await sendDirectMessage(teamName, 'leader-fixed', 'worker-1', 'pending result', cwd);
|
|
6684
|
+
await markDetachedSessionAbsent(teamName, cwd);
|
|
6685
|
+
await writeFile(join(cwd, '.omx', 'state', 'mailbox.json'), JSON.stringify({ records: 'malformed' }));
|
|
6686
|
+
process.env.OMX_RUNTIME_BRIDGE = '1';
|
|
6687
|
+
await assert.rejects(shutdownWithoutTmuxSession(teamName, cwd), /authoritative_mailbox_retirement_discovery_failed/);
|
|
6688
|
+
assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', teamName)), true);
|
|
6689
|
+
}
|
|
6690
|
+
finally {
|
|
6691
|
+
if (typeof previousRuntimeBridge === 'string')
|
|
6692
|
+
process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
|
|
6693
|
+
else
|
|
6694
|
+
delete process.env.OMX_RUNTIME_BRIDGE;
|
|
6695
|
+
await rm(cwd, { recursive: true, force: true });
|
|
6696
|
+
}
|
|
6697
|
+
});
|
|
6698
|
+
it('shutdownTeam preserves Team state when mailbox compatibility output is absent', async () => {
|
|
6699
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-mailbox-missing-'));
|
|
6700
|
+
const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
|
|
6701
|
+
const teamName = 'shutdown-mailbox-missing';
|
|
6702
|
+
try {
|
|
6703
|
+
process.env.OMX_RUNTIME_BRIDGE = '0';
|
|
6704
|
+
await initTeamState(teamName, 'shutdown mailbox missing test', 'executor', 1, cwd);
|
|
6705
|
+
await sendDirectMessage(teamName, 'leader-fixed', 'worker-1', 'pending result', cwd);
|
|
6706
|
+
await writeFile(join(cwd, '.omx', 'state', 'mailbox.json'), JSON.stringify({ records: [] }));
|
|
6707
|
+
await unlink(join(cwd, '.omx', 'state', 'mailbox.json'));
|
|
6708
|
+
process.env.OMX_RUNTIME_BRIDGE = '1';
|
|
6709
|
+
await markDetachedSessionAbsent(teamName, cwd);
|
|
6710
|
+
await assert.rejects(shutdownWithoutTmuxSession(teamName, cwd), /authoritative_mailbox_retirement_discovery_failed/);
|
|
6711
|
+
assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', teamName)), true);
|
|
6712
|
+
}
|
|
6713
|
+
finally {
|
|
6714
|
+
if (typeof previousRuntimeBridge === 'string')
|
|
6715
|
+
process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
|
|
6716
|
+
else
|
|
6717
|
+
delete process.env.OMX_RUNTIME_BRIDGE;
|
|
6718
|
+
await rm(cwd, { recursive: true, force: true });
|
|
6719
|
+
}
|
|
6720
|
+
});
|
|
6639
6721
|
it('shutdownTeam clean fast path ignores worker shutdown ack files', async () => {
|
|
6640
6722
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-clean-fast-'));
|
|
6641
6723
|
try {
|