diff --git a/AGENTS.md b/AGENTS.md index 078ec3d6d1..79d47a3728 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -57,7 +57,7 @@ When you create a new git worktree for this repository, run `npm install` inside After installation, verify that `node_modules/.bin/oxfmt` exists before running formatting. If `npm install` reports success without materializing `node_modules`, run `npm ci`; otherwise `npx` may download an unpinned formatter and rewrite unrelated files. -A worktree's `node_modules` can also be _sparsely_ populated — every package directory exists, so `npm install` exits 0 and repairs nothing, but files inside are missing (`Cannot find module '.../oxfmt/dist/cli.js'`, `oxlint/dist/cli.js`, or a dangling `.bin/tsgo` symlink). Deleting the broken package directories and rerunning `npm install` then aborts at the `better-sqlite3` native rebuild (`gyp ERR! not ok`) before any JS package is written. Use `npm install --ignore-scripts` to restore the JS toolchain; it skips the native rebuild, which `npm run fmt` / `lint` / `ts` do not need. +A worktree's `node_modules` can also be _sparsely_ populated — every package directory exists, so `npm install` exits 0 and repairs nothing, but files inside are missing (`Cannot find module '.../oxfmt/dist/cli.js'`, `oxlint/dist/cli.js`, or a dangling `.bin/tsgo` symlink). Deleting the broken package directories and rerunning `npm install` then aborts at the `better-sqlite3` native rebuild (`gyp ERR! not ok`) before any JS package is written. Use `npm install --ignore-scripts` to restore the JS toolchain; it skips the native rebuild, which `npm run fmt` / `lint` / `ts` do not need. If you subsequently need `npm run build`, run `npm rebuild dugite` first; otherwise Electron Forge packaging fails with `ENOENT: no such file or directory, lstat 'node_modules/dugite/git'`. Also run `npm install` in `testing/fake-llm-server/` before `npm run ts` in a fresh worktree. Otherwise the root type-check reports missing declarations for that package's local `express` and `cors` dependencies. diff --git a/e2e-tests/setup.spec.ts b/e2e-tests/setup.spec.ts index 2b677ffafc..a5d5d99962 100644 --- a/e2e-tests/setup.spec.ts +++ b/e2e-tests/setup.spec.ts @@ -7,6 +7,10 @@ const testSetup = testWithConfig({ testSetup("setup ai provider", async ({ po }) => { const dialog = await openAiSetupDialog(po); + const providerButtons = dialog.locator(".grid").getByRole("button"); + + await expect(providerButtons.nth(0)).toHaveAccessibleName(/OpenRouter/); + await expect(providerButtons.nth(1)).toHaveAccessibleName(/Google/); await dialog.getByRole("button", { name: /Google/ }).click(); await expect( diff --git a/src/components/SetupBanner.tsx b/src/components/SetupBanner.tsx index f1513e4b3a..f51373097c 100644 --- a/src/components/SetupBanner.tsx +++ b/src/components/SetupBanner.tsx @@ -153,12 +153,6 @@ export function SetupBanner({ Or use your own API key