mirror of
https://github.com/stablyai/orca.git
synced 2026-11-03 02:27:43 +00:00
* Refuse unsupported SSH project setup before local API dispatch * fix(projects): keep the desktop's SSH refusal copy and drop a re-export The desktop's own project-setup IPC is not an Orca server, so it keeps saying the SSH connection is not connected; the renderer now refuses SSH setup before reaching it. Callers import the shared refusal message directly instead of through the controller. Adds a headless paired e2e that sets up a project on the server's SSH host from a web client. Refs #33124 * fix(projects): give the server refusal only for a paired server's SSH host A desktop's own SSH host keeps its 'not connected' copy; the server refusal shows on a web client, or for a target only a paired server lists. Refs #33124 * test(e2e): read the added SSH target from the RPC result * test(e2e): pass a typed SSH execution host id * test(e2e): give the paired SSH project-setup timeout bump its reason --------- Co-authored-by: Mohith S <smohith58@gmail.com>
23 lines
787 B
TypeScript
23 lines
787 B
TypeScript
import type { ExecutionHostId } from './execution-host'
|
|
|
|
export const SERVER_SSH_PROJECT_ADD_UNAVAILABLE_MESSAGE =
|
|
"This Orca server can't add projects on its SSH hosts. Add the SSH host on your computer to open its projects."
|
|
|
|
/** Repo IDs can repeat across hosts; hostId selects the intended setup, while older clients omit it and retain first-ID matching. */
|
|
export type ProjectHostSetupTarget = {
|
|
setupId: string
|
|
hostId?: ExecutionHostId
|
|
}
|
|
|
|
type SetupIdentity = { id: string; hostId: string }
|
|
|
|
export function findProjectHostSetup<T extends SetupIdentity>(
|
|
setups: readonly T[],
|
|
target: ProjectHostSetupTarget
|
|
): T | undefined {
|
|
return setups.find(
|
|
(setup) =>
|
|
setup.id === target.setupId && (target.hostId === undefined || setup.hostId === target.hostId)
|
|
)
|
|
}
|