diff --git a/INSTALLATION.md b/INSTALLATION.md index 1d301eb5..06825ad8 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -16,7 +16,7 @@ Open SWE has two runnable pieces: - [uv](https://docs.astral.sh/uv/) package manager - [LangGraph CLI](https://docs.langchain.com/langsmith/cli) - [ngrok](https://ngrok.com/) (for local development — exposes webhook endpoints to the internet) -- [Bun](https://bun.sh/) (only if you want to run the dashboard UI locally — see step 8). Node 20+ also works, but `ui/bun.lock` is the canonical lockfile. +- [pnpm](https://pnpm.io/) (only if you want to run the dashboard UI locally — see step 8). Node 20+ also works, but `ui/pnpm-lock.yaml` is the canonical lockfile. ## 1. Clone and install @@ -582,11 +582,11 @@ The dashboard is the web app in `ui/`. It's a static TanStack Start client that ```bash cd ui -bun install +pnpm install cat > .env <<'EOF' VITE_DASHBOARD_API_BASE_URL="http://localhost:2024" EOF -bun run dev # vite dev --port 3000 -> http://localhost:3000 +pnpm run dev # vite dev --port 3000 -> http://localhost:3000 ``` The dashboard needs `VITE_DASHBOARD_API_BASE_URL` in `ui/.env` pointing at the backend for local dev. The file is intentionally untracked because `.env*` files are gitignored. @@ -595,7 +595,7 @@ The client calls `${VITE_DASHBOARD_API_BASE_URL}/dashboard/api/*` with `credenti For the dashboard login to succeed, you need (from steps 3c / 6): `GITHUB_APP_CLIENT_ID`, `GITHUB_APP_CLIENT_SECRET`, `DASHBOARD_JWT_SECRET`, `DASHBOARD_API_BASE_URL`, `DASHBOARD_BASE_URL`, and `DASHBOARD_ALLOWED_ORIGINS`. To reach the admin pages (user mappings, etc.), add your GitHub login or email to `CONFIGURED_ADMINS`. -Other UI scripts: `bun run build`, `bun run typecheck`, `bun run lint`, `bun run test`. +Other UI scripts: `pnpm run build`, `pnpm run typecheck`, `pnpm run lint`, `pnpm run test`. ## 9. Verify it works diff --git a/tests/e2e/README.md b/tests/e2e/README.md index 7edfbc51..990ef3cd 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -54,7 +54,7 @@ extra fake is the OAuth-token store (an external credential). The UI is built by `global-setup.ts` with `VITE_DASHBOARD_API_BASE_URL` pointed at the harness. It builds once; set `E2E_FORCE_UI_BUILD=1` to rebuild (e.g. after a -UI change or port change). Requires `bun`. +UI change or port change). Requires Corepack with `pnpm` enabled. ## Run diff --git a/tests/e2e/global-setup.ts b/tests/e2e/global-setup.ts index bd4ed3d8..17485f1f 100644 --- a/tests/e2e/global-setup.ts +++ b/tests/e2e/global-setup.ts @@ -14,9 +14,9 @@ export default function globalSetup() { if (existsSync(shell) && !process.env.E2E_FORCE_UI_BUILD) return; if (!existsSync(resolve(ui, "node_modules"))) { - execSync("bun install", { cwd: ui, stdio: "inherit" }); + execSync("corepack pnpm install --frozen-lockfile", { cwd: ui, stdio: "inherit" }); } - execSync("bun run build", { + execSync("corepack pnpm run build", { cwd: ui, stdio: "inherit", env: { ...process.env, VITE_DASHBOARD_API_BASE_URL: `http://127.0.0.1:${port}` }, diff --git a/ui/AGENTS.md b/ui/AGENTS.md index f9e31337..1903fa68 100644 --- a/ui/AGENTS.md +++ b/ui/AGENTS.md @@ -4,9 +4,9 @@ This file applies to all work under `ui/`. ## Package manager -- Use **Bun** for dashboard dependency management and script execution. -- `bun.lock` is the canonical lockfile for this directory. -- Run UI scripts with `bun run