mirror of
https://github.com/stablyai/orca.git
synced 2026-10-19 16:03:26 +00:00
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>
26 lines
768 B
TypeScript
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'
|
|
})
|
|
})
|
|
})
|