feat(desktop): migrate existing projects and worktrees

This commit is contained in:
Mohamed Boudra
2026-07-19 00:22:17 +02:00
parent 4d2acfbeb5
commit b447a650a7
108 changed files with 4576 additions and 5585 deletions
+13 -1
View File
@@ -83,7 +83,19 @@ it does not depend on the server.
Owns the low-level daemon WebSocket driver plus the higher-level `PaseoClient`
facade. App and CLI may import the low-level driver from
`@getpaseo/client/internal/daemon-client` during migration, while new SDK-shaped
code imports from `@getpaseo/client`.
code imports from `@getpaseo/client`. Node automation uses
`@getpaseo/client/node`, which owns daemon discovery, authentication, transport
selection, and the capability-gated host automation facade shared by the CLI and
published migration tools.
### `packages/migrate` — Installation migration CLI
Published as `@getpaseo/migrate`. It inspects third-party installation metadata
through source adapters, maps source-neutral projects/config/workspaces, and
applies them through the public Node host automation client. Source knowledge and
fixtures stay in this package; the daemon and shared app workflow remain
source-neutral. Desktop bundles the exact-version CLI and exposes a narrow,
local-only Electron bridge for supported migrations.
### `packages/app` — Mobile + web client (Expo)
+9
View File
@@ -146,6 +146,15 @@ Vitest picks up tests by suffix. The suffix tells the runner which category it b
App-level Playwright browser E2E lives in `packages/app/e2e/*.spec.ts` and runs via `npm run test:e2e --workspace=@getpaseo/app` (separate from Vitest E2E). App Playwright specs that hit real providers use `*.real.spec.ts` and run through `npm run test:e2e:real --workspace=@getpaseo/app`; the default app E2E project ignores that suffix so CI does not need provider credentials.
Desktop migration coverage starts from the real product Integrations row and crosses the real
Electron main process, compiled sandboxed preload, production migration IPC, a real
Desktop-managed daemon, and the bundled migration entrypoint. It covers confirmation, streamed
output, success, failure, and ineligible-host UI:
```bash
npm run test:migration-electron --workspace=@getpaseo/desktop
```
Live provider smoke tests belong in `*.real.e2e.test.ts`, not `*.test.ts`, even when guarded by environment variables. Default unit suites must use deterministic provider adapters/fakes so missing credits, auth outages, and upstream model drift do not block normal CI.
Codex MultiAgentV2 real tests use local Codex authentication rather than the OpenRouter-compatible test provider. OpenRouter does not accept Codex collaboration-history items on the parent follow-up request, so it cannot verify a complete native sub-agent turn.