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 -->
This commit is contained in:
@@ -131,17 +131,36 @@ export default Index;
|
||||
lastMessage &&
|
||||
typeof lastMessage.content === "string" &&
|
||||
lastMessage.content.startsWith(
|
||||
"There was an issue with the following `dyad-search-replace` tags",
|
||||
"There was an issue with the following `dyad-search-replace` tags.",
|
||||
)
|
||||
) {
|
||||
// Fix errors in create-ts-errors.md and introduce a new error
|
||||
messageContent =
|
||||
`
|
||||
if (lastMessage.content.includes("Make sure you use `dyad-read`")) {
|
||||
// Fix errors in create-ts-errors.md and introduce a new error
|
||||
messageContent =
|
||||
`
|
||||
<dyad-read path="src/pages/Index.tsx"></dyad-read>
|
||||
|
||||
<dyad-search-replace path="src/pages/Index.tsx">
|
||||
<<<<<<< SEARCH
|
||||
// STILL Intentionally DO NOT MATCH ANYTHING TO TRIGGER FALLBACK
|
||||
<h1 className="text-4xl font-bold mb-4">Welcome to Your Blank App</h1>
|
||||
=======
|
||||
<h1 className="text-4xl font-bold mb-4">Welcome to the UPDATED App</h1>
|
||||
>>>>>>> REPLACE
|
||||
</dyad-search-replace>
|
||||
` +
|
||||
"\n\n" +
|
||||
generateDump(req);
|
||||
} else {
|
||||
// Fix errors in create-ts-errors.md and introduce a new error
|
||||
messageContent =
|
||||
`
|
||||
<dyad-write path="src/pages/Index.tsx" description="Rewrite file.">
|
||||
// FILE IS REPLACED WITH FALLBACK WRITE.
|
||||
</dyad-write>` +
|
||||
"\n\n" +
|
||||
generateDump(req);
|
||||
"\n\n" +
|
||||
generateDump(req);
|
||||
}
|
||||
}
|
||||
|
||||
console.error("LASTMESSAGE", lastMessage);
|
||||
|
||||
Reference in New Issue
Block a user