1. 19 9月, 2025 1 次提交
    • Adeniji Adekunle James's avatar
      fix(ui): add scrolling to model dropdown when list is long (#1279) (#1323) · de2cc2b4
      Adeniji Adekunle James 提交于
      ## Problem
      The model selection dropdown doesn't scroll when there are many models
      available, causing the list to extend beyond the viewport and become
      unusable.
      
      ## Solution
      - Added `max-h-100 overflow-y-auto` classes to the DropdownMenuContent
      
      This closes (#1279)
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds vertical scrolling to the model selection dropdown so long lists
      don’t overflow the viewport. Applies max height and overflow-y auto to
      DropdownMenuSubContent across provider, Ollama, and LM Studio menus to
      keep the list usable.
      
      <!-- End of auto-generated description by cubic. -->
      de2cc2b4
  2. 18 9月, 2025 1 次提交
    • Mohamed Aziz Mejri's avatar
      Implementing app search feature (#1302) · a547aa3a
      Mohamed Aziz Mejri 提交于
      This PR implements app search feature and addresses the issue #1182.
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds a fast app search with a command-style dialog so users can find
      apps by name or chat content and jump to them quickly. Implements the
      search experience requested in #1182.
      
      - New Features
      - Search dialog (Ctrl+K or “Search Apps” button) with result snippets
      from matching chat titles/messages.
      - Searches across app names, chat titles, and message content;
      case-insensitive; supports partial matches; empty query lists all apps.
        - Selecting a result navigates to the app and closes the dialog.
      - New IPC endpoint search-app with Zod-validated results, debounced
      React Query hook, and preload allowlist update.
      - Added E2E tests for dialog open/close, shortcuts, matching behavior,
      empty state, and navigation.
      
      <!-- End of auto-generated description by cubic. -->
      a547aa3a
  3. 17 9月, 2025 3 次提交
    • Adeniji Adekunle James's avatar
      Feat: Add inline code editor (#1156) (#1232) (#1220) (#1235) · 2edd122d
      Adeniji Adekunle James 提交于
      ## 🚀 Feature: Inline Code Editor
      
      This PR adds a comprehensive inline code editing experience to the
      DyadWrite component.
      
      ###  What's New
      
      - **Inline Monaco Editor**: Edit code directly within the component
      using Monaco Editor
      - **Cancel/Revert**: Cancel changes and revert to original code state
      - **Language Detection**: Automatic syntax highlighting based on file
      extensions
      - **Theme Support**: Proper dark/light mode theming integration
      
      
      
      https://github.com/user-attachments/assets/c44ab622-6b86-403c-904d-3f327f9719e8
      
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds an inline Monaco-based code editor to DyadWrite so users can edit
      code blocks in place, then save or cancel changes. Saves stream edits
      back to the chat as a dyad-edit block.
      
      - **New Features**
      - Inline editor with Edit, Save, and Cancel; preserves original code and
      auto-expands when editing.
        - Language detection from file extension and dark/light theme support.
      - Save streams edits via useStreamChat as <dyad-edit
      path="...">...</dyad-edit> tied to the selected chat.
      - Non-edit view still uses CodeHighlight; visibility toggle and
      in-progress state respected.
      
      - **Refactors**
      - ChatMessage now uses DyadMarkdownParser instead of
      VanillaMarkdownParser.
      
      <!-- End of auto-generated description by cubic. -->
      2edd122d
    • Adeniji Adekunle James's avatar
      feat: add edit functionality for custom AI providers (#1232) (#1171) (#1250) · 8c3fdb0a
      Adeniji Adekunle James 提交于
      ## Summary
      Adds the ability to edit existing custom AI providers through the
      settings UI.
      
      ## Changes Made
      - **UI Changes:**
        - Added "Edit Provider" button to custom provider dropdown menu
        - Modified `CreateCustomProviderDialog` to support edit mode
      
      
      - **Backend Changes:**
      - Implemented `editCustomLanguageModelProvider` handler in
      `language_model_handlers.ts`
        - Added corresponding IPC client method
      - Database transaction ensures atomicity when updating provider and
      associated models
      
      
      - **Testing:**
        - Added comprehensive e2e test covering edit functionality
        - Tests verify form pre-population, field updates, and UI persistence
        
        
      
      
      https://github.com/user-attachments/assets/e8c8600e-4fb7-4816-be95-993ede1224d4
      
      
      
      ## Closes
      Fixes #1232 and #1171
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds edit support for custom language model providers in Settings. Users
      can update provider ID, name, API base URL, and API key env var, with
      safe backend updates that also retarget associated models if the ID
      changes.
      
      - New Features
        - Added “Edit Provider” option in the custom provider menu.
      - Dialog supports edit mode with pre-filled fields, unified loading
      state, and update button text.
      - New IPC handler to edit providers with validation and a transaction;
      updates linked models when IDs change.
      - IPC client and preload channel updated; React hook exposes
      editProvider mutation with cache invalidation.
        - Added e2e test covering the full edit flow.
      
      <!-- End of auto-generated description by cubic. -->
      8c3fdb0a
    • Will Chen's avatar
      add pro banners (#1269) · decd05e7
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Adds rotating Pro banners on the home page to promote Dyad Pro (AI
      access, Smart Context savings, Turbo speed). Also tightens the home
      layout and centers the setup headline.
      
      - New Features
      - Added ProBanner with three variants (AI Access, Smart Context, Turbo).
      One shows at random and links to dyad.sh/pro with UTM tags.
      - Banners are hidden when Pro is enabled or the user has a budget
      (settings.enableDyadPro or userBudget).
      - Added OpenAI, Google, and Anthropic logo assets for the AI Access
      banner.
      - Home updates: show 3 inspiration prompts (was 5), center and constrain
      layout, and render ProBanner below content.
        - SetupBanner heading is centered and slightly smaller (text-5xl).
      
      <!-- End of auto-generated description by cubic. -->
      decd05e7
  4. 16 9月, 2025 1 次提交
  5. 12 9月, 2025 1 次提交
  6. 11 9月, 2025 5 次提交
    • Will Chen's avatar
      Bump to 0.21.0-beta.1 (#1251) · 6e7e86bb
      Will Chen 提交于
      6e7e86bb
    • Will Chen's avatar
      Turbo models (#1249) · a8e9caf7
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Adds “Dyad Turbo” models for Pro users and centralizes model/provider
      constants. Pro users can pick fast, cost‑effective models directly from
      the ModelPicker, with clearer labels and gating.
      
      - **New Features**
      - Added Dyad Turbo provider in ModelPicker with Qwen3 Coder and Kimi K2
      (Pro only).
      - Turbo options are hidden for non‑Pro users; “Pro only” badge shown
      where applicable.
      - “Smart Auto” label now applies only to the Auto model to avoid
      confusion.
      
      - **Refactors**
      - Moved all model/provider constants into language_model_constants.ts
      and updated imports (helpers, client, thinking utils).
      
      <!-- End of auto-generated description by cubic. -->
      a8e9caf7
    • Will Chen's avatar
      Fix Azure e2e test so it doesn't leak (#1248) · 9bc5e138
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Scoped Azure e2e test env setup to prevent leaking variables across
      tests. Added testWithConfigSkipIfWindows and moved Azure env vars into a
      per-test preLaunchHook; the Azure test now skips on Windows.
      
      <!-- End of auto-generated description by cubic. -->
      9bc5e138
    • Will Chen's avatar
      More free models (#1244) · 72acb31d
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Adds support for free OpenRouter models and a new “Free (OpenRouter)”
      auto option that fails over across free models for reliability. Improves
      setup flow and UI with provider cards, a “Free” price badge, and an
      OpenRouter setup prompt in chat.
      
      - **New Features**
      - Added OpenRouter free models: Qwen3 Coder (free), DeepSeek v3 (free),
      DeepSeek v3.1 (free), marked with dollarSigns=0 and a “Free” badge.
      - New auto model: “Free (OpenRouter)” that uses a fallback client to
      cycle through free models with smart retry on transient errors.
      - New SetupProviderCard component and updated SetupBanner with dedicated
      Google and OpenRouter setup cards.
      - Chat shows an OpenRouter setup prompt when “Free (OpenRouter)” is
      selected and OpenRouter isn’t configured.
      - New PriceBadge component in ModelPicker to display “Free” or price
      tier.
      - E2E: added setup flow test and option to show the setup screen in
      tests.
      - Model updates: added DeepSeek v3.1, updated Kimi K2 to kimi-k2-0905,
      migrated providers to LanguageModelV2.
      
      <!-- End of auto-generated description by cubic. -->
      72acb31d
    • Will Chen's avatar
      Add OpenRouter to setup banner (#1242) · 7150082f
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Added OpenRouter as a first-class option in the setup banner and
      introduced a reusable provider card component. This streamlines provider
      selection and adds E2E coverage for the setup flow.
      
      - **New Features**
      - Added SetupProviderCard and used it for Google and OpenRouter in
      SetupBanner.
      - Clicking Google or OpenRouter routes to the correct provider settings
      and logs PostHog events.
        - Kept “Other providers” link to Settings.
      - Added setup.spec.ts E2E test to verify Google, OpenRouter, and Other
      navigation; introduced test config flag showSetupScreen to control the
      OPENAI_API_KEY shortcut.
      
      <!-- End of auto-generated description by cubic. -->
      7150082f
  7. 10 9月, 2025 2 次提交
    • Will Chen's avatar
      include php (#1234) · b9672004
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Added .php to ALLOWED_EXTENSIONS so codebase scanning and related
      features include PHP files.
      
      <!-- End of auto-generated description by cubic. -->
      
      Fixes #1221
      b9672004
    • Will Chen's avatar
      Support 1M tokens for anthropic (drive-by: make aws bedrock secondary… (#1233) · 74edefcb
      Will Chen 提交于
      … provider)
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Enables 1M-token context for Anthropic Claude 4 Sonnet and marks AWS
      Bedrock as a secondary provider. Adds the required Anthropic beta header
      and updates model metadata and pricing indicator.
      
      - **New Features**
      - Send header anthropic-beta: context-1m-2025-08-07 when using the
      Anthropic provider.
      - Update Claude 4 Sonnet configs: contextWindow to 1,000,000; add cost
      warning; increase pricing tier to 5 (applies to Anthropic and Bedrock
      model IDs).
        - Set AWS Bedrock as a secondary provider.
      
      <!-- End of auto-generated description by cubic. -->
      74edefcb
  8. 09 9月, 2025 6 次提交
    • Will Chen's avatar
      Chat search (#1224) · 7818f295
      Will Chen 提交于
      Based on https://github.com/dyad-sh/dyad/pull/1116
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds a fast chat search dialog (Command Palette) to find and jump
      between chats. Open via the sidebar button or Ctrl/Cmd+K, with title and
      message text search plus inline snippets.
      
      - New Features
        - Command palette using cmdk with keyboard shortcut (Ctrl/Cmd+K).
      - Searches within the selected app across chat titles and message
      content via a new IPC route (search-chats).
      - Debounced queries (150ms) with React Query; results de-duplicated and
      sorted by newest.
      - Snippet preview with highlighted matches and custom ranking; selecting
      a result navigates and closes the dialog.
      - Search button added to ChatList; basic e2e tests added (currently
      skipped).
      
      - Dependencies
        - Added cmdk@1.1.1.
      - Bumped @radix-ui/react-dialog to ^1.1.15 and updated Dialog to support
      an optional close button.
      
      <!-- End of auto-generated description by cubic. -->
      
      ---------
      Co-authored-by: 's avatarEvans Obeng <iamevansobeng@outlook.com>
      Co-authored-by: 's avatarEvans Obeng <60653146+iamevansobeng@users.noreply.github.com>
      7818f295
    • Will Chen's avatar
      Fix package-lock.json & merges (#1227) · d2149765
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Regenerated package-lock.json to fix inconsistencies and align with
      package.json. This restores reproducible installs locally and in CI.
      
      - **Migration**
        - Run npm ci to install with the updated lockfile.
        - If install issues persist, delete node_modules and retry.
      
      <!-- End of auto-generated description by cubic. -->
      d2149765
    • Adeniji Adekunle James's avatar
      feat: add xAI (Grok) as AI provider (#1209) · f8ec10ec
      Adeniji Adekunle James 提交于
      # Add xAI (Grok) Provider Support
      
      ## Overview
      This PR adds support for xAI's Grok models as an AI provider, focusing
      on coding-optimized models.
      
      ## Changes Made
      
      ### Provider Configuration (`language_model_helpers.ts`)
      - Added xAI to `MODEL_OPTIONS` with 3 coding-focused models:
        - `grok-code-fast-1`: Fast, economical coding model (256k context)
        - `grok-4`: Most capable flagship model (256k context)
        - `grok-3`: Powerful coding model (131k context)
      
      <img width="805" height="592" alt="image"
      src="https://github.com/user-attachments/assets/a99b9495-e90e-40f3-a772-be9807b24501"
      />
      
      
      <img width="805" height="653" alt="image"
      src="https://github.com/user-attachments/assets/aad7b333-ee74-457a-b5b7-5d20bd54d7e0"
      />
      
      ## Dependencies
      - Requires `@ai-sdk/xai` package (already imported)
      - Uses existing provider pattern and infrastructure
      
      
      ## Why xAI for Coding?
      xAI's Grok models have shown impressive results in coding benchmarks:
      - Trained on high-quality programming datasets reflecting real-world
      tasks
      - Excels at agentic coding workflows with fast reasoning capabilities
      - Strong performance across multiple programming languages (TypeScript,
      Python, Java, Rust, C++, Go)
      - Achieved 70.8% on SWE-Bench-Verified using internal evaluation
      - Optimized for rapid iteration in development environments
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds xAI (Grok) as a provider so users can pick Grok coding models in
      the app. Integrates provider config, client wiring, and schema updates.
      
      - **New Features**
      - Added xAI provider with env var mapping (XAI_API_KEY) and provider
      metadata.
      - Exposed models: grok-code-fast-1 (256k), grok-4 (256k), grok-3 (131k).
        - Hooked up get_model_client to use @ai-sdk/xai (createXai).
        - Included "xai" in validation schemas and model options.
      
      - **Migration**
        - Set XAI_API_KEY to enable xAI.
      
      <!-- End of auto-generated description by cubic. -->
      
      ---------
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      f8ec10ec
    • Samrat Jha's avatar
      Add support for Amazon Bedrock provider (#1185) · 938595aa
      Samrat Jha 提交于
      - follows existing patterns for AI SDK to provide Bedrock integration
      - Uses Bedrock's API token feature for authentication which provides a
      standard experience
      - bedrock provided models match the Anthropic provided models (for now)
      
      
      **Disclaimer**: The contributing docs are extremely sparse. I don't
      actually know how to build this and get this running in Electron
      
      
      ## Testing
      
      - AWS Bedrock provider is available for selection
      <img width="994" height="496" alt="image"
      src="https://github.com/user-attachments/assets/3cb21fed-9826-40e5-8019-b2b5df5e873b"
      />
      
      - The provider settings also show the right models and offer the right
      env variable to use
      <img width="949" height="862" alt="image"
      src="https://github.com/user-attachments/assets/8c23d5c8-d84d-4bf7-856a-8dc8d9d6c4b4"
      />
      
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds AWS Bedrock as a provider so users can run Claude models via
      Bedrock with API token authentication. The settings now list Bedrock
      with supported models and a new env var.
      
      - New Features
      - New provider: bedrock using @ai-sdk/amazon-bedrock, wired into model
      client and schemas.
      - Models: Claude 4 Sonnet, Claude 3.7 Sonnet, Claude 3.5 Sonnet (Bedrock
      model IDs).
      - Settings: shows AWS Bedrock with correct models and env var
      AWS_BEARER_TOKEN_BEDROCK.
        - Default region: us-east-1.
      
      - Migration
        - Set AWS_BEARER_TOKEN_BEDROCK with your Bedrock API token.
        - Select AWS Bedrock in settings and pick a model.
      
      <!-- End of auto-generated description by cubic. -->
      Co-authored-by: 's avatarSamrat Jha <samratj@amazon.com>
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      938595aa
    • Md Rakibul Islam Rocky's avatar
      Add Google Vertex AI provider (#1163) · 4db6d63b
      Md Rakibul Islam Rocky 提交于
      # Summary
      
      * Adds first-class **Google Vertex AI provider** using
      `@ai-sdk/google-vertex`.
      * Supports **Gemini 2.5** models and partner **MaaS (Model Garden)**
      models via full publisher IDs.
      * New **Vertex-specific settings UI** for Project, Location, and Service
      Account JSON.
      * Implements a **“thinking” toggle** for Gemini 2.5 Flash
      
        * Pro: always on
        * Flash: toggleable
        * Flash Lite: none
      * Fixes *“AI not found”* for Vertex built-ins by mapping to
      `publishers/google` paths.
      * Hardens **cross-platform file ops** and ensures all tests pass.
      
      ---
      
      # What’s New
      
      ### Vertex AI Provider
      
      * Uses `@ai-sdk/google-vertex` with `googleAuthOptions.credentials` from
      pasted Service Account JSON.
      * Configurable **project** and **location**.
      * Base URL → `/projects/{project}/locations/{location}`
      
        * Built-ins: `publishers/google/models/<id>`
        * Partner MaaS: `publishers/<partner>/models/...`
      
      ### Built-in Vertex Models
      
      * `gemini-2.5-pro`
      * `gemini-2.5-flash`
      * `gemini-2.5-flash-lite`
      
      ### Thinking Behavior
      
      * Vertex + Google marked as thinking-capable.
      * Pro: always thinking
      * Flash: toggle in UI
      * Flash Lite: none
      
      ### Vertex Settings UI
      
      * New **Google Vertex AI panel** for Project ID, Location, Service
      Account JSON.
      * Keys encrypted like other secrets.
      
      ---
      
      # Fixes
      
      * **Model resolution:** built-ins auto-map to
      `publishers/google/models/<id>`.
      * **Partner MaaS support:** full publisher IDs work directly (e.g.
      DeepSeek).
      * **Cross-platform paths:** normalize file ops with `toPosixPath`,
      preserve `safeJoin` semantics.
      
      ---
      
      # Why This Is Better
      
      * Users can select **Vertex alongside other providers**.
      * **More models** available through Model Garden.
      * **Dedicated setup UI** reduces misconfig.
      * **Thinking toggle** gives control over cost vs. reasoning depth.
      
      ---
      
      # Files Changed
      
      * **Provider & Models**: `language_model_helpers.ts`,
      `get_model_client.ts`
      * **Streaming**: `chat_stream_handlers.ts`
      * **Schemas & Encryption**: `schemas.ts`, `settings.ts`
      * **Settings UI**: `VertexConfiguration.tsx`, `ApiKeyConfiguration.tsx`
      * **Models UI**: `ModelsSection.tsx` (Flash toggle)
      * **Setup Detection**: `useLanguageModelProviders.ts`
      * **Path Utils**: `path_utils.ts`, `response_processor.ts`
      * **Deps**: `package.json` → `@ai-sdk/google-vertex@3.0.16`
      
      ---
      
      # Tests & Validation
      
      * **TypeScript**: `npm run ts` → 
      * **Lint**: `npm run lint` → 
      * **Unit tests**: `npm test` →  231 passed, 0 failed
      
      ---
      
      # Migration / Notes
      
      * No breaking changes.
      * For Vertex usage:
      
        * Ensure Vertex AI API is enabled.
        * Service Account needs `roles/aiplatform.user`.
        * Region must support model (e.g. `us-central1`).
      * Thinking toggle currently affects **only** Gemini 2.5 Flash.
      
      ---
      
      # Manual QA
      
      1. Configure Vertex with Project/Location/Service Account JSON.
      2. Test built-ins:
      
         * `gemini-2.5-pro`
         * `gemini-2.5-flash` (toggle on/off)
         * `gemini-2.5-flash-lite`
      3. Test MaaS partner model (e.g., DeepSeek) via full publisher ID.
      4. Verify other providers remain unaffected.
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Adds a first-class Google Vertex AI provider with Gemini 2.5 models, a
      Vertex settings panel, and a “thinking” toggle for Gemini 2.5 Flash.
      Also fixes model resolution for Vertex and hardens cross-platform file
      operations.
      
      - **New Features**
      - Vertex AI provider via @ai-sdk/google-vertex with project, location,
      and service account JSON.
      - Built-in models: gemini-2.5-pro, gemini-2.5-flash,
      gemini-2.5-flash-lite.
      - “Thinking” support: Pro always on; Flash toggle in Models UI; Flash
      Lite none.
      - MaaS partners supported via full publisher paths (e.g.,
      publishers/<partner>/models/...).
        - Vertex settings UI with encrypted service account key storage.
      
      - **Bug Fixes**
        - Built-in Vertex models auto-map to publishers/google/models/<id>.
        - Consistent file ops across platforms using toPosixPath.
      - Vertex readiness detection requires project/location/service account
      JSON.
      - Streaming “thinking” behavior respects Vertex Flash toggle and Pro
      always-on.
      
      <!-- End of auto-generated description by cubic. -->
      
      ---------
      Co-authored-by: 's avatarMd Rakibul Islam Rocky <mdrirocky08@gmail.com>
      Co-authored-by: 's avatargraphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      4db6d63b
    • Will Chen's avatar
      bump to v0.20 stable (#1223) · e962964a
      Will Chen 提交于
      e962964a
  9. 06 9月, 2025 4 次提交
    • Mohamed Aziz Mejri's avatar
      Set minimum window size to prevent UI breakage (#1195) · ba115605
      Mohamed Aziz Mejri 提交于
      This PR solves issue #1194 by setting a minimum height and width
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Set a minimum window size to prevent UI breakage when the app is resized
      too small. The BrowserWindow now enforces minWidth 800 and minHeight 500
      so layouts stay stable and controls remain accessible.
      
      <!-- End of auto-generated description by cubic. -->
      ba115605
    • Mohamed Aziz Mejri's avatar
      Component selection shortcut (#1139) · 6ee1a931
      Mohamed Aziz Mejri 提交于
      This PR introduces a new keyboard shortcut to improve the efficiency of
      selecting components in the app. Users can now quickly select components
      using Meta + Shift + C for Mac and Ctrl + Shift + C for Other devices
      (Windows/Linux)
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Add a shortcut to quickly activate the component selector from the
      preview. Use Meta+Shift+C on macOS and Ctrl+Shift+C on Windows/Linux.
      
      - **New Features**
      - Added useShortcut hook to handle key combos and prevent default on
      match.
        - Wired shortcut in PreviewIframe with OS detection for Meta vs Ctrl.
      - Forwarded keydown events from the iframe to the parent via postMessage
      (dyad-shortcut-triggered) so the shortcut works inside preview content.
      
      <!-- End of auto-generated description by cubic. -->
      6ee1a931
    • Adeniji Adekunle James's avatar
      docs: fix typo "pull requet" to "pull request" in CONTRIBUTING.md (#1188) · 207f3fc3
      Adeniji Adekunle James 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Fix typo in CONTRIBUTING.md by correcting "pull requet" to "pull
      request" in the setup section, improving clarity for contributors.
      
      <!-- End of auto-generated description by cubic. -->
      207f3fc3
    • Adeniji Adekunle James's avatar
      fix(ui): turbo edit - prevent code editor content click from toggling accordion (#1201) · d6e1df3a
      Adeniji Adekunle James 提交于
      Hovering over the turbo edit code block previously showed a pointer
      cursor, and clicking inside would collapse/expand the accordion. This PR
      updates the DyadEdit component to use cursor-text and adds
      e.stopPropagation() so clicks inside the code block no longer toggle the
      accordion.
      
      
      
      
      https://github.com/user-attachments/assets/1b23be66-6d8f-4e4b-a390-d59f9a2bcee8
      
      
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Prevented the Turbo Edit accordion from toggling when clicking inside
      the code block and updated the cursor to text to signal editing.
      
      - **Bug Fixes**
      - Stop click propagation inside the code block to avoid accordion
      toggle.
      - Apply cursor-text on the code container for proper text-selection
      affordance.
      
      <!-- End of auto-generated description by cubic. -->
      d6e1df3a
  10. 05 9月, 2025 1 次提交
    • Will Chen's avatar
      Make balanced smart context option the default (#1186) · 56d0e767
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Set “balanced” as the default smart context mode. Users now get balanced
      when Smart Files Context is enabled and no mode is set; “conservative”
      must be explicitly selected.
      
      - **Refactors**
      - Default fallback to balanced in UI and engine (proSmartContextOption
      undefined -> "balanced").
      - ProModeSelector saves "conservative" explicitly; selector reads
      undefined as balanced.
        - Updated schema and types to allow "balanced" | "conservative".
      - Engine payload now includes smart_context_mode with "balanced" by
      default; e2e tests and snapshots updated.
      
      - **Migration**
      - No action needed. Existing users without an explicit mode will use
      balanced by default; selecting conservative persists.
      
      <!-- End of auto-generated description by cubic. -->
      56d0e767
  11. 04 9月, 2025 5 次提交
    • Will Chen's avatar
      Improve model picker UX (#1180) · 2842c61f
      Will Chen 提交于
      1. Show less common AI providers (secondary) in submenu
      2. Show $ signs for rough cost guide
      3. Show "Pro" for supported AI providers with Pro is enabled
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Improves the Model Picker UX by grouping less-used providers under an
      “Other AI providers” submenu and adding clear cost and Pro indicators.
      This makes picking models faster and more informative.
      
      - **New Features**
      - Grouped secondary providers under “Other AI providers” using a new
      provider.secondary flag (Azure marked secondary).
      - Added rough cost hints: models can set dollarSigns and the UI shows a
      “$” badge accordingly.
      - Shows a “Pro” badge on supported cloud providers when Pro is enabled;
      added a “Custom” badge for custom providers.
      - Extended types: LanguageModelProvider.secondary and
      LanguageModel.dollarSigns; populated values across OpenAI, Anthropic,
      Google, and OpenRouter.
      
      <!-- End of auto-generated description by cubic. -->
      2842c61f
    • Will Chen's avatar
      v0.20.0-beta.1 (#1181) · b5b637f7
      Will Chen 提交于
      b5b637f7
    • 顾颢's avatar
      chore: add Windows compatibility for npm scripts (#1170) · 06d79f89
      顾颢 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Make npm scripts work on Windows by replacing rm -rf with rimraf and
      using cross-env for environment variables. This enables local dev and
      packaging on Windows without WSL.
      
      - **Refactors**
      - Changed clean to use rimraf and delete out and scaffold/node_modules.
      - Prefixed dev:engine, staging:engine, and staging:gateway with
      cross-env.
      
      - **Dependencies**
        - Added rimraf ^6.0.1. Run npm install.
      
      <!-- End of auto-generated description by cubic. -->
      Co-authored-by: 's avatar顾颢 <guhao@dayee.com>
      06d79f89
    • Adeniji Adekunle James's avatar
      fix: hide <dyad-command> tags from generated text output (#945) (#1162) · ebcf89ee
      Adeniji Adekunle James 提交于
      ### Summary
      This PR hides `<dyad-command type="refresh"></dyad-command>` tags from
      generated text outputs. These elements are not intended for end users
      and clutter the response text.
      
      ### Changes
      - Filter out `<dyad-command>` tags from generated text.
      - Ensure no regressions in rendering or formatting of user-visible
      output.
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Hide dyad-command tags from chat output so internal commands never
      appear in user-visible text. Updates DyadMarkdownParser to detect and
      drop these tags during preprocessing, parsing, and rendering.
      
      <!-- End of auto-generated description by cubic. -->
      ebcf89ee
    • Will Chen's avatar
      Enable iframe sandbox (#1178) · 1c0255ab
      Will Chen 提交于
      This allows almost all the iframe sandbox tokens
      https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe#sandbox
      except notably for allow-top-navigation*
      
      Note: allow-same-origin should be OK because the main window is under
      the `file://` origin while the iframe window is served on
      `localhost:####`
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Enable sandboxing on the preview iframe to isolate preview content while
      preserving needed capabilities (allow-same-origin, scripts, forms,
      popups, modals, orientation/pointer lock, presentation, downloads).
      Top-level navigation remains disallowed; allow-same-origin is safe
      because the app is file:// and the iframe runs on localhost.
      
      <!-- End of auto-generated description by cubic. -->
      1c0255ab
  12. 03 9月, 2025 2 次提交
  13. 02 9月, 2025 2 次提交
    • Will Chen's avatar
      Use new dyad icons (#1157) · 1e655e1c
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Updates app branding to icon set v2 and switches the in-app logo to SVG
      for sharper rendering.
      
      - **Refactors**
        - Use assets/logo.svg in TitleBar instead of logo_transparent.png.
      - Add assets/logo.svg; remove legacy PNGs (logo.png,
      logo_transparent.png).
      - Refresh platform icon files (logo.icns, logo.ico,
      assets/icon/logo.png).
      
      <!-- End of auto-generated description by cubic. -->
      1e655e1c
    • Toluwap's avatar
      Update missing direction creation (#1146) · 78b69ae5
      Toluwap 提交于
      Update the doc for missing userData for the database.
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Add a setup step in CONTRIBUTING.md to create the userData directory
      required by the database. This prevents migration commands from failing
      on fresh installs.
      
      <!-- End of auto-generated description by cubic. -->
      78b69ae5
  14. 31 8月, 2025 1 次提交
    • Tanner-Maasen's avatar
      Add Azure OpenAI Custom Model Integration (#1001) · 2ffbbbca
      Tanner-Maasen 提交于
      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: 's avatargraphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      2ffbbbca
  15. 30 8月, 2025 4 次提交
  16. 29 8月, 2025 1 次提交
    • Will Chen's avatar
      Add dupe issue bot (#1120) · c6342350
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Adds a GitHub Action to detect and comment on potential duplicate issues
      when a new issue is opened. This reduces triage time and keeps issue
      lists clean.
      
      - **New Features**
      - Adds .github/workflows/duplicate-issues.yml triggered on issues:
      opened.
      - Uses opencode with Anthropic Claude Sonnet 4 to scan existing issues
      and comment with links if duplicates are likely; stays silent otherwise.
      - Runs with minimal permissions; allows gh issue commands and denies
      webfetch.
      
      - **Migration**
      - Create the ai-bots environment and add the ANTHROPIC_API_KEY secret
      (GITHUB_TOKEN is provided by GitHub).
      
      <!-- End of auto-generated description by cubic. -->
      c6342350