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
Will Chen
c50527b4c0
Security Panel MVP ( #1660 )
...
TODOs:
- [x] Add documentation
- [x] e2e tests: run security review, update knowledge, and fix issue
- [x] more stringent risk rating
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Introduces a new Security mode with a Security Review panel that runs
reviews, edits rules, parses findings via IPC, and supports fixing
issues, with tests and prompt/runtime support.
>
> - **UI/Preview Panel**:
> - Add `security` preview mode to `previewModeAtom` and ActionHeader
(Shield button).
> - New `SecurityPanel` showing findings table (sorted by severity), run
review, fix issue flow, and edit `SECURITY_RULES.md` dialog.
> - Wire into `PreviewPanel` content switch.
> - **Hooks**:
> - `useSecurityReview(appId)`: fetch latest review via IPC.
> - `useStreamChat`: add `onSettled` callback to invoke refreshes after
streams.
> - **IPC/Main**:
> - `security_handlers`: `get-latest-security-review` parses
`<dyad-security-finding>` from latest assistant message.
> - Register handler in `ipc_host`; expose channel in `preload`.
> - `ipc_client`: add `getLatestSecurityReview(appId)`.
> - `chat_stream_handlers`: detect `/security-review`, use dedicated
system prompt, optionally append `SECURITY_RULES.md`, suppress
Supabase-not-available note in this mode.
> - **Prompts**:
> - Add `SECURITY_REVIEW_SYSTEM_PROMPT` with structured finding output.
> - **Supabase**:
> - Enhance schema query to include `rls_enabled`, split policy
`using_clause`/`with_check_clause`.
> - **E2E Tests**:
> - New `security_review.spec.ts` plus snapshots and fixture findings;
update test helper for `security` mode and findings table snapshot.
> - Fake LLM server streams security findings for `/security-review` and
increases batch size.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot ) for commit
5022d01e22a2dd929a968eeba0da592e0aeece01. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot ).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-29 17:32:52 -07:00
Will Chen
a8f3c97396
Turbo edits v2 ( #1653 )
...
Fixes #1222 #1646
TODOs
- [x] description?
- [x] collect errors across all files for turbo edits
- [x] be forgiving around whitespaces
- [x] write e2e tests
- [x] do more manual testing across different models
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Adds Turbo Edits v2 search-replace flow with settings/UI selector,
parser/renderer, dry-run validation + fallback, proposal integration,
and comprehensive tests; updates licensing.
>
> - **Engine/Processing**:
> - Add `dyad-search-replace` end-to-end: parsing
(`getDyadSearchReplaceTags`), markdown rendering (`DyadSearchReplace`),
and application (`applySearchReplace`) with dry-run validation and
fallback to `dyad-write`.
> - Inject Turbo Edits v2 system prompt; toggle via
`isTurboEditsV2Enabled`; disable classic lazy edits when v2 is on.
> - Include search-replace edits in proposals and full-response
processing.
> - **Settings/UI**:
> - Introduce `proLazyEditsMode` (`off`|`v1`|`v2`) and helper selectors;
update `ProModeSelector` with Turbo Edits and Smart Context selectors
(`data-testid`s).
> - **LLM/token flow**:
> - Construct system prompt conditionally; update token counting and
chat stream to validate and repair search-replace responses.
> - **Tests**:
> - Add unit tests for search-replace processor; e2e tests for Turbo
Edits v2 and options; fixtures and snapshots.
> - **Licensing/Docs**:
> - Add `src/pro/LICENSE` (FSL 1.1 ALv2 future), update root `LICENSE`
and README license section.
> - **Tooling**:
> - Update `.prettierignore`; enhance test helpers (selectors, path
normalization, snapshot filtering).
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot ) for commit
7aefa02bfae2fe22a25c7d87f3c4c326f820f1e6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot ).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-28 11:36:20 -07:00
Tanner-Maasen
2ffbbbca8f
Add Azure OpenAI Custom Model Integration ( #1001 )
...
Fixes #710
This PR implements comprehensive Azure OpenAI integration for Dyad,
enabling users to leverage Azure
OpenAI models through proper environment variable configuration. The
implementation adds Azure as a
supported provider with full integration into the existing language
model architecture, including support
for GPT-5 models. Key features include environment-based
configuration using `AZURE_API_KEY` and `AZURE_RESOURCE_NAME`,
specialized UI components that provide clear
setup instructions and status indicators, and seamless integration with
Dyad's existing provider system.
The Azure provider leverages the @ai-sdk/azure package (v1.3.25) for
compatibility with the current
TypeScript language model interfaces.
The implementation includes robust error handling for missing
configuration, comprehensive test coverage
with 9 new unit tests covering critical functionality like model client
creation and error scenarios, and
an E2E test for the Azure-specific settings UI.
<img width="1510" height="908" alt="Screenshot 2025-08-18 at 9 14 32 PM"
src="https://github.com/user-attachments/assets/04aa99e1-1590-4bb0-86c9-a67b97bc7500 "
/>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Will Chen <willchen90@gmail.com >
2025-08-30 20:47:25 -07:00
Will Chen
53bbfc9813
Read JSON ( #1081 )
...
Fixes #1037
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Enable JSON file support in codebase scanning so common configs and data
(e.g., package.json, vercel.json, translations) are included. Adds .json
to the allowed extensions and removes special-casing for
package.json/vercel.json.
<!-- End of auto-generated description by cubic. -->
2025-08-26 09:57:19 -07:00
Will Chen
dfdd267f53
Backup Dyad on new versions ( #595 )
2025-07-08 11:38:06 -07:00
Will Chen
678cd3277e
Problems: auto-fix & problem panel ( #541 )
...
Test cases:
- [x] create-ts-errors
- [x] with auto-fix
- [x] without auto-fix
- [x] create-unfixable-ts-errors
- [x] manually edit file & click recheck
- [x] fix all
- [x] delete and rename case
THINGS
- [x] error handling for checkProblems isn't working as expected
- [x] make sure it works for both default templates (add tests)
- [x] fix bad animation
- [x] change file context (prompt/files)
IF everything passes in Windows AND defensive try catch... then enable
by default
- [x] enable auto-fix by default
2025-07-02 15:43:26 -07:00
Will Chen
52aebae903
Fix order of dyad tag processing ( #495 )
...
Fixes #493
2025-06-25 15:34:11 -07:00
Will Chen
08ab7c1c37
Support astro & other common FE file extensions ( #489 )
...
Closes #462
2025-06-24 22:23:20 -07:00
Will Chen
3041563809
Finish incomplete dyad write ( #475 )
...
Fixes #452
Fixes #456
Fixes #195
2025-06-23 22:53:55 -07:00
Will Chen
8464609ba8
Fix parsing dyad tags with nested tags: < > ( #445 )
...
Fixes #441
2025-06-19 10:08:26 -07:00
Will Chen
382fe9bab5
support setting for writing supabase migration files ( #427 )
2025-06-17 15:14:02 -07:00
Will Chen
c1aa6803ce
Click to edit UI ( #385 )
...
- [x] add e2e test - happy case (make sure it clears selection and next
prompt is empty, and preview is cleared); de-selection case
- [x] shim - old & new file
- [x] upgrade path
- [x] add docs
- [x] add try-catch to parser script
- [x] make it work for next.js
- [x] extract npm package
- [x] make sure plugin doesn't apply in prod
2025-06-11 13:05:27 -07:00
Will Chen
534cbad909
Allow manual context management ( #376 )
2025-06-10 13:52:20 -07:00
Will Chen
4907fcafd8
E2E test for fixing errors ( #351 )
2025-06-05 23:29:52 -07:00
Will Chen
16bf0828f5
Fix stale app UI (supabase) & overall E2E test infra improvements ( #337 )
...
Fixes #269
2025-06-04 23:07:59 -07:00
Will Chen
3558663ab7
Support native Git (experimental) ( #338 )
2025-06-04 21:37:05 -07:00
Will Chen
7994b01aa8
Context window e2e ( #324 )
2025-06-03 21:30:36 -07:00
Will Chen
c227a08d11
Gateway e2e ( #323 )
2025-06-03 16:35:46 -07:00
Will Chen
fc1ebe9e8a
e2e tests for engine ( #322 )
2025-06-03 16:11:16 -07:00
Will Chen
7235eab227
Make CI run cross-platform ( #295 )
2025-06-03 13:04:16 -07:00
Will Chen
a44a9783c1
New chat e2e ( #314 )
2025-06-02 22:35:55 -07:00
Will Chen
667fc42af4
Import e2e ( #311 )
2025-06-02 21:39:51 -07:00
Will Chen
ada1542e34
create next.js e2e test ( #305 )
2025-06-02 15:02:06 -07:00
Will Chen
c0adf8d3f2
Attach image e2e tests ( #301 )
2025-06-01 00:44:19 -07:00
Will Chen
440482356b
undo e2e ( #300 )
2025-05-31 23:59:55 -07:00
Will Chen
54af09a041
Approve & reject proposal e2e ( #298 )
2025-05-31 23:35:33 -07:00
Will Chen
647fd0169e
make it easy to write multiple e2e tests ( #280 )
2025-05-29 00:03:51 -07:00