1. 11 9月, 2025 2 次提交
    • 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 03 9月, 2025 2 次提交
  8. 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
  9. 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
  10. 30 8月, 2025 4 次提交
  11. 29 8月, 2025 2 次提交
    • 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
    • Will Chen's avatar
      pre commit (#1119) · 3d6e683f
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Adds an explicit Husky pre-commit setup to run the formatter and linter
      before each commit. Replaces the auto-run prepare hook with a manual npm
      run init-precommit command.
      
      - **Migration**
      - Run npm run init-precommit once in your repo to install the pre-commit
      hook.
      
      <!-- End of auto-generated description by cubic. -->
      3d6e683f
  12. 28 8月, 2025 1 次提交
    • 顾颢's avatar
      fix: error on first custom provider deletion (#1110) · 6e4eb7c4
      顾颢 提交于
      fixes #1109 
      
      
      https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md#transactionfunction---function
      
      > Transaction functions do not work with async functions. Technically
      speaking, async functions always return after the first await, which
      means the transaction will already be committed before any async code
      executes.
      
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Fixes a runtime error when deleting the first custom provider by using a
      synchronous DB transaction. Ensures associated models and the provider
      are removed atomically without failing.
      
      - **Bug Fixes**
      - Replace async transaction callback with a synchronous one and remove
      awaits on tx operations to match the DB API and prevent the first-delete
      error.
      
      <!-- End of auto-generated description by cubic. -->
      Co-authored-by: 's avatar顾颢 <hao.gu@factchina.com>
      6e4eb7c4
  13. 27 8月, 2025 4 次提交
    • Will Chen's avatar
      bump to beta v0.19 1 (#1094) · 8211db71
      Will Chen 提交于
      8211db71
    • Will Chen's avatar
      Support dyad docker (#674) · 9869fefb
      Will Chen 提交于
      TODOs:
      - [ ] clean-up docker images
      
      https://claude.ai/chat/13b2c5d3-0d46-49e3-a771-d10edf1e29f4
      9869fefb
    • Toni Alatalo's avatar
      Prompts: align examples to TypeScript (.tsx/.ts) to avoid .jsx drift (#1076) · e6c92a24
      Toni Alatalo 提交于
      The prompt text says:
      
      > - Use TypeScript.
      
      But in the examples there are .jsx files.
      
      I got errors sometimes (in my fork with other changes too) that JSX got
      generated instead of TSX. This seems to have fixed it for me.
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Updated system prompt examples to use .tsx/.ts instead of .jsx/.js,
      matching the “Use TypeScript” instruction. This prevents JSX drift and
      reduces cases where generated code uses JSX instead of TSX.
      
      <!-- End of auto-generated description by cubic. -->
      e6c92a24
    • Will Chen's avatar
      Read JSON (#1081) · 53bbfc98
      Will Chen 提交于
      Fixes #1037 
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Enable JSON file support in codebase scanning so common configs and data
      (e.g., package.json, vercel.json, translations) are included. Adds .json
      to the allowed extensions and removes special-casing for
      package.json/vercel.json.
      
      <!-- End of auto-generated description by cubic. -->
      53bbfc98
  14. 26 8月, 2025 4 次提交
    • Will Chen's avatar
      Fix package.json (#1080) · 1dfa0d10
      Will Chen 提交于
      Fixes #554 #1049 
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Stop mutating package.json when reading files. readFileWithCache now
      returns raw content so all fields are preserved (e.g., packageManager).
      Fixes #554 and #1049.
      
      - **Bug Fixes**
        - Removed package.json "cleaning" logic and the cleanContent helper.
      - Return and cache unmodified file content from both fs and
      virtualFileSystem.
      
      <!-- End of auto-generated description by cubic. -->
      1dfa0d10
    • Will Chen's avatar
      verify jwt to false (#1085) · 72be54e6
      Will Chen 提交于
      fixes #1010 
          
      <!-- This is an auto-generated description by cubic. -->
      ---
      
      ## Summary by cubic
      Disable automatic JWT verification for Supabase Edge Functions and
      update prompts/templates to require and demonstrate manual auth
      handling. Fixes #1010.
      
      - **Bug Fixes**
        - Set verify_jwt: false in function deployment.
      - Updated Supabase prompt with an Authentication section and guidance to
      manually verify tokens.
      - Adjusted the hello function template to check the Authorization header
      and return 401 when missing.
      
      <!-- End of auto-generated description by cubic. -->
      72be54e6
    • Will Chen's avatar
      Parameterize sys prompt (#1082) · d8e54d9a
      Will Chen 提交于
      <!-- This is an auto-generated description by cubic. -->
      
      ## Summary by cubic
      Parameterized the system prompt and tokenized it in e2e dumps to make
      snapshots smaller and stable. No runtime behavior changes; future prompt
      edits won’t churn tests.
      
      - **Refactors**
      - Exported BUILD_SYSTEM_PREFIX and BUILD_SYSTEM_POSTFIX from
      system_prompt.ts.
      - Updated test_helper to replace the full prompt with
      ${BUILD_SYSTEM_PREFIX}/${BUILD_SYSTEM_POSTFIX} tokens in message dumps.
      - Regenerated e2e snapshots to use tokens, reducing ~270 lines per
      snapshot.
      
      <!-- End of auto-generated description by cubic. -->
      d8e54d9a
    • Will Chen's avatar
      fix contrib format (#1083) · b14177b0
      Will Chen 提交于
      b14177b0