- 15 10月, 2025 3 次提交
-
-
由 Adeniji Adekunle James 提交于
- Move edit and delete actions from hidden popover to visible buttons - Restructure card layout: status badge and action buttons at top, title below <img width="1029" height="414" alt="image" src="https://github.com/user-attachments/assets/60497f87-254e-4f4d-9f8c-ea73b8f2526e" /> closes #1358 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Made edit and delete always visible on custom provider cards and restructured the card layout for clearer actions and status. Improves discoverability and aligns with #1358. - **Refactors** - Replaced popover menu with visible Edit and Delete icon buttons (data-testid: edit-custom-provider, delete-custom-provider). - Moved status badge and actions to the top; title now sits below; badges don’t wrap. - Updated e2e tests to use new buttons and adjusted selectors for the updated heading. <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Hide the “Upgrade to Dyad Pro” link in `ChatErrorBox` when `isDyadProEnabled` is true. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 424cd04f85385f923548b3fc54b4c83625992ade. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds Supabase database branch selection per app, with a new schema field and UI to choose a branch after connecting a project. Resets branch when changing or disconnecting the project to keep state consistent. - **New Features** - Added apps.supabase_branch_id column. - Branch dropdown in SupabaseConnector shown after a project is connected; selection persists and triggers app refresh. - New state and hooks: supabaseBranchesAtom, loadBranches(projectId), setAppBranch(branchId). - IPC endpoints: supabase:list-branches and supabase:set-app-branch; setting/unsetting project also clears the branch. - **Migration** - Apply drizzle migration 0013_supabase_branch.sql to add the supabase_branch_id column (defaults to null). <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds Supabase database branch selection per app, including parent project tracking, new IPC endpoints, UI dropdown, and an accompanying DB migration with e2e tests. > > - **Database**: > - Add `apps.supabase_parent_project_id` via migration `drizzle/0015_complete_old_lace.sql`; snapshot and journal updated. > - **IPC/Main**: > - New `supabase:list-branches` handler and management client `listSupabaseBranches` (real API + test stubs). > - Update `supabase:set-app-project` to accept `{ projectId, parentProjectId?, appId }`; unset clears both IDs. > - `get-app` resolves `supabaseProjectName` using `supabase_parent_project_id` when present. > - **Types & Client**: > - Add `SupabaseBranch`, `SetSupabaseAppProjectParams`, and `App.supabaseParentProjectId`; expose `listSupabaseBranches` and updated `setSupabaseAppProject` in `ipc_client` and preload whitelist. > - **UI/Hooks**: > - Supabase UI: branch dropdown in `SupabaseConnector` with `loadBranches`, selection persists via updated `setAppProject`. > - State: add `supabaseBranchesAtom`; `useSupabase` gets `branches`, `loadBranches`, new param shape for `setAppProject`. > - TokenBar/ChatInput: add `data-testid` for token bar and toggle. > - **Supabase Context (tests)**: > - Test build returns large context for `test-branch-project-id` to validate branch selection. > - **E2E Tests**: > - Add `supabase_branch.spec.ts` and snapshot verifying branch selection affects token usage. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 33054278db8396b4371ed6e8224105cb5684b7ac. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 14 10月, 2025 7 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 48563edb9143b6a53957e7ac8901fac3408e444c. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Always route Dyad Pro through the Dyad engine (no gateway), simplify logging/flags, and remove DYAD_GATEWAY usage and staging gateway script. > > - **Engine/Model client (`src/ipc/utils/get_model_client.ts`)**: > - Always use `createDyadEngine` when Dyad Pro is enabled; remove gateway fallback and `DYAD_GATEWAY_URL` usage. > - Simplify logs to engine-only; drop conditional gateway/engine logging. > - Always set `isEngineEnabled: true`; pass `{ files }` to the provider unconditionally; strip `:free` from model names. > - **Scripts (`package.json`)**: > - Remove `staging:gateway` script. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5fdbbb703c47de4623ceeb82e6678ace34dc268e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> -
由 Adeniji Adekunle James 提交于
## Summary Adds the ability to import GitHub repositories directly into Dyad from the home screen, complementing the existing local folder import feature. - GitHub Import Modal: New modal accessible from home screen via "Import from Github" button with two Import methods - Select project from GitHub repositories list - Clone from any GitHub URL - Advanced Options: Optional custom install/start commands (defaults to project's package.json scripts) - Auto AI_RULES Generation: Automatically generates AI_RULES.md if not present in imported repo closes #1424 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a GitHub import flow from the home screen so users can clone repos via their list or any URL, with optional install/start commands and automatic AI_RULES.md generation. Addresses Linear #1424 by enabling seamless project setup from GitHub. - **New Features** - Import modal with two tabs: Your Repositories and From URL. - Advanced options for install/start commands with validation; defaults used when both are empty. - After cloning, navigate to chat and auto-generate AI_RULES.md if missing. - New IPC handler github:clone-repo-from-url with token auth support, plus IpcClient method and preload channel. - E2E tests cover modal open, auth, import via URL/repo list, and advanced options. - **Dependencies** - Added @radix-ui/react-tabs for the modal tab UI. <!-- End of auto-generated description by cubic. --> -
由 Will Chen 提交于
drive-by: update links for pro banners <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Revamps ChatErrorBox with styled CTA buttons, UTM-tracked links, broader error matching, and adds default help CTAs; updates Pro banners to point to /pro URLs. > > - **Chat**: > - **Error handling/UI**: Expands rate-limit matching to include `"Provider returned error"` and appends default CTAs on generic errors. > - **CTAs**: Replaces underlined links with styled buttons via `ExternalLink` (supports `primary|secondary` variants and icons), and adds upgrade/docs buttons across error states. > - **Links**: Adds UTM parameters to Pro/Docs links; updates exceeded budget CTA to `"Reload or upgrade your subscription"` with new subscription URL. > - **Pro Banners**: > - Adjusts banner click-through URLs in `AiAccessBanner`, `SmartContextBanner`, and `TurboBanner` to `https://www.dyad.sh/pro?...` (removes `#ai`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2111954ac9a98dd66f5b3b9e628270ac19713a2d. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
Based on #1488 by [vedantbhatotia](https://github.com/vedantbhatotia) <!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit cc504f6d56ff72407dd5d0135befbf5d9cc695b5. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by:
vedantbhatotia <vedantbhatotia@gmail.com>
-
由 Mohamed Aziz Mejri 提交于
This PR implements spelling correction feature requested in issue #271 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Add spell check suggestions to the context menu in editable fields. Right-clicking a misspelled word shows up to five suggestions for one-click replacement. - **New Features** - Shows a “Correct "<misspelled>"” submenu when a misspelled word is detected. - Provides up to 5 dictionary suggestions; clicking replaces the word via replaceMisspelling. - Keeps standard edit actions and tidies menu order with separators; logs errors on failure. <!-- End of auto-generated description by cubic. --> -
由 Will Chen 提交于
-
- 10 10月, 2025 9 次提交
-
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Update package.json version from 0.23.0-beta.1 to 0.24.0-beta.1 to prepare the 0.24 beta release. This unblocks tagging and publishing for the bump-beta-0-24 branch. <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Improved the provider setup flow by adding a clipboard paste-and-save action and a clearer “Get API key” prompt when a provider isn’t configured. - **New Features** - Added a clipboard “Paste and Save” button with tooltip and error handling. - Highlighted the “Get API key” button with a popover prompt and visual emphasis when not configured. - **Refactors** - Changed onSaveKey to accept the key value (string) and updated usage to save the provided value. <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Added Dyad Pro access buttons in ProBanner to manage a subscription or add an existing key. Show the manage button when Dyad Pro is enabled or a user budget exists; otherwise show the setup button, both linking to academy.dyad.sh. <!-- End of auto-generated description by cubic. -->
-
由 Will Chen 提交于
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Resets main content scroll to top when switching providers by adding a container id and scrolling it on provider change. > > - **Frontend**: > - **Layout**: Add `id="layout-main-content-container"` to the main content wrapper in `src/app/layout.tsx`. > - **Provider Settings**: In `ProviderSettingsPage.tsx`, add an effect to `scrollTo(0, 0)` on `#layout-main-content-container` when `providerData` changes, resetting scroll on navigation. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 520758a3cf45f8438bc5089c3c427176eeefb306. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
Fixes #1472 <!-- CURSOR_SUMMARY --> > [!NOTE] > Switches `ProviderSettingSchema` union to `.passthrough()` variants to accept extra fields and avoid overlapping schema conflicts. > > - **Schemas**: > - **`src/lib/schemas.ts`**: Update `ProviderSettingSchema` to use `.passthrough()` on `AzureProviderSettingSchema`, `VertexProviderSettingSchema`, and `RegularProviderSettingSchema` so unknown fields are preserved and overlapping required fields don’t cause mis-matches. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7afa4b83d713b9eb433d4cce28c7fee73cd7545b. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds an onboarding banner in Setup that links to a 3-minute YouTube intro and dismisses after click. Also avoids showing release notes on a user’s first launch. - **New Features** - Added OnboardingBanner component with YouTube thumbnail and play icon. - Opens the video via IpcClient and hides the banner after click. - Integrated into SetupBanner with local visibility state. - **Bug Fixes** - Don’t show release notes on first run to prevent spam. <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds a dismissible onboarding banner linking to a YouTube intro and changes release notes to appear only on app updates, not first run. > > - **UI/Onboarding**: > - **`src/components/home/OnboardingBanner.tsx`**: New banner component with YouTube thumbnail/play icon; opens intro video via `IpcClient.openExternalUrl`; hides itself on click. > - **`src/components/SetupBanner.tsx`**: Integrates `OnboardingBanner` with `isOnboardingVisible` state; tweaks header typography (`font-medium`). > - **Release Notes Behavior**: > - **`src/pages/home.tsx`**: Only shows release notes when upgrading (checks existing `settings.lastShownReleaseNotesVersion` before opening modal); preserves themed URL handling. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 832e70f87b3b6a7e8b8b921fe8c6ceb15198cce0. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
Based on #1425 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds a floating scroll-to-bottom button and refines scroll/auto-scroll behavior with layout tweaks to support an overlay. > > - **Chat UI**: > - **Scroll-to-bottom button**: Adds floating button in `ChatPanel` (uses `Button` and `ArrowDown`) that appears when scrolled away and scrolls smoothly to the latest message. > - **Scroll logic**: Introduces `getDistanceFromBottom`, `isNearBottom`, and a `scrollAwayThreshold`; auto-scroll now triggers only when near the bottom; refactors `handleScroll` with `useCallback` and longer idle timeout. > - **Layout**: Wraps `MessagesList` in a `relative` container and renders a centered absolute button overlay; adjusts `MessagesList` root to `absolute inset-0` for proper overlay behavior. > - **Misc**: Updates effect dependencies and console log message related to streaming/scrolling. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2e1b844830ae26cfc40840b9e8216fefad112a5e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by:
Md Rakibul Islam Rocky <mdrirocky08@outlook.com>
-
由 Will Chen 提交于
Fixes #212 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Add concurrent chat support with per-chat state, chat activity UI, IPC per-chat handling, and accompanying tests. > > - **Frontend (Chat concurrency)** > - Replace global chat atoms with per-chat maps: `chatMessagesByIdAtom`, `isStreamingByIdAtom`, `chatErrorByIdAtom`, `chatStreamCountByIdAtom`, `recentStreamChatIdsAtom`. > - Update `ChatPanel`, `ChatInput`, `MessagesList`, `DyadMarkdownParser`, and `useVersions` to read/write per-chat state. > - Add `useSelectChat` to centralize selecting/navigating chats; wire into `ChatList`. > - **UI** > - Add chat activity popover: `ChatActivityButton` and list; integrate into `preview_panel/ActionHeader` (renamed from `PreviewHeader`) and swap in `TitleBar`. > - **IPC/Main** > - Send error payloads with `chatId` on `chat:response:error`; update `ipc_client` to route errors per chat. > - Persist streaming partial assistant content periodically; improve cancellation/end handling. > - Make `FileUploadsState` per-chat (`addFileUpload({chatId,fileId}, ...)`, `clear(chatId)`, `getFileUploadsForChat(chatId)`); update handlers/processors accordingly. > - **Testing** > - Add e2e `concurrent_chat.spec.ts` and snapshots; extend helpers (`snapshotMessages` timeout, chat activity helpers). > - Fake LLM server: support `tc=` with options, optional sleep delay to simulate concurrency. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 9035f30b73a1f2e5a366a0cac1c63411742b16f3. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 09 10月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Reorders the collapse useEffect to run before the token-savings early return so hooks are always called unconditionally. > > - **Frontend** > - **`src/components/chat/DyadThink.tsx`**: > - Move collapse `useEffect` above the token-savings early return to ensure hooks are called unconditionally. > - Maintains collapse behavior when `inProgress` transitions to false. > - `DyadTokenSavings` rendering path remains unchanged. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a6c7d20ab037043bff26deec1364f2d9008fbf33. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 08 10月, 2025 3 次提交
-
-
由 Will Chen 提交于
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Structure preview errors with source-aware messaging/UI and enhance local/Docker spawn error diagnostics and logging. > > - **Frontend**: > - **Error model**: Change `previewErrorMessageAtom` from `string` to `{ message, source }` to distinguish `preview-app` vs `dyad-app` errors. > - **Preview UI**: Update `ErrorBanner` in `components/preview_panel/PreviewIframe.tsx` to use `error.message`, show an "Internal Dyad error" chip for `dyad-app`, conditional tip text, and hide AI fix for non-`preview-app` errors; use `cn` helper. > - **Error propagation**: Wrap iframe and build errors via `setErrorMessage({ message, source: "preview-app" })`; adjust AI prompt to use `errorMessage.message`. > - **Hooks**: > - `useRunApp`: On run/stop/restart failures, set `{ message, source: "dyad-app" }` in `previewErrorMessageAtom`. > - **Backend**: > - `ipc/handlers/app_handlers.ts`: Improve spawn failure handling for local node and Docker: capture stderr as strings, collect error details (`message`, `code`, `errno`, `syscall`, `path`, `spawnargs`), log with context, and throw enriched error messages. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 4135b04e19431dd53848c3266e5211e4c9df6aa2. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by:graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
-
由 Will Chen 提交于
getting user feedback that the max of 3 is not enough and it's ending abruptly
-
- 07 10月, 2025 2 次提交
-
-
由 Adeniji Adekunle James 提交于
### Problem Users were confused because `<dyad-command>` tags were being hidden, making it unclear what actions were available. ### Solution Render dyad-command tags as visible buttons, so users can see and interact with available commands (e.g., "restart"). Closes #1421 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Show dyad-command tags as visible buttons in assistant responses so users can see and trigger actions (e.g., restart). Closes #1421. - **Bug Fixes** - Render dyad-command tags to buttons in DyadMarkdownParser. - Export mapActionToButton from ChatInput for reuse. - Support id/action/path attributes; safely no-op if parsing fails. <!-- End of auto-generated description by cubic. --> -
由 Mohamed Aziz Mejri 提交于
This PR implements favorite apps feature and addresses issue #827 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a favorite apps feature with a star toggle in the sidebar. Favorites are grouped separately and persisted, with optimistic UI updates and e2e tests. - **New Features** - Added isFavorite to the apps schema and an IPC handler (add-to-favorite) to toggle and persist the state. - Updated AppList to show “Favorite apps” and “Other apps” sections. - Introduced AppItem component with a star button; uses useAddAppToFavorite for optimistic updates and toasts. - Added Playwright tests to verify favoriting and unfavoriting. - **Migration** - Run DB migrations to add the apps.is_favorite column (defaults to 0). <!-- End of auto-generated description by cubic. -->
-
- 04 10月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Conditionally appends the `pro` label to prefilled GitHub issue URLs for Dyad Pro users. > > - **Help dialog issue links**: > - For `Report a Bug`: build `labels` array starting with `bug`, append `pro` when `isDyadProUser` is true; pass labels via `labels=${labels}`. > - For `Session Report`: build `labels` array starting with `support`, append `pro` when `isDyadProUser` is true; pass labels via `labels=${labels}`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1b0928f201ff9f38284445ee2f29ae2966a59403. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 03 10月, 2025 2 次提交
-
-
由 Will Chen 提交于
Fixes #1364 <!-- CURSOR_SUMMARY --> > [!NOTE] > Refreshes the Supabase prompt’s login state example to use the latest onAuthStateChange event handling and unsubscribe pattern. > > - **Prompts**: > - **Supabase system prompt (`src/prompts/supabase_prompt.ts`)**: > - Revise login state management example to use `supabase.auth.onAuthStateChange` with explicit events: `INITIAL_SESSION`, `SIGNED_IN`, `SIGNED_OUT`, `PASSWORD_RECOVERY`, `TOKEN_REFRESHED`, `USER_UPDATED`. > - Update unsubscribe usage to `data.subscription.unsubscribe()` and remove outdated async/getSession snippet. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 239d20769a02d102d168126f973a6cb4bf6d9e48. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Adeniji Adekunle James 提交于
-
- 02 10月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Bump package version in `package.json` from `0.22.0-beta.1` to `0.23.0-beta.1`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 30d038f6b2eb6b31712452f7a77fe9fe44e1d8e2. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 01 10月, 2025 7 次提交
-
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 13f4cb7d6c59816719a09ae68572e489b05d4820. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Adds an issue triage workflow and upgrades the duplicate-detection workflow to a newer Anthropic model. > > - **CI Workflows**: > - **New `triage-issues.yml`**: > - Runs on new issues; installs `opencode` and labels non-English (`issue/lang`) and incomplete (`issue/incomplete`) reports, posting guidance comments. > - **`duplicate-issues.yml`**: > - Updates `opencode` model to `anthropic/claude-sonnet-4-5-20250929` for duplicate detection. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 11a89c6cfec1691c68837d599b8e3fc6888df09e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Send mentioned apps (names + files) to the engine through dyad_options, omit inline other-apps prefix when engine is enabled, and adjust e2e to snapshot request payload. > > - **Engine/Backend**: > - Pass mentioned apps to engine via `providerOptions['dyad-engine'].dyadMentionedApps` and forward as `dyad_options.mentioned_apps` in `llm_engine_provider`. > - Gate inline other-apps context: only include `otherCodebasePrefix` when `isEngineEnabled` is false. > - Enhance `extractMentionedAppsCodebases` to return `files` alongside `codebaseInfo`. > - **Tests**: > - e2e: change `mention app (with pro)` snapshot to `snapshotServerDump("request")` and update snapshot to assert request payload contents. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7ddddf6c16c53cd36b4c7e4ec6a57da0616d1bb0. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> -
由 Md Rakibul Islam Rocky 提交于
# Changes - Update Azure configuration components to manage API key and resource name settings. - Improve visibility of conThis pull request introduces a redesigned Azure provider settings UI and refactors the logic for configuring Azure OpenAI credentials, both in the frontend and supporting hooks. The main changes focus on making the Azure configuration experience clearer and more robust by supporting both environment variable and saved settings, improving status indicators, and updating the logic for determining provider readiness. **Azure Provider UI and Logic Improvements** * Added a new `AzureConfiguration` component that provides a dedicated form for entering and saving Azure resource name and API key, with clear status indicators and error handling. The UI now explains precedence between saved settings and environment variables, and guides users through configuration. (`src/components/settings/AzureConfiguration.tsx`) * Updated the main provider settings page and API key configuration logic to pass Azure-specific settings and update functions to the new component, ensuring seamless integration and correct state management. (`src/components/settings/ApiKeyConfiguration.tsx`, `src/components/settings/ProviderSettingsPage.tsx`) [[1]](diffhunk://#diff-2104fb487cda3768cc5777889100e882f51e7fb3e13abe3cc89cf8ed1444300aR35) [[2]](diffhunk://#diff-2104fb487cda3768cc5777889100e882f51e7fb3e13abe3cc89cf8ed1444300aR51-R61) [[3]](diffhunk://#diff-9140e707ebb56ffed3272b4661ea1e6d8388ee604a8535c58e8a1564d280057cR297) * Refactored the logic for determining whether Azure is configured to check both saved settings and environment variables, ensuring accurate status display and enabling fallback to environment variables if no settings are saved. (`src/components/settings/ProviderSettingsPage.tsx`, `src/hooks/useLanguageModelProviders.ts`) [[1]](diffhunk://#diff-9140e707ebb56ffed3272b4661ea1e6d8388ee604a8535c58e8a1564d280057cL72-R99) [[2]](diffhunk://#diff-9ac9e279a0cda34a0bc519348d5474b2e355b0828a678495be3af1e8984b5be5R35-R48) * Updated the Azure provider E2E test to verify the new UI elements, status indicators, and guidance, ensuring the test matches the new configuration flow and messaging. (`e2e-tests/azure_provider_settings.spec.ts`) **Supporting Type and Import Updates** * Added and updated type imports for `AzureProviderSetting` and `VertexProviderSetting` where needed to support the new logic and UI. (`src/components/settings/ProviderSettingsPage.tsx`, `src/hooks/useLanguageModelProviders.ts`, `src/ipc/utils/get_model_client.ts`) [[1]](diffhunk://#diff-9140e707ebb56ffed3272b4661ea1e6d8388ee604a8535c58e8a1564d280057cL14-R14) [[2]](diffhunk://#diff-9ac9e279a0cda34a0bc519348d5474b2e355b0828a678495be3af1e8984b5be5L5-R5) [[3]](diffhunk://#diff-3cd526c6c10413c1387bfef450e48b880ba6f54865e96046044586ff4192bcceR15) * Changed Azure model client import to use `createAzure` for consistency and future extensibility. (`src/ipc/utils/get_model_client.ts`) [Copilot is generating a summary...]figuration status and error handling in the UI. - Refactor environment variable checks to prioritize saved settings. - Add support for Azure provider settings in the schema. - Modify tests to reflect changes in Azure configuration requirements. # Changes in short - **Azure settings panel** - Replaced with a full form that: - Persists API key and resource name - Surfaces save state - Keeps the environment-variable helper - *(src/components/settings/AzureConfiguration.tsx:23-214)* - **Settings stack workflow** - Threaded the new Azure workflow: - Config shim now passes `updateSettings` - Provider status checks prefer saved Azure values before env vars - *(src/components/settings/ApiKeyConfiguration.tsx:40-55, src/components/settings/ProviderSettingsPage.tsx:60-105)* - **Provider detection** - Azure treated like other saved credentials by: - Looking for both stored fields, or - The pair of env vars - *(src/hooks/useLanguageModelProviders.ts:5-57)* - **Back-end model creation** - Reads saved Azure credentials (falling back to env vars) - Builds the client via `createAzure` - *(src/ipc/utils/get_model_client.ts:316-369)* - **Provider schema support** - Extended so Azure can store its resource name alongside the secret - *(src/lib/schemas.ts:82-109)* - **E2E tests** - Updated Azure Playwright spec to cover the new UI - *(e2e-tests/azure_provider_settings.spec.ts:4-50)* Issues resolved: #1275
-
由 Will Chen 提交于
Fixes #1405 <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds GPT-5 Codex (OpenAI and Azure) and Claude 4.5 Sonnet to the model options to enable newer coding models and larger contexts. Also increases Claude 4 Sonnet max output tokens to 32k. <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds GPT‑5 Codex (OpenAI/Azure) and Claude 4.5 Sonnet, and increases Claude 4 Sonnet max output tokens to 32k across providers and tests. > > - **Models**: > - **OpenAI**: add `gpt-5-codex` (400k context, default temp 1). > - **Anthropic**: > - add `claude-sonnet-4-5-20250929` (1M context, `maxOutputTokens: 32_000`). > - update `claude-sonnet-4-20250514` `maxOutputTokens` from `16_000` to `32_000`. > - **Azure**: add `gpt-5-codex` (400k context, `maxOutputTokens: 128_000`). > - **Bedrock**: > - add `us.anthropic.claude-sonnet-4-5-20250929-v1:0` (1M context, `maxOutputTokens: 32_000`). > - update `us.anthropic.claude-sonnet-4-20250514-v1:0` `maxOutputTokens` to `32_000`. > - **E2E tests**: > - Update snapshots to reflect `max_tokens` increased to `32000` for `anthropic/claude-sonnet-4-20250514` in engine and gateway tests. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 73298d2da0c833468f957bb436f1e33400307483. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> -
由 Adeniji Adekunle James 提交于
Adds Ctrl+Shift+A (Cmd+Shift+A on Mac) keyboard shortcut to toggle between Ask and Build chat modes. **Changes:** - Created `useChatModeToggle` hook for shared logic - Added shortcut to ChatInput and HomeChatInput components **Usage:** Press Ctrl+Shift+A (or Cmd+Shift+A on Mac) to quickly switch between chat modes without using the UI. <img width="434" height="123" alt="image" src="https://github.com/user-attachments/assets/a8c167b6-2b54-46f5-8191-5019991fc8e5" /> Closes (#995) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Add a global hotkey to toggle between Ask and Build modes: Ctrl+Shift+A (Cmd+Shift+A on Mac). Makes switching faster without touching the UI and fulfills Linear #995. - **New Features** - Added useChatModeToggle hook to flip selectedChatMode, detect platform, and track PostHog event chat:mode_toggle. - Wired the hotkey into ChatInput and HomeChatInput via useChatModeToggle. - Updated ChatModeSelector tooltip to show the shortcut. <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds Cmd/Ctrl + . shortcut to cycle chat modes via a new hook, and updates the mode selector tooltip to show the shortcut. > > - **UX/Hotkey**: > - Introduces `useChatModeToggle` to cycle `settings.selectedChatMode` (captures `chat:mode_toggle`), with platform detection (`detectIsMac`/`useIsMac`) and `useShortcut` binding for `Cmd/Ctrl + .`. > - **Integrations**: > - Wires `useChatModeToggle()` into `components/chat/ChatInput.tsx` and `components/chat/HomeChatInput.tsx` to enable the shortcut in chat inputs. > - **UI**: > - Enhances `components/ChatModeSelector.tsx` tooltip to display the platform-specific shortcut hint (`⌘ + .` or `Ctrl + .`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d8cc3fff43b6eb3227623f1c084410f42392c0b3. 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>
-
由 Will Chen 提交于
<!-- CURSOR_SUMMARY --> > [!NOTE] > Introduces a new `auto` model `value` (Super Value Pro), adds configurable tag colors across model types, and updates Model Picker filtering and badges. > > - **Models and Types**: > - Add new auto model `value` ("Super Value (Pro)") with `tag: Budget` and `tagColor`. > - Enhance `turbo` auto model with `tag: Fast` and `tagColor`. > - Extend `LanguageModel` and `ModelOption` with optional `tagColor`. > - **Model Picker UI**: > - Render model tags with configurable colors via `tagColor` and `cn` utility. > - Update "Pro only" badge logic (hide when display name already includes "(Pro)"); adjust badge text size. > - Refine auto model visibility: non‑Pro hides `turbo` and `value`; Pro hides `free`. > - Minor styling/labeling tweaks in tag and badge rendering. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 4485fddad502237d4bceb43732043d3eaa60eaa0. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
-
- 30 9月, 2025 1 次提交
-
-
由 Mohamed Aziz Mejri 提交于
Fixes #912 This PR implements disabling send button while approval is pending and addresses issue #912 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Disable the chat send button while a proposal is awaiting approval, and re-enable it after approve or reject. Prevents accidental messages during pending changes. Addresses issue #912. - **New Features** - Track pending changes with isChangesPending based on the last assistant message’s approvalState. - Disable the send button when a proposal is pending (in addition to the existing empty input check). - Re-enable after approve/reject by refreshing the proposal and messages. - Added Playwright e2e tests for both approve and reject flows. <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Disable the chat send button when a code proposal is pending approval and re-enable after approve/reject; add e2e coverage and update MCP flow. > > - **Frontend** > - `ChatInput.tsx`: Read `messages` from `chatMessagesAtom` and derive `disableSendButton` when the last assistant message (matching `proposal.messageId`) has no `approvalState` and `proposal.type === "code-proposal"`. > - Apply `disableSendButton` to the send button’s `disabled` condition (in addition to empty input/attachments). > - Ensure proposal/messages refresh after approve/reject. > - **Tests** > - Add Playwright tests `e2e-tests/chat_input.spec.ts` to verify send button disabled during pending proposal and re-enabled after approve or reject. > - Update `e2e-tests/mcp.spec.ts` to click "Approve" after granting consent. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit b9b47bd6f547449cc5cf1d39a00e4e7fb5de1bcd. 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>
-
- 25 9月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds web search to Dyad Pro chats with a new UI, tag parsing, and a Pro Mode toggle that wires through to the engine. - **New Features** - Pro Mode toggle: “Web Search” (settings.enableProWebSearch). - New custom tags: dyad-web-search, dyad-web-search-result, dyad-read. - Collapsible Web Search Result UI with in-progress badge and markdown rendering. - Engine integration: passes enable_web_search and activates DyadEngine when web search is on. <!-- End of auto-generated description by cubic. -->
-
- 24 9月, 2025 1 次提交
-
-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Updated the setup banner to navigate to Settings and auto-scroll to the AI Providers section, and added a Dyad Pro setup option to streamline onboarding. - **New Features** - Added “Setup Dyad Pro” card with logo; opens Dyad Pro signup. - “Other providers” now jumps to Settings → Provider section with smooth scroll. - OpenRouter setup card updated with new teal styling. - **Refactors** - Introduced useScrollAndNavigateTo hook to navigate, scroll, and set active section. - Centralized active section state via activeSettingsSectionAtom (used by SettingsList). - SetupProviderCard supports a new “dyad” variant styling. <!-- End of auto-generated description by cubic. -->
-
- 23 9月, 2025 1 次提交
-
-
由 Adeniji Adekunle James 提交于
## Summary Adds AI response copy functionality to chat messages that preserves formatting and converts Dyad-specific tags to clean, readable markdown. ## Changes - **New `useCopyToClipboard` hook**: Parses Dyad tags and converts them to professional markdown format - **Updated `ChatMessage` component**: Positions copy button on left side of approval status - **Dyad tag conversion**: Transforms custom tags to readable format: - `<dyad-write>` → `### File: path/to/file.js` + code block - `<dyad-edit>` → `### Edit: path/to/file.js` + code block - `<dyad-execute-sql>` → `### Execute SQL` + ```sql block - `<think>` → `### Thinking` + content ## Features -
✅ Automatic programming language detection from file extensions -✅ Professional markdown formatting with proper headings and code blocks -✅ Tooltip showing "Copied" confirmation -✅ Reuses existing DyadMarkdownParser logic for consistency closes (#1290) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a Copy button to assistant messages that copies a clean Markdown version of the response by converting Dyad tags and preserving code blocks. Improves shareability and removes Dyad-only markup; addresses Linear #1290. - **New Features** - Added useCopyToClipboard hook that parses Dyad tags to Markdown, auto-detects code language, and cleans spacing. - Updated ChatMessage to show a Copy button (with Copy/Copied tooltip) to the left of approval status; disabled while streaming. - Tag conversions: think → "### Thinking"; dyad-write/edit → "### File/Edit: path" + fenced code; dyad-execute-sql → "### Execute SQL" + sql block; other Dyad tags map to concise headings; chat-summary/command are omitted. - Added e2e tests for clipboard copy, Dyad tag stripping/formatting, and tooltip states. <!-- End of auto-generated description by cubic. -->
-