oh-my-codex 0.15.2 → 0.15.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.lock +5 -5
- package/Cargo.toml +1 -1
- package/dist/agents/__tests__/native-config.test.js +33 -0
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +9 -1
- package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts +2 -0
- package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts.map +1 -0
- package/dist/cli/__tests__/doctor-context-window-warning.test.js +122 -0
- package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -2
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/exec.test.js +1 -0
- package/dist/cli/__tests__/exec.test.js.map +1 -1
- package/dist/cli/__tests__/explore.test.js +40 -17
- package/dist/cli/__tests__/explore.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +141 -8
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-serve.test.js +27 -1
- package/dist/cli/__tests__/mcp-serve.test.js.map +1 -1
- package/dist/cli/__tests__/ralph.test.js +59 -1
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +2 -1
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +55 -10
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +46 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +16 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +126 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-serve.d.ts +1 -0
- package/dist/cli/mcp-serve.d.ts.map +1 -1
- package/dist/cli/mcp-serve.js +8 -0
- package/dist/cli/mcp-serve.js.map +1 -1
- package/dist/cli/ralph.d.ts +2 -0
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +17 -1
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/team.d.ts +4 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +47 -22
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +27 -5
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/generator.d.ts +11 -2
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +114 -58
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +59 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/anti-slop-workflow.test.js +109 -18
- package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +21 -0
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +30 -14
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/openclaw/__tests__/dispatcher.test.js +1 -1
- package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +398 -14
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/stages/team-exec.d.ts +8 -4
- package/dist/pipeline/stages/team-exec.d.ts.map +1 -1
- package/dist/pipeline/stages/team-exec.js +198 -13
- package/dist/pipeline/stages/team-exec.js.map +1 -1
- package/dist/planning/__tests__/artifacts.test.js +246 -1
- package/dist/planning/__tests__/artifacts.test.js.map +1 -1
- package/dist/planning/artifact-names.d.ts +13 -0
- package/dist/planning/artifact-names.d.ts.map +1 -0
- package/dist/planning/artifact-names.js +108 -0
- package/dist/planning/artifact-names.js.map +1 -0
- package/dist/planning/artifacts.d.ts +22 -1
- package/dist/planning/artifacts.d.ts.map +1 -1
- package/dist/planning/artifacts.js +165 -50
- package/dist/planning/artifacts.js.map +1 -1
- package/dist/ralph/__tests__/persistence.test.js +21 -1
- package/dist/ralph/__tests__/persistence.test.js.map +1 -1
- package/dist/ralph/persistence.d.ts.map +1 -1
- package/dist/ralph/persistence.js +6 -4
- package/dist/ralph/persistence.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +352 -2
- 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 +85 -6
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +123 -0
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-posttooluse.js +1 -1
- package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -1
- package/dist/scripts/notify-hook.js +1 -1
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/sync-plugin-mirror.d.ts +1 -0
- package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
- package/dist/scripts/sync-plugin-mirror.js +8 -2
- package/dist/scripts/sync-plugin-mirror.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +41 -0
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/team/__tests__/api-interop.test.js +220 -0
- package/dist/team/__tests__/api-interop.test.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +40 -9
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/repo-aware-decomposition.test.js +41 -0
- package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -1
- package/dist/team/__tests__/runtime-cli.test.js +24 -0
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +446 -67
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +13 -0
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/team-identity.test.d.ts +2 -0
- package/dist/team/__tests__/team-identity.test.d.ts.map +1 -0
- package/dist/team/__tests__/team-identity.test.js +166 -0
- package/dist/team/__tests__/team-identity.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.test.js +55 -1
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +12 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/api-interop.d.ts +1 -0
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +159 -129
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/delivery-log.d.ts +1 -1
- package/dist/team/delivery-log.d.ts.map +1 -1
- package/dist/team/delivery-log.js.map +1 -1
- package/dist/team/repo-aware-decomposition.d.ts +3 -0
- package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
- package/dist/team/repo-aware-decomposition.js +2 -0
- package/dist/team/repo-aware-decomposition.js.map +1 -1
- package/dist/team/runtime-cli.d.ts +32 -2
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +78 -26
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime.d.ts +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +338 -35
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state.d.ts +9 -0
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +21 -0
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-identity.d.ts +26 -0
- package/dist/team/team-identity.d.ts.map +1 -0
- package/dist/team/team-identity.js +169 -0
- package/dist/team/team-identity.js.map +1 -0
- package/dist/team/tmux-session.d.ts +18 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +61 -1
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +2 -0
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +10 -1
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +30 -5
- package/skills/ai-slop-cleaner/SKILL.md +30 -5
- package/src/scripts/__tests__/codex-native-hook.test.ts +398 -2
- package/src/scripts/codex-native-hook.ts +115 -5
- package/src/scripts/codex-native-pre-post.ts +121 -0
- package/src/scripts/notify-hook/team-worker-posttooluse.ts +1 -1
- package/src/scripts/notify-hook.ts +1 -1
- package/src/scripts/sync-plugin-mirror.ts +11 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-active.test.js","sourceRoot":"","sources":["../../../src/state/__tests__/skill-active.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-active.test.js","sourceRoot":"","sources":["../../../src/state/__tests__/skill-active.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,34 @@ async function setupTeam(name) {
|
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
+
async function setupDisplayTeam(internalName, displayName, sessionId, workerCount = 2) {
|
|
25
|
+
const cwd = await mkdtemp(join(tmpdir(), `omx-interop-${internalName}-`));
|
|
26
|
+
const previousTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
|
|
27
|
+
const previousSessionId = process.env.OMX_SESSION_ID;
|
|
28
|
+
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
29
|
+
process.env.OMX_SESSION_ID = sessionId;
|
|
30
|
+
await initTeamState(internalName, 'display-name API test', 'executor', workerCount, cwd, undefined, {
|
|
31
|
+
OMX_SESSION_ID: sessionId,
|
|
32
|
+
}, {
|
|
33
|
+
display_name: displayName,
|
|
34
|
+
requested_name: displayName,
|
|
35
|
+
identity_source: 'env-session',
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
cwd,
|
|
39
|
+
cleanup: async () => {
|
|
40
|
+
if (typeof previousTeamStateRoot === 'string')
|
|
41
|
+
process.env.OMX_TEAM_STATE_ROOT = previousTeamStateRoot;
|
|
42
|
+
else
|
|
43
|
+
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
44
|
+
if (typeof previousSessionId === 'string')
|
|
45
|
+
process.env.OMX_SESSION_ID = previousSessionId;
|
|
46
|
+
else
|
|
47
|
+
delete process.env.OMX_SESSION_ID;
|
|
48
|
+
await rm(cwd, { recursive: true, force: true });
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
24
52
|
async function withMailboxCompatHoleRuntime(cwd, fn) {
|
|
25
53
|
const fakeBin = join(cwd, 'runtime-bin');
|
|
26
54
|
const runtimePath = join(fakeBin, 'omx-runtime');
|
|
@@ -164,6 +192,35 @@ describe('validateCommonFields', () => {
|
|
|
164
192
|
assert.match(result.error.message, /Invalid team_name/);
|
|
165
193
|
}
|
|
166
194
|
});
|
|
195
|
+
it('resolves a long display team_name before applying internal key validation', async () => {
|
|
196
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-api-long-display-'));
|
|
197
|
+
try {
|
|
198
|
+
await initTeamState('long-display-aaaaaaaa', 'test task', 'executor', 1, cwd, undefined, { OMX_SESSION_ID: 'session-long' }, {
|
|
199
|
+
display_name: 'this-is-a-long-display-name-that-exceeds-thirty-chars',
|
|
200
|
+
requested_name: 'this-is-a-long-display-name-that-exceeds-thirty-chars',
|
|
201
|
+
identity_source: 'env-session',
|
|
202
|
+
});
|
|
203
|
+
const previousSessionId = process.env.OMX_SESSION_ID;
|
|
204
|
+
try {
|
|
205
|
+
process.env.OMX_SESSION_ID = 'session-long';
|
|
206
|
+
const result = await executeTeamApiOperation('list-tasks', {
|
|
207
|
+
team_name: 'this-is-a-long-display-name-that-exceeds-thirty-chars',
|
|
208
|
+
}, cwd);
|
|
209
|
+
assert.equal(result.ok, true);
|
|
210
|
+
if (result.ok)
|
|
211
|
+
assert.equal(result.data.count, 0);
|
|
212
|
+
}
|
|
213
|
+
finally {
|
|
214
|
+
if (previousSessionId === undefined)
|
|
215
|
+
delete process.env.OMX_SESSION_ID;
|
|
216
|
+
else
|
|
217
|
+
process.env.OMX_SESSION_ID = previousSessionId;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
await rm(cwd, { recursive: true, force: true });
|
|
222
|
+
}
|
|
223
|
+
});
|
|
167
224
|
it('rejects invalid worker name pattern', async () => {
|
|
168
225
|
const { cwd, cleanup } = await setupTeam('validate-worker');
|
|
169
226
|
try {
|
|
@@ -704,6 +761,53 @@ describe('executeTeamApiOperation: list-tasks', () => {
|
|
|
704
761
|
await rm(cwdB, { recursive: true, force: true });
|
|
705
762
|
}
|
|
706
763
|
});
|
|
764
|
+
it('resolves display team names from OMX_TEAM_STATE_ROOT when API calls run outside the leader cwd', async () => {
|
|
765
|
+
const { cwd: leaderCwd, cleanup } = await setupDisplayTeam('api-root-display-11111111', 'api-root-display', 'session-api-root-display');
|
|
766
|
+
const workerCwd = await mkdtemp(join(tmpdir(), 'omx-interop-api-root-worker-'));
|
|
767
|
+
try {
|
|
768
|
+
process.env.OMX_TEAM_STATE_ROOT = join(leaderCwd, '.omx', 'state');
|
|
769
|
+
await createTask('api-root-display-11111111', { subject: 'From shared root', description: 'D', status: 'pending' }, leaderCwd);
|
|
770
|
+
const event = await appendTeamEvent('api-root-display-11111111', {
|
|
771
|
+
type: 'task_completed',
|
|
772
|
+
worker: 'worker-1',
|
|
773
|
+
task_id: '1',
|
|
774
|
+
}, leaderCwd);
|
|
775
|
+
await writeMonitorSnapshot('api-root-display-11111111', {
|
|
776
|
+
taskStatusById: { '1': 'pending' },
|
|
777
|
+
workerAliveByName: { 'worker-1': true, 'worker-2': true },
|
|
778
|
+
workerStateByName: { 'worker-1': 'idle', 'worker-2': 'working' },
|
|
779
|
+
workerTurnCountByName: { 'worker-1': 1, 'worker-2': 1 },
|
|
780
|
+
workerTaskIdByName: { 'worker-1': '1', 'worker-2': '1' },
|
|
781
|
+
mailboxNotifiedByMessageId: {},
|
|
782
|
+
completedEventTaskIds: {},
|
|
783
|
+
}, leaderCwd);
|
|
784
|
+
const listResult = await executeTeamApiOperation('list-tasks', { team_name: 'api-root-display' }, workerCwd);
|
|
785
|
+
assert.equal(listResult.ok, true);
|
|
786
|
+
if (!listResult.ok)
|
|
787
|
+
throw new Error('expected list-tasks to succeed');
|
|
788
|
+
assert.equal(listResult.data.count, 1);
|
|
789
|
+
assert.equal(listResult.data.tasks[0]?.subject, 'From shared root');
|
|
790
|
+
const eventsResult = await executeTeamApiOperation('read-events', {
|
|
791
|
+
team_name: 'api-root-display',
|
|
792
|
+
type: 'task_completed',
|
|
793
|
+
}, workerCwd);
|
|
794
|
+
assert.equal(eventsResult.ok, true);
|
|
795
|
+
if (!eventsResult.ok)
|
|
796
|
+
throw new Error('expected read-events to succeed');
|
|
797
|
+
assert.equal(eventsResult.data.count, 1);
|
|
798
|
+
assert.equal(eventsResult.data.events[0]?.event_id, event.event_id);
|
|
799
|
+
const idleResult = await executeTeamApiOperation('read-idle-state', { team_name: 'api-root-display' }, workerCwd);
|
|
800
|
+
assert.equal(idleResult.ok, true);
|
|
801
|
+
if (!idleResult.ok)
|
|
802
|
+
throw new Error('expected read-idle-state to succeed');
|
|
803
|
+
assert.equal(idleResult.data.team_name, 'api-root-display-11111111');
|
|
804
|
+
assert.deepEqual(idleResult.data.idle_workers, ['worker-1']);
|
|
805
|
+
}
|
|
806
|
+
finally {
|
|
807
|
+
await rm(workerCwd, { recursive: true, force: true });
|
|
808
|
+
await cleanup();
|
|
809
|
+
}
|
|
810
|
+
});
|
|
707
811
|
it('prefers OMX_TEAM_STATE_ROOT over manifest metadata when resolving the team working directory', async () => {
|
|
708
812
|
const teamName = 'list-tsk-env-root';
|
|
709
813
|
const cwdA = await mkdtemp(join(tmpdir(), 'omx-interop-env-a-'));
|
|
@@ -1275,6 +1379,32 @@ describe('executeTeamApiOperation: read-events', () => {
|
|
|
1275
1379
|
await cleanup();
|
|
1276
1380
|
}
|
|
1277
1381
|
});
|
|
1382
|
+
it('resolves display team names before reading events', async () => {
|
|
1383
|
+
const { cwd, cleanup } = await setupDisplayTeam('evt-display-11111111', 'evt-display', 'session-events-display');
|
|
1384
|
+
try {
|
|
1385
|
+
const event = await appendTeamEvent('evt-display-11111111', {
|
|
1386
|
+
type: 'task_completed',
|
|
1387
|
+
worker: 'worker-1',
|
|
1388
|
+
task_id: '1',
|
|
1389
|
+
}, cwd);
|
|
1390
|
+
const result = await executeTeamApiOperation('read-events', {
|
|
1391
|
+
team_name: 'evt-display',
|
|
1392
|
+
type: 'task_completed',
|
|
1393
|
+
}, cwd);
|
|
1394
|
+
assert.equal(result.ok, true);
|
|
1395
|
+
if (result.ok) {
|
|
1396
|
+
assert.equal(result.data.count, 1);
|
|
1397
|
+
assert.equal(result.data.cursor, event.event_id);
|
|
1398
|
+
const events = result.data.events;
|
|
1399
|
+
assert.equal(events[0]?.event_id, event.event_id);
|
|
1400
|
+
assert.equal(events[0]?.type, 'task_completed');
|
|
1401
|
+
assert.equal(events[0]?.worker, 'worker-1');
|
|
1402
|
+
}
|
|
1403
|
+
}
|
|
1404
|
+
finally {
|
|
1405
|
+
await cleanup();
|
|
1406
|
+
}
|
|
1407
|
+
});
|
|
1278
1408
|
it('rejects invalid event filters', async () => {
|
|
1279
1409
|
const result = await executeTeamApiOperation('read-events', {
|
|
1280
1410
|
team_name: 'evt-read-invalid',
|
|
@@ -1339,6 +1469,36 @@ describe('executeTeamApiOperation: await-event', () => {
|
|
|
1339
1469
|
assert.match(result.error.message, /timeout_ms must be a non-negative integer/);
|
|
1340
1470
|
}
|
|
1341
1471
|
});
|
|
1472
|
+
it('resolves display team names before awaiting events', async () => {
|
|
1473
|
+
const { cwd, cleanup } = await setupDisplayTeam('evt-await-display-111111', 'evt-await-display', 'session-await-display');
|
|
1474
|
+
try {
|
|
1475
|
+
const waitPromise = executeTeamApiOperation('await-event', {
|
|
1476
|
+
team_name: 'evt-await-display',
|
|
1477
|
+
type: 'task_completed',
|
|
1478
|
+
timeout_ms: 500,
|
|
1479
|
+
poll_ms: 25,
|
|
1480
|
+
}, cwd);
|
|
1481
|
+
setTimeout(() => {
|
|
1482
|
+
void appendTeamEvent('evt-await-display-111111', {
|
|
1483
|
+
type: 'task_completed',
|
|
1484
|
+
worker: 'worker-1',
|
|
1485
|
+
task_id: '1',
|
|
1486
|
+
}, cwd);
|
|
1487
|
+
}, 25);
|
|
1488
|
+
const result = await waitPromise;
|
|
1489
|
+
assert.equal(result.ok, true);
|
|
1490
|
+
if (result.ok) {
|
|
1491
|
+
assert.equal(result.data.status, 'event');
|
|
1492
|
+
const event = result.data.event;
|
|
1493
|
+
assert.equal(event?.type, 'task_completed');
|
|
1494
|
+
assert.equal(event?.worker, 'worker-1');
|
|
1495
|
+
assert.equal(event?.task_id, '1');
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
finally {
|
|
1499
|
+
await cleanup();
|
|
1500
|
+
}
|
|
1501
|
+
});
|
|
1342
1502
|
});
|
|
1343
1503
|
// ─── read-idle-state ────────────────────────────────────────────────────────
|
|
1344
1504
|
describe('executeTeamApiOperation: read-idle-state', () => {
|
|
@@ -1389,6 +1549,32 @@ describe('executeTeamApiOperation: read-idle-state', () => {
|
|
|
1389
1549
|
await cleanup();
|
|
1390
1550
|
}
|
|
1391
1551
|
});
|
|
1552
|
+
it('resolves display team names before reading idle state', async () => {
|
|
1553
|
+
const { cwd, cleanup } = await setupDisplayTeam('idle-display-11111111', 'idle-display', 'session-idle-display');
|
|
1554
|
+
try {
|
|
1555
|
+
await writeMonitorSnapshot('idle-display-11111111', {
|
|
1556
|
+
taskStatusById: {},
|
|
1557
|
+
workerAliveByName: { 'worker-1': true, 'worker-2': true },
|
|
1558
|
+
workerStateByName: { 'worker-1': 'idle', 'worker-2': 'idle' },
|
|
1559
|
+
workerTurnCountByName: { 'worker-1': 1, 'worker-2': 1 },
|
|
1560
|
+
workerTaskIdByName: { 'worker-1': '', 'worker-2': '' },
|
|
1561
|
+
mailboxNotifiedByMessageId: {},
|
|
1562
|
+
completedEventTaskIds: {},
|
|
1563
|
+
}, cwd);
|
|
1564
|
+
const result = await executeTeamApiOperation('read-idle-state', {
|
|
1565
|
+
team_name: 'idle-display',
|
|
1566
|
+
}, cwd);
|
|
1567
|
+
assert.equal(result.ok, true);
|
|
1568
|
+
if (result.ok) {
|
|
1569
|
+
assert.equal(result.data.team_name, 'idle-display-11111111');
|
|
1570
|
+
assert.equal(result.data.all_workers_idle, true);
|
|
1571
|
+
assert.deepEqual(result.data.idle_workers, ['worker-1', 'worker-2']);
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
finally {
|
|
1575
|
+
await cleanup();
|
|
1576
|
+
}
|
|
1577
|
+
});
|
|
1392
1578
|
});
|
|
1393
1579
|
// ─── read-stall-state ───────────────────────────────────────────────────────
|
|
1394
1580
|
describe('executeTeamApiOperation: read-stall-state', () => {
|
|
@@ -1479,6 +1665,24 @@ describe('executeTeamApiOperation: read-stall-state', () => {
|
|
|
1479
1665
|
await cleanup();
|
|
1480
1666
|
}
|
|
1481
1667
|
});
|
|
1668
|
+
it('resolves display team names before reading stall state', async () => {
|
|
1669
|
+
const { cwd, cleanup } = await setupDisplayTeam('stall-display-1111111', 'stall-display', 'session-stall-display');
|
|
1670
|
+
try {
|
|
1671
|
+
await sendDirectMessage('stall-display-1111111', 'worker-1', 'leader-fixed', 'please review', cwd);
|
|
1672
|
+
const result = await executeTeamApiOperation('read-stall-state', {
|
|
1673
|
+
team_name: 'stall-display',
|
|
1674
|
+
}, cwd);
|
|
1675
|
+
assert.equal(result.ok, true);
|
|
1676
|
+
if (result.ok) {
|
|
1677
|
+
assert.equal(result.data.team_name, 'stall-display-1111111');
|
|
1678
|
+
assert.equal(result.data.leader_attention_pending, true);
|
|
1679
|
+
assert.equal(result.data.unread_leader_message_count, 1);
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
finally {
|
|
1683
|
+
await cleanup();
|
|
1684
|
+
}
|
|
1685
|
+
});
|
|
1482
1686
|
it('uses unread leader mailbox state even without recent nudge events', async () => {
|
|
1483
1687
|
const { cwd, cleanup } = await setupTeam('stall-state-mailbox');
|
|
1484
1688
|
try {
|
|
@@ -1841,6 +2045,22 @@ describe('executeTeamApiOperation: orphan-cleanup', () => {
|
|
|
1841
2045
|
assert.equal(result.data.cleanup_mode, 'orphan_cleanup');
|
|
1842
2046
|
}
|
|
1843
2047
|
});
|
|
2048
|
+
it('resolves display team names before orphan cleanup', async () => {
|
|
2049
|
+
const { cwd, cleanup } = await setupDisplayTeam('orphan-display-111111', 'orphan-display', 'session-orphan-display');
|
|
2050
|
+
try {
|
|
2051
|
+
const result = await executeTeamApiOperation('orphan-cleanup', {
|
|
2052
|
+
team_name: 'orphan-display',
|
|
2053
|
+
}, cwd);
|
|
2054
|
+
assert.equal(result.ok, true);
|
|
2055
|
+
if (result.ok) {
|
|
2056
|
+
assert.equal(result.data.team_name, 'orphan-display-111111');
|
|
2057
|
+
assert.equal(result.data.cleanup_mode, 'orphan_cleanup');
|
|
2058
|
+
}
|
|
2059
|
+
}
|
|
2060
|
+
finally {
|
|
2061
|
+
await cleanup();
|
|
2062
|
+
}
|
|
2063
|
+
});
|
|
1844
2064
|
it('returns error when team_name missing', async () => {
|
|
1845
2065
|
const result = await executeTeamApiOperation('orphan-cleanup', {}, '/tmp');
|
|
1846
2066
|
assert.equal(result.ok, false);
|