Files
moreminimore-vibe/playwright.config.ts
Will Chen 06ad1a7546 Smart Context: deep (#1527)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Introduce a new "deep" Smart Context mode that supplies versioned
files (by commit) to the engine, adds code search rendering, stores
source commit hashes, improves search-replace recovery, and updates
UI/tests.
> 
> - **Smart Context (deep)**:
> - Replace `conservative` with `deep`; limit context to ~200 turns;
send `sourceCommitHash` per message.
> - Build and pass `versioned_files` (hash-id map + per-message file
refs) and `app_id` to engine.
> - **DB**:
>   - Add `messages.source_commit_hash` (+ migration/snapshot).
> - **Engine/Processing**:
> - Retry Turbo Edits v2: first re-read then fallback to `dyad-write` if
search-replace fails.
> - Include provider options and versioned files in requests; add
`getCurrentCommitHash`/`getFileAtCommit`.
> - **UI**:
>   - Pro mode selector: new `deep` option; tooltips polish.
> - Add `DyadCodeSearch` and `DyadCodeSearchResult` components; parser
supports new tags.
> - **Tests/E2E**:
> - New `smart_context_deep` e2e; update snapshots to include `app_id`
and deep mode; adjust Playwright timeout.
>   - Unit tests for versioned codebase context.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
e3d3bffabb2bc6caf52103461f9d6f2d5ad39df8. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-11-06 10:45:39 -08:00

54 lines
1.8 KiB
TypeScript

import { PlaywrightTestConfig } from "@playwright/test";
import os from "os";
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
const config: PlaywrightTestConfig = {
testDir: "./e2e-tests",
workers: 1,
retries: process.env.CI ? 2 : 0,
timeout: process.env.CI ? 180_000 : 45_000,
// Use a custom snapshot path template because Playwright's default
// is platform-specific which isn't necessary for Dyad e2e tests
// which should be platform agnostic (we don't do screenshots; only textual diffs).
snapshotPathTemplate:
"{testDir}/{testFileDir}/snapshots/{testFileName}_{arg}{ext}",
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
// Why not use GitHub reporter? Because we're using matrix and it's discouraged:
// https://playwright.dev/docs/test-reporters#github-actions-annotations
reporter: process.env.CI
? [
[
"blob",
{
// Speculatively fix https://github.com/actions/download-artifact/issues/298#issuecomment-2016075998
// by using a timestamp in the filename
outputFile: `./blob-report/report-${os.platform()}-${timestamp}.zip`,
},
],
]
: [["html"], ["line"]],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* See https://playwright.dev/docs/trace-viewer */
trace: "retain-on-failure",
// These options do NOT work for electron playwright.
// Instead, you need to do a workaround.
// See https://github.com/microsoft/playwright/issues/8208
//
// screenshot: "on",
// video: "retain-on-failure",
},
webServer: [
{
command: `cd testing/fake-llm-server && npm run build && npm start`,
url: "http://localhost:3500/health",
},
],
};
export default config;