Files
orca/src/relay/remote-cli-env.test.ts
T
Jinwoo HongandOrca 0784a7ea37 fix(ssh): bridge the full Orca CLI over the SSH relay instead of a hardcoded command switch (#7771)
The relay CLI shim on SSH remotes rejected every orchestration/mutation
command with 'Unsupported SSH Orca CLI command' because the host handled
relay CLI requests with a hand-rolled allowlist of five read-only-ish
commands. The host now runs the real bundled orca CLI entry (same entry
as the local shell command, via ELECTRON_RUN_AS_NODE) as a captured
subprocess, so remote invocations get the full command surface by
construction. Remote cwd is carried via ORCA_CLI_CWD so cwd-based
selectors (--worktree active) resolve against the caller's remote
directory; only Orca terminal-context env vars cross the bridge.

Host-interactive commands (serve, claude-teams, agent-teams-tmux) get a
targeted error, and the legacy in-process switch remains as a fallback
when the host CLI entry cannot be launched. Relay-side request timeouts
are raised to fit mutation and long-poll (--wait/--timeout-ms) commands,
and stdin forwarding now covers *-stdin payload flags.

Fixes #7716

Co-authored-by: Orca <help@stably.ai>
2026-07-08 13:59:42 -07:00

26 lines
768 B
TypeScript

import { describe, expect, it } from 'vitest'
import { pickRemoteCliEnv } from './remote-cli-env'
describe('pickRemoteCliEnv', () => {
it('forwards SSH Orca terminal and worktree context for remote CLI calls', () => {
expect(
pickRemoteCliEnv({
ORCA_TERMINAL_HANDLE: 'term_ssh',
ORCA_WORKTREE_ID: 'repo::remote',
ORCA_PANE_KEY: 'pane-1',
ORCA_WORKSPACE_ID: 'workspace-1',
ORCA_USER_DATA_PATH: '/tmp/orca',
PATH: '/usr/bin',
SECRET_TOKEN: 'nope'
})
).toEqual({
ORCA_TERMINAL_HANDLE: 'term_ssh',
ORCA_WORKTREE_ID: 'repo::remote',
ORCA_PANE_KEY: 'pane-1',
ORCA_WORKSPACE_ID: 'workspace-1',
ORCA_USER_DATA_PATH: '/tmp/orca',
PATH: '/usr/bin'
})
})
})