- 23 12月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Update README contributing section to reference license details below instead of stating Apache 2.0 explicitly. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit e1c66fde9c8c12a6c020d5e60123299bbe84e8d6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Clarified the README license text to point to the License section instead of naming the license directly. Keeps docs consistent with the LICENSE file and avoids outdated info. <sup>Written for commit e1c66fde9c8c12a6c020d5e60123299bbe84e8d6. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 20 12月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Introduce Agent v2 local tool‑calling mode with parallel tools, consent workflow, UI, and AI message persistence (incl. MCP integration and Supabase-aware ops). > > - **Agent v2 (Local Agent) • Tool-calling mode**: > - Add new chat mode (`local-agent`) with parallel tool calls and MCP tool support; dedicated system prompt and streaming handler. > - Built-in tools: `read_file`, `list_files`, `write_file`, `rename_file`, `delete_file`, `search_replace`, `add_dependency`, `add_integration`, `execute_sql`, `get_database_schema`, `set_chat_summary`. > - Consent workflow: per-tool “ask/always” defaults, inline consent banner, and settings page to manage consents. > - **UI**: > - Render new custom tags in `DyadMarkdownParser` (e.g., `dyad-list-files`, `dyad-database-schema`, MCP call/result), plus `AgentConsentBanner`. > - `ChatModeSelector` exposes “Agent v2 (experimental)”; settings add “Agent Permissions”. > - **Backend/IPC**: > - New local-agent handler, tool definitions, shared file ops (Git/Supabase deploy), provider/options refactor, MCP consent bridge; register agent tool IPC handlers. > - Persist AI SDK messages/tool calls via `messages.ai_messages_json` with size guard and startup cleanup. > - **DB**: > - Migration `0018_*` adds `ai_messages_json` column; snapshot/journal updated. > - **Testing**: > - E2E fixtures and specs for local-agent (parallel tools, consent, MCP); fake LLM server support; unit tests for utils/handler. > - **Docs**: > - Add `docs/agent_architecture.md` and link from `CONTRIBUTING.md`. > - **Deps**: > - Add `jsonrepair`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 27a18e8ec6ec4e41edd0abcddffc42ee3a9fda3a. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Introduce Local Agent v2 with parallel tool calls and user consent, plus UI to manage and visualize tool activity. Adds DB persistence for AI tool-call messages and smarter Supabase auto-deploys. - **New Features** - New “Agent v2” chat mode with tool calls (read/list files, DB schema, write/rename/delete, search/replace, add dependency, add integration, execute SQL, set chat summary), parallel execution, and MCP tool support. - Consent system with defaults, “accept once/always/decline,” inline banner prompts, and a settings panel to manage consents. - UI rendering for tool activity: list files, database schema, and tool call/result/error blocks. - Streaming handler, XML tool translator, and a dedicated system prompt for Agent v2. - Database: messages.ai_messages_json to store AI SDK messages/tool calls with size limits and startup cleanup. - **Refactors** - Supabase: support functions/_shared modules, detect edits, and deploy all affected functions; centralized file operations for shared tooling. <sup>Written for commit 27a18e8ec6ec4e41edd0abcddffc42ee3a9fda3a. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 18 12月, 2025 6 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Bumps app version to 0.31.0-beta.1 in package.json. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 4ee3fcee216041f734d39323489514021b90b042. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Bumps the app version from 0.30.0-beta.1 to 0.31.0-beta.1 to prepare the next beta release. <sup>Written for commit 4ee3fcee216041f734d39323489514021b90b042. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit c8f494513ae9b2fedda833aeda41ed660b584f16. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 015da81bdee067873de66007016e46b15d3b4ff0. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
## Summary - update the Playwright summary script to support workflow_run events and optional comment skipping - stop the CI workflow from posting Playwright comments directly and only generate the summary - add a workflow_run-based commenter workflow that downloads artifacts and posts results for PRs, including forks ## Testing - not run (workflow changes only) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_e_694340b2da6083278e42db076ea89eba) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Moves Playwright commenting to a workflow_run job that downloads artifacts and posts/updates the summary; CI now only uploads the report, and the summary script improves PR/run detection and OS bucketing. > > - **Workflows**: > - **CI (`.github/workflows/ci.yml`)**: Remove in-job PR comment step; keep merging reports and uploading `playwright-report` artifact. > - **New (`.github/workflows/playwright-comment.yml`)**: `workflow_run` on CI to download artifacts (`html-report--attempt-*`, `blob-report-*`) and run `scripts/generate-playwright-summary.js` to comment on the PR (supports forks). > - **Script (`scripts/generate-playwright-summary.js`)**: > - Add PR detection for `workflow_run` and `PR_NUMBER`; use `PLAYWRIGHT_RUN_ID` for report link. > - Improve OS detection/bucketing (auto-detect from attachments/stacks, sensible defaults, lazy bucket creation). > - Safer fallbacks when no artifacts; always write job summary; skip PR comment when no PR is detected. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8428f7ad6eb0671571cb4ae0e473434ffb1cf8d1. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes Playwright report comments on forked PRs by moving comment posting to a workflow_run job. CI now only uploads the reports; a separate workflow posts or updates the PR comment using artifacts. - **Bug Fixes** - Added Playwright Report Comment workflow (workflow_run on CI) to download artifacts and comment on PRs from forks. - Removed PR comment step from CI; CI only uploads Playwright reports. - Updated summary script to support workflow_run, auto-detect the PR number, use PLAYWRIGHT_RUN_ID for links, and improve OS detection/bucketing. <sup>Written for commit 8428f7ad6eb0671571cb4ae0e473434ffb1cf8d1. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 17 12月, 2025 2 次提交
-
-
由 Mohamed Aziz Mejri 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Fixes scrollbar flickering in annotator mode by constraining draggable inputs within the container and suppressing scroll during drag for smoother movement. - **Bug Fixes** - Added containerRef to DraggableTextInput and elementRef to calculate bounds. - Constrained drag coordinates to container size and accounted for scale. - Prevented default and stopped propagation on mousemove to avoid scroll jitter. - Passed containerRef from Annotator to DraggableTextInput. <sup>Written for commit 959605ddaa5faf23252ee797bf206c6dff46a069. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
Fixes #1949 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 46ac310c762fd4044c35bc59264122234ed19bbf. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Make app ports dynamic instead of hardcoded 32100 to prevent conflicts and keep local runs, Docker, and env URLs in sync. Ports now derive from appId using a base of 32100. - **Bug Fixes** - Added getAppPort(appId) = 32100 + (appId % 10_000). - Used the dynamic port in NEXT_PUBLIC_SERVER_URL, start commands, Docker -p mapping, and cleanUpPort. - Updated getCommand to accept appId and generate a per-app default start command. <sup>Written for commit 46ac310c762fd4044c35bc59264122234ed19bbf. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 16 12月, 2025 4 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Posts a per-OS Playwright test summary as a PR comment by adding a JSON reporter and a CI step to generate and publish the results. > > - **CI / Reporting** > - Add permissions and a GitHub Script step in `.github/workflows/ci.yml` to generate and post/update a Playwright test summary comment after merging shard reports. > - Upload merged HTML report artifact and link to full run. > - **Playwright config** > - Update `merge.config.ts` to add JSON reporter output to `playwright-report/results.json` alongside HTML. > - **New Script** > - Add `scripts/generate-playwright-summary.js` to parse Playwright JSON, compute per-OS (macOS/Windows) pass/fail/flaky/skipped counts, list top failures/flaky tests, and write both PR comment and job summary. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d5ca6987f65e9a7063533960382516af89e67391. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Posts Playwright test results as a PR comment with a per-OS summary, flaky test counts, and top failures, improving CI visibility across macOS and Windows. Adds a JSON reporter and a GitHub Script step that links to the full report. - **New Features** - Adds JSON reporter output to playwright-report/results.json. - Adds a script to parse results, include flaky tests, post/update the PR comment, and write the job summary. - Updates CI workflow permissions and runs the summary script after report merge. <sup>Written for commit d5ca6987f65e9a7063533960382516af89e67391. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
Credit: thanks @SlayTheDragons whose PR https://github.com/dyad-sh/dyad/pull/1665 paved the way for this implementation. <!-- CURSOR_SUMMARY --> > [!NOTE] > Adds _shared module support for Supabase edge functions with import-map packaging and automatic redeploys; updates deployment to include full function directories plus shared files, and adds path utilities and tests. > > - **Supabase Edge Functions** > - **Shared Modules Support**: Detect `_shared` changes and redeploy all functions; regular function changes deploy only that function. > - **Deployment Overhaul**: `deploySupabaseFunctions` now uploads full function directories plus `_shared` files via multipart form-data, sets `entrypoint_path`, and writes `import_map.json` (`_shared/` → `../_shared/`). > - **Function Discovery & Packaging**: Add file collection helpers (`listFilesWithStats`, `loadZipEntries`) and path utilities (`toPosixPath`, `findFunctionDirectory`, `stripSupabaseFunctionsPrefix`) with signature-based caching for `_shared`. > - **APIs & Utils**: Introduce `isSharedServerModule`, refine `isServerFunction` (excludes `_shared`), add `extractFunctionNameFromPath`, and `buildSignature`. > - **IPC Changes** > - Update file edit/rename/delete flows to track shared module edits and trigger full redeploys; otherwise deploy per-function using extracted name and `appPath`. > - **Prompts** > - Document `_shared` usage and import pattern in Supabase prompt. > - **Tests** > - Add tests for function/shared detection, name extraction, path handling, and signature building. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit f35599ec0e708e2ef6b7e78ae7901b29953a6dff. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds support for shared modules for Supabase edge functions. Shared code in supabase/functions/_shared is now bundled via an import map and triggers redeploys across all functions when changed. - **New Features** - Detects shared modules in supabase/functions/_shared and redeploys all functions when they change. - Deploys full function directories plus shared files, and writes an import_map.json that resolves "_shared/" imports. - Auto-deploys only the affected function on file changes; switches to redeploy-all when a shared module is touched. - **Refactors** - deploySupabaseFunction now uploads multiple files (function + shared) using multipart form-data and sets entrypoint/import map. - Added file collection, path utilities, and shared-file caching via content signatures to reduce redundant reads. - Updated deployAllSupabaseFunctions to skip non-function dirs (e.g., _shared) and use functionPath. - Added tests for function/shared detection, path handling, and signature building. <sup>Written for commit 302d84625d9e61477db9ada052a027b29ff18cef. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Rename the “Agent” chat mode to “Build with MCP” and update its label and description in `src/components/ChatModeSelector.tsx`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a5ad57fa2492941186c0cdba9ea9d6340817ea6b. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Renamed the “Agent” chat mode to “Build with MCP” and added shared module support for Supabase Edge Functions, including automatic redeploys when shared code changes. - **New Features** - Updated UI: “Agent” → “Build (MCP)” in mode name and “Build with MCP (experimental)” in selector. - Detect changes in supabase/functions/_shared and redeploy all functions accordingly. - Deploy functions with their full directory plus shared files; add an import_map to resolve “_shared/” imports. - Cache shared files by signature to avoid redundant reads. - Added tests for path helpers and signature building. - **Refactors** - deploySupabaseFunctions now accepts appPath and functionPath, and uploads multiple files instead of a single content string. - Updated app and response handlers to use the new deploy flow, skip per-function redeploys when shared modules change, and avoid treating _shared as a function. - Added isSharedServerModule and refined isServerFunction to exclude _shared. <sup>Written for commit a5ad57fa2492941186c0cdba9ea9d6340817ea6b. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Switches budget fetch to `https://api.dyad.sh/v1/user/info` and validates/consumes `usedCredits`, `totalCredits`, and `budgetResetDate` directly via Zod. > > - **IPC/Pro handlers (`src/ipc/handlers/pro_handlers.ts`)**: > - **Endpoint**: Update user info URL to `https://api.dyad.sh/v1/user/info`. > - **Validation**: Add `zod` schema `UserInfoResponseSchema` to validate API response. > - **Data mapping**: Use `usedCredits`, `totalCredits`, `budgetResetDate`, and `userId` from response directly; remove conversion logic and old nested `user_info` parsing. > - **Redaction**: Compute `redactedUserId` from `userId` and return parsed `UserBudgetInfo`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit da1f192c2cabb2154bd10b69555c27d62fbb6368. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Switched user budget fetch to the new user info proxy and added schema validation. Uses API-provided credits directly and removes the old conversion logic. - **Refactors** - Use https://api.dyad.sh/v1/user/info instead of llm-gateway. - Validate response with a Zod schema (usedCredits, totalCredits, budgetResetDate, userId). - Map fields directly to UserBudgetInfo and remove CONVERSION_RATIO. - Keep redacted user ID format (****1234). - **Dependencies** - Removed unused html-dom-parser, html-react-parser, and react-property from the lockfile. <sup>Written for commit da1f192c2cabb2154bd10b69555c27d62fbb6368. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 15 12月, 2025 1 次提交
-
-
由 Mohamed Aziz Mejri 提交于
closes #1803 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Detects when the app was force-closed and shows a dialog with the last known CPU and memory usage. Adds background performance monitoring so we can surface metrics on next launch. - **New Features** - Start a performance monitor at app launch; captures process and system memory/CPU every 30s and on quit. - Persist metrics in settings.lastKnownPerformance and track settings.isRunning to detect improper shutdowns. - On startup, if the previous run was force-closed, send a "force-close-detected" IPC event after the window loads. - Add ForceCloseDialog to display timestamped process/system metrics. - Whitelist the new IPC channel in preload and listen for it on the home page. <sup>Written for commit 0543cdc234da7f94024e8506749aaa9ca36ef916. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 14 12月, 2025 1 次提交
-
-
由 Mohamed Aziz Mejri 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds an in-app screenshot annotator to the Preview panel for Pro users so you can capture the current app view, draw or add text, and submit an annotated image to chat. - **New Features** - Pen button in PreviewIframe to toggle annotator; captures a screenshot via worker messaging and displays it in a Konva canvas. - Tools: select, freehand draw, and draggable text; supports undo/redo, delete, and resizing with Transformer. Canvas scales to the container. Includes a color picker. - Submit exports a PNG and attaches it to the chat via useAttachments; prefills the chat input; annotator auto-closes after submit. - Pro-only: non-Pro users see an upsell screen. - State atoms added: annotatorModeAtom, screenshotDataUrlAtom, attachmentsAtom; PreviewIframe now handles dyad-screenshot-response messages. - **Dependencies** - Added konva, react-konva, perfect-freehand, and html-to-image. - Proxy now injects html-to-image and the new dyad-screenshot-client.js for screenshot capture. <sup>Written for commit 580aca271c5993a0dc7426e36e34393e073bd67b. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 13 12月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> --- > [!NOTE] > Parameterizes the undo e2e test and adds a second run using native Git via a shared helper. > > - **Tests (e2e)**: > - Refactor `e2e-tests/undo.spec.ts` to use `runUndoTest(po, nativeGit)` helper. > - Pass `nativeGit` through `po.setUp({ autoApprove: true, nativeGit })`. > - Import `PageObject` from `helpers/test_helper`. > - Add second test "undo with native git" alongside existing "undo" test. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2108a7d73669794f0052192e8b5a1ffac3d54ec1. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Parameterized the undo e2e test to run with and without native Git, improving coverage without duplicating code. - **Refactors** - Added runUndoTest(po, nativeGit) helper and passed nativeGit to setUp. - Split into two test cases: “undo” and “undo with native git”. - Minor whitespace-only formatting updates in snapshot and fixture files. <sup>Written for commit 2108a7d73669794f0052192e8b5a1ffac3d54ec1. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 12 12月, 2025 6 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Load Monaco via @monaco-editor/react loader, drop custom workers, and initialize themes/TypeScript after loader init. > > - **Editor/Monaco**: > - Switch to `@monaco-editor/react` `loader.init()` with type-only `editor` import. > - Remove worker imports and `MonacoEnvironment.getWorker` configuration. > - Move theme registration (`dyad-light`, `dyad-dark`) and TypeScript compiler/diagnostics setup into the loader init callback. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c4b7c025725273068463feac3fbdb7b61125fc10. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Load Monaco from a CDN via @monaco-editor/react and initialize themes/TypeScript settings after loader init. This reduces bundle size and removes custom worker setup. - **Refactors** - Removed web worker imports and MonacoEnvironment configuration. - Switched from direct monaco import to type-only import; initialization now uses loader.init(). - Moved theme registration (dyad-light/dark) and TS compiler/diagnostics setup into the loader init callback. <sup>Written for commit c4b7c025725273068463feac3fbdb7b61125fc10. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Refactors code highlighting to use react-shiki/core with a singleton highlighter and preloaded langs/themes, adds a fallback renderer, bumps react-shiki, and adds tests for message summarization. > > - **Frontend** > - **CodeHighlight** (`src/components/chat/CodeHighlight.tsx`): Replace `useShikiHighlighter` with `ShikiHighlighter` from `react-shiki/core` using a singleton `createHighlighterCore` and JS regex engine; preload common languages and GitHub light/dark themes; add `<pre><code>` fallback while loading. > - **Tests** > - Add/expand Vitest suite for `formatMessagesForSummary` (`src/__tests__/formatMessagesForSummary.test.ts`): covers truncation, ordering, special chars, undefined content, and edge cases. > - **Dependencies** > - Upgrade `react-shiki` to `^0.9.0` in `package.json`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit b32d224cd21d3c76e77799f2995905e523406bf9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Preloaded a specific set of Shiki languages and themes using react-shiki core, and updated CodeHighlight to use a singleton highlighter. This reduces bundle size and stabilizes code rendering with a simple fallback while loading. - **Refactors** - Switched to react-shiki/core with ShikiHighlighter and a singleton highlighter. - Preloaded common languages (js/ts/jsx/tsx/html/css/json/markdown/python/etc.) and GitHub light/dark themes. - Used the JavaScript regex engine and added a plain <pre><code> fallback until the highlighter is ready. - **Dependencies** - Upgraded react-shiki to ^0.9.0. <sup>Written for commit b32d224cd21d3c76e77799f2995905e523406bf9. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
The sourcemap is almost 20mb (and we still don't get proper stacktraces for errors in the main/node.js thread) <!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 267749b95f6416b3f88c8caa9a72e21438fc1ee8. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit ade02043a363fbe88d4405f97362e0f8995ef5ca. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
This allows us to identify which Dyad Pro user filed an issue on GitHub by using a partial internal identifier <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds a redacted Dyad Pro user ID (last 4 chars) to bug report/session templates, sourced from the Pro user info endpoint and exposed via user budget info. > > - **Frontend (HelpDialog)**: > - Display `Pro User ID` in prefilled bug report and session report bodies using `userBudget.redactedUserId`. > - Consume `useUserBudgetInfo` to access `userBudget`. > - **IPC/Backend**: > - `get-user-budget`: derive `redactedUserId` from `user_info.user_id` (mask all but last 4 chars); include in test mock and response. > - **Types**: > - Extend `UserBudgetInfoSchema` with `redactedUserId: string`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1883a1ef94fec25b370df3d46054fb56d659dee8. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a redacted Dyad Pro user ID (last 4 chars) to bug report templates to help correlate GitHub issues with Pro accounts while protecting privacy. - **New Features** - Derives redactedUserId from user_info.user_id in the Pro IPC handler and adds it to UserBudgetInfo. - Shows “Pro User ID” in HelpDialog’s debug info and session details. - Extends UserBudgetInfo schema with a redactedUserId field. <sup>Written for commit 1883a1ef94fec25b370df3d46054fb56d659dee8. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
-
- 10 12月, 2025 4 次提交
-
-
由 Adeniji Adekunle James 提交于
I moved all isomorphic-git usage into a single git_utils.ts file and added Dugite as an alternative Git provider. The app now checks the user’s settings and uses dugite when user enabled native git for all isomorphic-git commands. This makes it easy to fully remove isomorphic-git in the future by updating only git_utils.ts. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds Dugite-based native Git (bundled binary) and refactors all Git calls to a unified git_utils API, replacing direct isomorphic-git usage across the app. > > - **Git Platform Abstraction**: > - Introduces `dugite` and bundles Git via Electron Forge (`extraResource`) with `LOCAL_GIT_DIRECTORY` setup in `src/main.ts`. > - Adds `src/ipc/git_types.ts` and a comprehensive `src/ipc/utils/git_utils.ts` wrapper supporting both Dugite (native) and `isomorphic-git` (fallback): `commit`, `add`/`addAll`, `remove`, `init`, `clone`, `push`, `setRemoteUrl`, `currentBranch`, `listBranches`, `renameBranch`, `log`, `isIgnored`, `getCurrentCommitHash`, `getGitUncommittedFiles`, `getFileAtCommit`, `checkout`, `stageToRevert`. > - **Refactors (switch to git_utils)**: > - Replaces direct `isomorphic-git` imports in handlers and processors: `app_handlers`, `chat_handlers`, `createFromTemplate`, `github_handlers`, `import_handlers`, `portal_handlers`, `version_handlers`, `response_processor`, `neon_timestamp_utils`, `utils/codebase`. > - Updates tests to mock `git_utils` (`src/__tests__/chat_stream_handlers.test.ts`). > - **Behavioral/Feature Updates**: > - `createFromTemplate` uses `fetch` for GitHub API and `gitClone` for cloning with cache validation. > - GitHub integration uses `gitSetRemoteUrl`/`gitPush`/`gitClone`, handling public vs token URLs and directory creation when native Git is disabled. > - Versioning, imports, app file edits, migrations now stage/commit via `git_utils`. > - **UI/Copy**: > - Updates Settings description for “Enable Native Git”. > - **Config/Version**: > - Bumps version to `0.29.0-beta.1`; adds `dugite` dependency. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ba098f7f25d85fc6330a41dc718fbfd43fff2d6c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by:
Will Chen <willchen90@gmail.com>
-
由 Adeniji Adekunle James 提交于
Closes (#1817) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes the bug where editing a custom model didn’t update the currently selected model. The selection now stays in sync after renaming or editing. - **Bug Fixes** - Use useSettings to detect if the edited model is the active one (match provider and apiName). - Update settings.selectedModel with the new apiName; on failure show an error and keep the dialog open; otherwise show success, call onSuccess, then close. <sup>Written for commit 88045165a3989277e703a8f31712fcf1dfeaa32a. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Updates the release workflow matrix to use the `macos-15-intel` runner for `macos-intel` builds. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 37416cf576675ea399dd84cf1e50a2511b768de8. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Switch the macos-intel release job to the macos-15-intel GitHub Actions runner. This updates CI to the macOS 15 Intel image and keeps our matrix consistent with current supported runners. <sup>Written for commit 37416cf576675ea399dd84cf1e50a2511b768de8. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Mohamed Aziz Mejri 提交于
<!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Prototype visual editing mode for the preview app. Toggle the mode, pick elements (single or multiple), and edit margin, padding, border, background, static text, and text styles with live updates, then save changes back to code. - **New Features** - Pen tool button to enable/disable visual editing in the preview and toggle single/multi select; pro-only. - Inline toolbar anchored to the selected element for Margin (X/Y), Padding (X/Y), Border (width/radius/color), Background color, Edit Text (when static), and Text Style (font size/weight/color/font family). - Reads computed styles from the iframe and applies changes in real time; auto-appends px; overlay updates on scroll/resize. - Save/Discard dialog batches edits and writes Tailwind classes to source files via IPC; uses AST/recast to update className and text, replacing conflicting classes by prefix; supports multiple components. - New visual editor worker to get/apply styles and enable inline text editing via postMessage; selector client updated for coordinates streaming and highlight/deselect. - Proxy injects the visual editor client; new atoms track selected component, coordinates, and pending changes; component analysis flags dynamic styling and static text. - Uses runtimeId to correctly target and edit duplicate components. - **Dependencies** - Added @babel/parser for AST-based text updates. - Added recast for safer code transformations. <sup>Written for commit cdd50d33387a29103864f4743ae7570d64d61e93. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 09 12月, 2025 5 次提交
-
-
由 Mohamed Aziz Mejri 提交于
close #1870 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a “Copy” button to error banners and chat error output so users can quickly copy error messages with clear feedback. Addresses Linear #1870. - **New Features** - Introduced CopyErrorMessage component that writes to clipboard and shows “Copied” for 2s. - Added the copy button to the Preview error banner and DyadOutput; actions grouped at the bottom beside “Fix with AI”. - Added Playwright e2e test and helpers to verify copy behavior and clipboard content. <sup>Written for commit 12e9bf1437ded36dc022e1d795025580d2ffd111. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
…h-replace failure in error message Addresses part of #1898 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Treat identical SEARCH/REPLACE as a no-op warning and propagate detailed applySearchReplace errors (incl. fuzzy match stats) to the UI; add scoped logging and update tests/snapshots. > > - **Processors**: > - `src/pro/main/ipc/processors/search_replace_processor.ts`: Log a warning (not error) when SEARCH and REPLACE blocks are identical; add scoped logger; keep content unchanged. > - `src/ipc/processors/response_processor.ts`: Include detailed failure reason from `applySearchReplace` in dry-run issues. > - **Tests & Snapshots**: > - `search_replace_processor.spec.ts`: Update test to expect success when blocks are identical. > - `e2e-tests/...turbo-edits-v2...snapshot`: Reflect detailed error message with fuzzy match similarity/threshold. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a394d297d5561ada3bdd197dbb4e6aca6928ad99. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Warn instead of error when search and replace blocks are identical, and include the specific failure reason in search-replace error messages for clearer feedback. - **Bug Fixes** - Treat identical search/replace blocks as a no-op: log a warning and return success. - Bubble up detailed failure reasons to the UI (e.g., no match and fuzzy similarity/threshold). - Add scoped logging to the processor and update the e2e snapshot to reflect new error messaging. <sup>Written for commit a394d297d5561ada3bdd197dbb4e6aca6928ad99. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
Fixes #1717 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Disable `.app-region-drag` while `body[data-scroll-locked]` is present to prevent drag interference with open Select. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8d5e4774dfa924e073d79dc999a5f065425e985b. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes window dragging interfering with the Supabase project dropdown. Disables dragging on .app-region-drag while the Radix Select is open by targeting body[data-scroll-locked], so users can scroll and select normally. <sup>Written for commit 8d5e4774dfa924e073d79dc999a5f065425e985b. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
besides making our capacitor e2e test more deterministic, it also prevents silent upgrades given the various npm ecosystem compromises in the past.
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Adds an e2e test for the balanced Smart Context mode with corresponding ARIA and request payload snapshots. > > - **Tests**: > - Add `e2e-tests/smart_context_balanced.spec.ts` to exercise Pro Modes dialog, set Smart Context to `balanced`, send `[dump]`, and snapshot server dump and messages. > - Add snapshots: > - `e2e-tests/snapshots/smart_context_balanced.spec.ts_smart-context-balanced---simple-1.aria.yml` > - `e2e-tests/snapshots/smart_context_balanced.spec.ts_smart-context-balanced---simple-1.txt` (captures request body/options). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 66bf07057ded2a6afb328b7de01c821ab6a0fca8. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Added an end-to-end test for the “balanced” Smart Context mode to verify the Pro Modes dialog switches to balanced and the mode is applied. The test sends a [dump] prompt, snapshots the server request and messages (ARIA + text), and is skipped on Windows. <sup>Written for commit 66bf07057ded2a6afb328b7de01c821ab6a0fca8. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
- 05 12月, 2025 8 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Bumps version from 0.28.0 to 0.29.0-beta.1 in `package.json`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 085f7afe2cd391775f91b9973b7b9f557f026c26. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Bumped version to v0.29.0-beta.1 to start the v0.29 beta. Updates package.json so builds and release channels tag the app as a beta for testing. <sup>Written for commit 085f7afe2cd391775f91b9973b7b9f557f026c26. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Upgrade React and React DOM to 19.2.1 and align related lockfile entries (including scheduler). > > - **Dependencies**: > - Upgrade `react` to `^19.2.1` and `react-dom` to `^19.2.1` in `package.json`. > - Update lockfile resolutions for `react`, `react-dom`, and `scheduler` (`0.27.0`), including peer/dependency ranges. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7085cd54e499a04e89f6325f4e274e19cdde4961. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Upgraded React and React DOM to 19.2.1 to adopt the latest fixes. No app code changes. - **Dependencies** - Bumped react and react-dom to ^19.2.1. - Updated scheduler to 0.27.0 via react-dom. <sup>Written for commit 7085cd54e499a04e89f6325f4e274e19cdde4961. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit fb0aff0bf5e21e1b57bc8744ed9643b863b888d4. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds support for Anthropic Claude Opus 4.5 and standardizes Sonnet naming. Removes legacy 3.x Anthropic models and updates tests to use the new names. - **New Features** - Added "Claude Opus 4.5" with 32k max output and 200k context. - **Migration** - Names standardized to "Claude Sonnet 4" and "Claude Sonnet 4.5". Update any model selections and tests. - Removed Anthropic 3.x models: Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3.5 Haiku, and their Bedrock variants. <sup>Written for commit fb0aff0bf5e21e1b57bc8744ed9643b863b888d4. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Adds a context-limit banner with one-click “summarize into new chat,” refactors token counting with react-query, and persists per-message max token usage. > > - **Chat UX** > - **Context limit banner** (`ContextLimitBanner.tsx`, `MessagesList.tsx`): shows when within 40k tokens of `contextWindow`, with tooltip and action to summarize into a new chat. > - **Summarize flow**: extracted to `useSummarizeInNewChat` and used in chat input and banner; new summarize system prompt (`summarize_chat_system_prompt.ts`). > - **Token usage & counting** > - **Persist max tokens used per assistant message**: DB migration (`messages.max_tokens_used`), schema updates, and saving usage during streaming (`chat_stream_handlers.ts`). > - **Token counting refactor** (`useCountTokens.ts`): react-query with debounce; returns `estimatedTotalTokens` and `actualMaxTokens`; invalidated on model change and stream end; `TokenBar` updated. > - **Surfacing usage**: tooltip on latest assistant message shows total tokens (`ChatMessage.tsx`). > - **Model/config tweaks** > - Set `auto` model `contextWindow` to `200_000` (`language_model_constants.ts`). > - Improve chat auto-scroll dependency (`ChatPanel.tsx`). > - Fix app path validation regex (`app_handlers.ts`). > - **Testing & dev server** > - E2E tests for banner and summarize (`e2e-tests/context_limit_banner.spec.ts` + fixtures/snapshot). > - Fake LLM server streams usage to simulate high token scenarios (`testing/fake-llm-server/*`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2ae16a14d50699cc772407426419192c2fdf2ec3. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a “Summarize into new chat” trigger and a context limit banner to help keep conversations focused and avoid hitting model limits. Also tracks and surfaces actual token usage per assistant message, with a token counting refactor for reliability. - **New Features** - Summarize into new chat from the input or banner; improved system prompt with clear output format. - Context limit banner shows when within 40k tokens of the model’s context window and offers a one-click summarize action. - Tooltip on the latest assistant message shows total tokens used. - **Refactors** - Token counting now uses react-query and returns estimatedTotalTokens and actualMaxTokens; counts are invalidated on model change and when streaming settles. - Persist per-message max_tokens_used in the messages table; backend aggregates model usage during streaming and saves it. - Adjusted default “Auto” model contextWindow to 200k for more realistic limits. - Improved chat scrolling while streaming; fixed app path validation regex. <sup>Written for commit 2ae16a14d50699cc772407426419192c2fdf2ec3. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Mohamed Aziz Mejri 提交于
closes #1688 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Add a “Fix All Errors” button to the chat that collects all error messages and sends a single request to resolve them. This helps users fix multiple errors in one step. - New Features - Parse dyad-output type=error messages and track count/last index in DyadMarkdownParser. - Show FixAllErrorsButton after the last error when there are 2+ errors, not streaming, and chatId is present. - Button streams a prompt listing all errors, shows a loading state, and displays the error count. <sup>Written for commit b9762955d3b9cecd3b00c9efb478ce599f60e32d. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Default Smart Files context to deep and align UI and stream handler logic so any non-balanced option uses deep when Pro mode is enabled. > > - **Smart Context behavior** > - UI (`src/components/ProModeSelector.tsx`): default `getCurrentValue()` to `"deep"` when Pro Smart Files mode is enabled without an explicit option. > - Engine (`src/ipc/handlers/chat_stream_handlers.ts`): `isDeepContextEnabled` now requires `enableProSmartFilesContextMode` and treats any option other than `"balanced"` as deep; `smartContextMode` set accordingly and `versioned_files` used when deep. > - **Snapshots** > - Update e2e snapshots to reflect `smart_context_mode: "deep"` and new `dyad_options.versioned_files` structure. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7426890467d60b671a7a9712f7544a35ed922981. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Default smart files context to deep and align the UI and stream handler so anything not “balanced” uses deep when Pro Smart Files mode is on. This prevents mismatches and makes deep context the default. - **Bug Fixes** - ProModeSelector: default to deep when no option is set. - chat_stream_handlers: isDeepContextEnabled requires Pro Smart Files mode and treats non-“balanced” as deep; smartContextMode set to deep accordingly. - Engine payload: use versioned_files; update e2e snapshots. <sup>Written for commit 7426890467d60b671a7a9712f7544a35ed922981. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Adds commit-aware deep context by computing hasExternalChanges (via latest assistant commit vs current repo + dirty check) and propagating commitHash through messages/provider options. > > - **Deep Smart Context**: > - Add `hasExternalChanges` to `VersionedFiles`; compute by comparing latest assistant `commitHash` with `getCurrentCommitHash` and checking `isGitStatusClean`. > - Make `sourceCommitHash` nullable; add `commitHash` in `DyadEngineProviderOptions` and use it when scanning history. > - **Chat Handling**: > - Include `commitHash` in `messageHistory` and pass through `providerOptions['dyad-engine']`. > - **Git Utilities**: > - New `isGitStatusClean(path)` supporting native git and isomorphic-git. > - **Tests/Snapshots**: > - Mock `getCurrentCommitHash` and `isGitStatusClean`; update snapshot to include `hasExternalChanges`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ad92d9dd5ead941de822e8da59c8819e4db8b775. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Detects external code changes in deep context by comparing the latest assistant commit with the current repo state. Exposes a hasExternalChanges flag so the engine can adapt responses when the workspace diverges. - **New Features** - Added hasExternalChanges to VersionedFiles. - Computes by comparing the latest assistant commitHash with getCurrentCommitHash and checking isGitStatusClean. - Passes commitHash through chat messages and dyad-engine providerOptions; sourceCommitHash is now nullable. - Defaults to true if detection fails (with a warning). <sup>Written for commit 6ebb0b125c9a3421b4e5673870b204c9cb279265. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
…ported in deep context Fixes https://github.com/dyad-sh/dyad/issues/1715 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Deep context now only applies with no app mentions; otherwise we fallback to balanced and pass the effective mode to the engine, with updated history limits and new e2e coverage. > > - **Smart Context behavior**: > - Deep mode activates only when no `@app:` mentions are present; otherwise uses `balanced`. > - Max chat turns set to 201 only for deep-without-mentions; otherwise use configured limit. > - **Engine integration**: > - Send effective smart context mode via `dyadSmartContextMode` and map to `dyad_options.smart_context_mode` in `llm_engine_provider`. > - Add `SmartContextMode` schema (`balanced|conservative|deep`) and use it in settings/types. > - Remove static `smartContextMode` from engine options; use per-request mode instead. > - **Tests**: > - Add e2e test `smart context deep - mention app should fallback to balanced` with snapshot asserting `smart_context_mode: "balanced"` and mentioned app files. > - **Misc**: > - Tighten app path validation regex in `rename-app` handler. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5aada2bd246e297d7b35e36738f75c8531b897ae. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fallback to balanced smart context when an app is mentioned in deep mode, since deep doesn’t support mentioned apps. This keeps context limits correct and updates engine config, with new e2e coverage. - **Bug Fixes** - Deep mode only applies when no apps are mentioned; otherwise we use balanced. - Max chat turns: 201 only for deep without mentions; otherwise use configured limit. - Plumb smart context mode via dyadSmartContextMode to the engine; add SmartContextMode schema. - Add e2e test to verify fallback in deep mode when an app is mentioned. <sup>Written for commit 5aada2bd246e297d7b35e36738f75c8531b897ae. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. -->
-