mirror of
https://github.com/stablyai/orca.git
synced 2026-11-05 03:27:44 +00:00
* feat(connectors): connector seam lifecycle, conversation links and start behind experimentalConnectors (B2b-1) * feat(connectors): connector follow-ups, held while the agent asks, behind experimentalConnectors (B2b-2) * feat(agent-write): opt-in launch cancel, approval wait and binding fence on the shared writer executeAgentLaunch takes an optional signal; sendTerminalAgentPrompt (and sendAgentTurn) take optional onPermission: 'wait' and expectedBinding. No existing caller sets them, so every current path is unchanged. * fix(agent-write): keep the default writer path main's; fence cancel and real submit boundary Only opted-in writes take the submit layer, so default timing and the leaf re-read are unchanged. Cancellation is rechecked before a structured-refusal terminal fallback, and an opted-in launch learns Enter from an onSubmitWritten callback at the write itself, OMP's combined frame included. * fix(connectors): pass the seam's signal to the launch, read links from each host's rows, and keep delivery ids on orchestration's durable receipts (B2b-1) * fix(agent-launch): a cancel after a failed startup spawn recovers the created workspace * fix(connectors): keep an unknown receipt once the launch published, and restore local-only metadata ownership (B2b-1) * fix(connectors): settle a lane when its process is lost; removal stays host-qualified; folder delete announces removal * fix(plugins): keep folder removals out of public worktree events * fix(connectors): a launch admits its process for the lane, so queued sends never adopt a successor * fix(connectors): classify connector RPCs as host-owned; CLI start output claims a start only when definite
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
import { describe, expect, it, vi } from 'vitest'
|
|
|
|
// Fragments stay side-effect ordered: mocks, then lifecycle, then fixtures.
|
|
const { OrcaRuntimeService } = await import('./orca-runtime-test-mocks.spec')
|
|
await import('./orca-runtime-test-lifecycle.spec')
|
|
const { createFolderWorkspaceRuntimeStore, makeFolderWorkspace } =
|
|
await import('./orca-runtime-test-fixtures.spec')
|
|
|
|
describe('deleting a folder workspace', () => {
|
|
it('announces the removal to worktree lifecycle listeners under its folder key', async () => {
|
|
const folderWorkspace = makeFolderWorkspace({ folderPath: '/tmp/folder-ws' })
|
|
const runtime = new OrcaRuntimeService({
|
|
...createFolderWorkspaceRuntimeStore(folderWorkspace),
|
|
removeFolderWorkspace: () => true
|
|
})
|
|
const listener = vi.fn()
|
|
runtime.onWorktreeLifecycle(listener)
|
|
await expect(runtime.deleteFolderWorkspace(folderWorkspace.id)).resolves.toEqual({
|
|
deleted: true
|
|
})
|
|
expect(listener).toHaveBeenCalledWith({
|
|
kind: 'removed',
|
|
worktreeId: `folder:${folderWorkspace.id}`,
|
|
path: '/tmp/folder-ws'
|
|
})
|
|
})
|
|
})
|