<!-- 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 -->
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import { testSkipIfWindows } from "./helpers/test_helper";
|
|
|
|
testSkipIfWindows("send message to engine", async ({ po }) => {
|
|
await po.setUpDyadPro();
|
|
await po.selectModel({ provider: "Google", model: "Gemini 2.5 Pro" });
|
|
await po.sendPrompt("[dump] tc=turbo-edits");
|
|
|
|
await po.snapshotServerDump("request");
|
|
await po.snapshotMessages({ replaceDumpPath: true });
|
|
});
|
|
|
|
testSkipIfWindows("send message to engine - openai gpt-5", async ({ po }) => {
|
|
await po.setUpDyadPro();
|
|
// By default, it's using auto which points to Flash 2.5 and doesn't
|
|
// use engine.
|
|
await po.selectModel({ provider: "OpenAI", model: "GPT 5" });
|
|
await po.sendPrompt("[dump] tc=turbo-edits");
|
|
|
|
await po.snapshotServerDump("request");
|
|
});
|
|
|
|
testSkipIfWindows(
|
|
"send message to engine - anthropic claude sonnet 4",
|
|
async ({ po }) => {
|
|
await po.setUpDyadPro();
|
|
// By default, it's using auto which points to Flash 2.5 and doesn't
|
|
// use engine.
|
|
await po.selectModel({ provider: "Anthropic", model: "Claude 4 Sonnet" });
|
|
await po.sendPrompt("[dump] tc=turbo-edits");
|
|
|
|
await po.snapshotServerDump("request");
|
|
},
|
|
);
|
|
|
|
testSkipIfWindows(
|
|
"smart auto should send message to engine",
|
|
async ({ po }) => {
|
|
await po.setUpDyadPro();
|
|
await po.sendPrompt("[dump] tc=turbo-edits");
|
|
|
|
await po.snapshotServerDump("request");
|
|
await po.snapshotMessages({ replaceDumpPath: true });
|
|
},
|
|
);
|
|
|
|
testSkipIfWindows(
|
|
"regular auto should send message to engine",
|
|
async ({ po }) => {
|
|
await po.setUpDyadPro();
|
|
const proModesDialog = await po.openProModesDialog({
|
|
location: "home-chat-input-container",
|
|
});
|
|
await proModesDialog.setSmartContextMode("off");
|
|
await proModesDialog.close();
|
|
await po.sendPrompt("[dump] tc=turbo-edits");
|
|
|
|
await po.snapshotServerDump("request");
|
|
await po.snapshotMessages({ replaceDumpPath: true });
|
|
},
|
|
);
|