refactor: make createExecution the primary lifecycle API

This commit is contained in:
Adam Weidman
2026-03-08 21:40:17 -04:00
parent f2e2014894
commit 0fc4247287
3 changed files with 34 additions and 8 deletions

View File

@@ -32,8 +32,8 @@ describe('ExecutionLifecycleService', () => {
ExecutionLifecycleService.resetForTest();
});
it('completes virtual executions in the foreground and notifies exit subscribers', async () => {
const handle = ExecutionLifecycleService.createVirtualExecution();
it('completes managed executions in the foreground and notifies exit subscribers', async () => {
const handle = ExecutionLifecycleService.createExecution();
if (handle.pid === undefined) {
throw new Error('Expected virtual execution ID.');
}
@@ -59,6 +59,23 @@ describe('ExecutionLifecycleService', () => {
unsubscribe();
});
it('supports explicit execution methods for managed executions', async () => {
const handle = ExecutionLifecycleService.createExecution(
'',
undefined,
'remote_agent',
);
if (handle.pid === undefined) {
throw new Error('Expected virtual execution ID.');
}
ExecutionLifecycleService.completeVirtualExecution(handle.pid, {
exitCode: 0,
});
const result = await handle.result;
expect(result.executionMethod).toBe('remote_agent');
});
it('supports backgrounding virtual executions and continues streaming updates', async () => {
const handle = ExecutionLifecycleService.createVirtualExecution();
if (handle.pid === undefined) {