1. 10 12月, 2025 4 次提交
    • Adeniji Adekunle James's avatar
      Replace native Git with Dugite to support users without Git installed (#1760) · d3f3ac3a
      Adeniji Adekunle James 提交于
      I moved all isomorphic-git usage into a single git_utils.ts file and
      added Dugite as an alternative Git provider. The app now checks the
      user’s settings and uses dugite when user enabled native git for all
      isomorphic-git commands. This makes it easy to fully remove
      isomorphic-git in the future by updating only git_utils.ts.
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Adds Dugite-based native Git (bundled binary) and refactors all Git
      calls to a unified git_utils API, replacing direct isomorphic-git usage
      across the app.
      > 
      > - **Git Platform Abstraction**:
      > - Introduces `dugite` and bundles Git via Electron Forge
      (`extraResource`) with `LOCAL_GIT_DIRECTORY` setup in `src/main.ts`.
      > - Adds `src/ipc/git_types.ts` and a comprehensive
      `src/ipc/utils/git_utils.ts` wrapper supporting both Dugite (native) and
      `isomorphic-git` (fallback): `commit`, `add`/`addAll`, `remove`, `init`,
      `clone`, `push`, `setRemoteUrl`, `currentBranch`, `listBranches`,
      `renameBranch`, `log`, `isIgnored`, `getCurrentCommitHash`,
      `getGitUncommittedFiles`, `getFileAtCommit`, `checkout`,
      `stageToRevert`.
      > - **Refactors (switch to git_utils)**:
      > - Replaces direct `isomorphic-git` imports in handlers and processors:
      `app_handlers`, `chat_handlers`, `createFromTemplate`,
      `github_handlers`, `import_handlers`, `portal_handlers`,
      `version_handlers`, `response_processor`, `neon_timestamp_utils`,
      `utils/codebase`.
      > - Updates tests to mock `git_utils`
      (`src/__tests__/chat_stream_handlers.test.ts`).
      > - **Behavioral/Feature Updates**:
      > - `createFromTemplate` uses `fetch` for GitHub API and `gitClone` for
      cloning with cache validation.
      > - GitHub integration uses `gitSetRemoteUrl`/`gitPush`/`gitClone`,
      handling public vs token URLs and directory creation when native Git is
      disabled.
      > - Versioning, imports, app file edits, migrations now stage/commit via
      `git_utils`.
      > - **UI/Copy**:
      >   - Updates Settings description for “Enable Native Git”.
      > - **Config/Version**:
      >   - Bumps version to `0.29.0-beta.1`; adds `dugite` dependency.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      ba098f7f25d85fc6330a41dc718fbfd43fff2d6c. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      ---------
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      d3f3ac3a
    • Adeniji Adekunle James's avatar
      Fix: Custom Model Not Updating (#1817) (#1840) · a7bcec22
      Adeniji Adekunle James 提交于
      Closes (#1817)
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Fixes the bug where editing a custom model didn’t update the currently
      selected model. The selection now stays in sync after renaming or
      editing.
      
      - **Bug Fixes**
      - Use useSettings to detect if the edited model is the active one (match
      provider and apiName).
      - Update settings.selectedModel with the new apiName; on failure show an
      error and keep the dialog open; otherwise show success, call onSuccess,
      then close.
      
      <sup>Written for commit 88045165a3989277e703a8f31712fcf1dfeaa32a.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      a7bcec22
    • Will Chen's avatar
      Update macos-intel to use macos-15 (#1912) · 20866d5d
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Updates the release workflow matrix to use the `macos-15-intel` runner
      for `macos-intel` builds.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      37416cf576675ea399dd84cf1e50a2511b768de8. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Switch the macos-intel release job to the macos-15-intel GitHub Actions
      runner. This updates CI to the macOS 15 Intel image and keeps our matrix
      consistent with current supported runners.
      
      <sup>Written for commit 37416cf576675ea399dd84cf1e50a2511b768de8.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      20866d5d
    • Mohamed Aziz Mejri's avatar
      Visual editor (Pro only) (#1828) · 352d4330
      Mohamed Aziz Mejri 提交于
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Prototype visual editing mode for the preview app. Toggle the mode, pick
      elements (single or multiple), and edit margin, padding, border,
      background, static text, and text styles with live updates, then save
      changes back to code.
      
      - **New Features**
      - Pen tool button to enable/disable visual editing in the preview and
      toggle single/multi select; pro-only.
      - Inline toolbar anchored to the selected element for Margin (X/Y),
      Padding (X/Y), Border (width/radius/color), Background color, Edit Text
      (when static), and Text Style (font size/weight/color/font family).
      - Reads computed styles from the iframe and applies changes in real
      time; auto-appends px; overlay updates on scroll/resize.
      - Save/Discard dialog batches edits and writes Tailwind classes to
      source files via IPC; uses AST/recast to update className and text,
      replacing conflicting classes by prefix; supports multiple components.
      - New visual editor worker to get/apply styles and enable inline text
      editing via postMessage; selector client updated for coordinates
      streaming and highlight/deselect.
      - Proxy injects the visual editor client; new atoms track selected
      component, coordinates, and pending changes; component analysis flags
      dynamic styling and static text.
        - Uses runtimeId to correctly target and edit duplicate components.
      
      - **Dependencies**
        - Added @babel/parser for AST-based text updates.
        - Added recast for safer code transformations.
      
      <sup>Written for commit cdd50d33387a29103864f4743ae7570d64d61e93.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      352d4330
  2. 09 12月, 2025 5 次提交
    • Mohamed Aziz Mejri's avatar
      Adding a button for copying error messages (#1882) · c174778d
      Mohamed Aziz Mejri 提交于
      close #1870 
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Adds a “Copy” button to error banners and chat error output so users can
      quickly copy error messages with clear feedback. Addresses Linear #1870.
      
      - **New Features**
      - Introduced CopyErrorMessage component that writes to clipboard and
      shows “Copied” for 2s.
      - Added the copy button to the Preview error banner and DyadOutput;
      actions grouped at the bottom beside “Fix with AI”.
      - Added Playwright e2e test and helpers to verify copy behavior and
      clipboard content.
      
      <sup>Written for commit 12e9bf1437ded36dc022e1d795025580d2ffd111.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      c174778d
    • Will Chen's avatar
      Warn (not error) on identical search-replace blocks and include searc… (#1899) · 4b178700
      Will Chen 提交于
      …h-replace failure in error message
      
      Addresses part of #1898 
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Treat identical SEARCH/REPLACE as a no-op warning and propagate
      detailed applySearchReplace errors (incl. fuzzy match stats) to the UI;
      add scoped logging and update tests/snapshots.
      > 
      > - **Processors**:
      > - `src/pro/main/ipc/processors/search_replace_processor.ts`: Log a
      warning (not error) when SEARCH and REPLACE blocks are identical; add
      scoped logger; keep content unchanged.
      > - `src/ipc/processors/response_processor.ts`: Include detailed failure
      reason from `applySearchReplace` in dry-run issues.
      > - **Tests & Snapshots**:
      > - `search_replace_processor.spec.ts`: Update test to expect success
      when blocks are identical.
      > - `e2e-tests/...turbo-edits-v2...snapshot`: Reflect detailed error
      message with fuzzy match similarity/threshold.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      a394d297d5561ada3bdd197dbb4e6aca6928ad99. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Warn instead of error when search and replace blocks are identical, and
      include the specific failure reason in search-replace error messages for
      clearer feedback.
      
      - **Bug Fixes**
      - Treat identical search/replace blocks as a no-op: log a warning and
      return success.
      - Bubble up detailed failure reasons to the UI (e.g., no match and fuzzy
      similarity/threshold).
      - Add scoped logging to the processor and update the e2e snapshot to
      reflect new error messaging.
      
      <sup>Written for commit a394d297d5561ada3bdd197dbb4e6aca6928ad99.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      4b178700
    • Will Chen's avatar
      Fix supabase list getting into drag list area (#1749) · 1b678041
      Will Chen 提交于
      Fixes #1717 
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Disable `.app-region-drag` while `body[data-scroll-locked]` is present
      to prevent drag interference with open Select.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      8d5e4774dfa924e073d79dc999a5f065425e985b. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Fixes window dragging interfering with the Supabase project dropdown.
      Disables dragging on .app-region-drag while the Radix Select is open by
      targeting body[data-scroll-locked], so users can scroll and select
      normally.
      
      <sup>Written for commit 8d5e4774dfa924e073d79dc999a5f065425e985b.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      1b678041
    • Will Chen's avatar
      Pin capacitor to v7.4.4 (#1906) · 6d66e13e
      Will Chen 提交于
      besides making our capacitor e2e test more deterministic, it also
      prevents silent upgrades given the various npm ecosystem compromises in
      the past.
      6d66e13e
    • Will Chen's avatar
      Add e2e test for balanced smart context mode (#1901) · 560cd179
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Adds an e2e test for the balanced Smart Context mode with
      corresponding ARIA and request payload snapshots.
      > 
      > - **Tests**:
      > - Add `e2e-tests/smart_context_balanced.spec.ts` to exercise Pro Modes
      dialog, set Smart Context to `balanced`, send `[dump]`, and snapshot
      server dump and messages.
      >   - Add snapshots:
      > -
      `e2e-tests/snapshots/smart_context_balanced.spec.ts_smart-context-balanced---simple-1.aria.yml`
      > -
      `e2e-tests/snapshots/smart_context_balanced.spec.ts_smart-context-balanced---simple-1.txt`
      (captures request body/options).
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      66bf07057ded2a6afb328b7de01c821ab6a0fca8. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Added an end-to-end test for the “balanced” Smart Context mode to verify
      the Pro Modes dialog switches to balanced and the mode is applied. The
      test sends a [dump] prompt, snapshots the server request and messages
      (ARIA + text), and is skipped on Windows.
      
      <sup>Written for commit 66bf07057ded2a6afb328b7de01c821ab6a0fca8.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      560cd179
  3. 05 12月, 2025 8 次提交
    • Will Chen's avatar
      Bump to v0.29 beta (#1895) · 5325549f
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Bumps version from 0.28.0 to 0.29.0-beta.1 in `package.json`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      085f7afe2cd391775f91b9973b7b9f557f026c26. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Bumped version to v0.29.0-beta.1 to start the v0.29 beta. Updates
      package.json so builds and release channels tag the app as a beta for
      testing.
      
      <sup>Written for commit 085f7afe2cd391775f91b9973b7b9f557f026c26.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      5325549f
    • Will Chen's avatar
      Bump react (internal) (#1893) · e0f123b8
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Upgrade React and React DOM to 19.2.1 and align related lockfile
      entries (including scheduler).
      > 
      > - **Dependencies**:
      > - Upgrade `react` to `^19.2.1` and `react-dom` to `^19.2.1` in
      `package.json`.
      > - Update lockfile resolutions for `react`, `react-dom`, and
      `scheduler` (`0.27.0`), including peer/dependency ranges.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      7085cd54e499a04e89f6325f4e274e19cdde4961. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Upgraded React and React DOM to 19.2.1 to adopt the latest fixes. No app
      code changes.
      
      - **Dependencies**
        - Bumped react and react-dom to ^19.2.1.
        - Updated scheduler to 0.27.0 via react-dom.
      
      <sup>Written for commit 7085cd54e499a04e89f6325f4e274e19cdde4961.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      e0f123b8
    • Will Chen's avatar
      Add Opus 4.5 and clean-up naming & remove legacy models for anthropic (#1892) · 91e8d0c0
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
      generating a summary for commit
      fb0aff0bf5e21e1b57bc8744ed9643b863b888d4. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Adds support for Anthropic Claude Opus 4.5 and standardizes Sonnet
      naming. Removes legacy 3.x Anthropic models and updates tests to use the
      new names.
      
      - **New Features**
        - Added "Claude Opus 4.5" with 32k max output and 200k context.
      
      - **Migration**
      - Names standardized to "Claude Sonnet 4" and "Claude Sonnet 4.5".
      Update any model selections and tests.
      - Removed Anthropic 3.x models: Claude 3.7 Sonnet, Claude 3.5 Sonnet,
      Claude 3.5 Haiku, and their Bedrock variants.
      
      <sup>Written for commit fb0aff0bf5e21e1b57bc8744ed9643b863b888d4.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      91e8d0c0
    • Will Chen's avatar
      Summarize chat trigger (#1890) · 6235f7bb
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Adds a context-limit banner with one-click “summarize into new chat,”
      refactors token counting with react-query, and persists per-message max
      token usage.
      > 
      > - **Chat UX**
      > - **Context limit banner** (`ContextLimitBanner.tsx`,
      `MessagesList.tsx`): shows when within 40k tokens of `contextWindow`,
      with tooltip and action to summarize into a new chat.
      > - **Summarize flow**: extracted to `useSummarizeInNewChat` and used in
      chat input and banner; new summarize system prompt
      (`summarize_chat_system_prompt.ts`).
      > - **Token usage & counting**
      > - **Persist max tokens used per assistant message**: DB migration
      (`messages.max_tokens_used`), schema updates, and saving usage during
      streaming (`chat_stream_handlers.ts`).
      > - **Token counting refactor** (`useCountTokens.ts`): react-query with
      debounce; returns `estimatedTotalTokens` and `actualMaxTokens`;
      invalidated on model change and stream end; `TokenBar` updated.
      > - **Surfacing usage**: tooltip on latest assistant message shows total
      tokens (`ChatMessage.tsx`).
      > - **Model/config tweaks**
      > - Set `auto` model `contextWindow` to `200_000`
      (`language_model_constants.ts`).
      >   - Improve chat auto-scroll dependency (`ChatPanel.tsx`).
      >   - Fix app path validation regex (`app_handlers.ts`).
      > - **Testing & dev server**
      > - E2E tests for banner and summarize
      (`e2e-tests/context_limit_banner.spec.ts` + fixtures/snapshot).
      > - Fake LLM server streams usage to simulate high token scenarios
      (`testing/fake-llm-server/*`).
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      2ae16a14d50699cc772407426419192c2fdf2ec3. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      
      
      
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Adds a “Summarize into new chat” trigger and a context limit banner to
      help keep conversations focused and avoid hitting model limits. Also
      tracks and surfaces actual token usage per assistant message, with a
      token counting refactor for reliability.
      
      - **New Features**
      - Summarize into new chat from the input or banner; improved system
      prompt with clear output format.
      - Context limit banner shows when within 40k tokens of the model’s
      context window and offers a one-click summarize action.
        - Tooltip on the latest assistant message shows total tokens used.
      
      - **Refactors**
      - Token counting now uses react-query and returns estimatedTotalTokens
      and actualMaxTokens; counts are invalidated on model change and when
      streaming settles.
      - Persist per-message max_tokens_used in the messages table; backend
      aggregates model usage during streaming and saves it.
      - Adjusted default “Auto” model contextWindow to 200k for more realistic
      limits.
      - Improved chat scrolling while streaming; fixed app path validation
      regex.
      
      <sup>Written for commit 2ae16a14d50699cc772407426419192c2fdf2ec3.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      6235f7bb
    • Mohamed Aziz Mejri's avatar
      adding a button for fixing all errors (#1785) · 90c5805b
      Mohamed Aziz Mejri 提交于
      closes #1688 
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Add a “Fix All Errors” button to the chat that collects all error
      messages and sends a single request to resolve them. This helps users
      fix multiple errors in one step.
      
      - New Features
      - Parse dyad-output type=error messages and track count/last index in
      DyadMarkdownParser.
      - Show FixAllErrorsButton after the last error when there are 2+ errors,
      not streaming, and chatId is present.
      - Button streams a prompt listing all errors, shows a loading state, and
      displays the error count.
      
      <sup>Written for commit b9762955d3b9cecd3b00c9efb478ce599f60e32d.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      90c5805b
    • Will Chen's avatar
      default to deep context (#1891) · 40aeed14
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Default Smart Files context to deep and align UI and stream handler
      logic so any non-balanced option uses deep when Pro mode is enabled.
      > 
      > - **Smart Context behavior**
      > - UI (`src/components/ProModeSelector.tsx`): default
      `getCurrentValue()` to `"deep"` when Pro Smart Files mode is enabled
      without an explicit option.
      > - Engine (`src/ipc/handlers/chat_stream_handlers.ts`):
      `isDeepContextEnabled` now requires `enableProSmartFilesContextMode` and
      treats any option other than `"balanced"` as deep; `smartContextMode`
      set accordingly and `versioned_files` used when deep.
      > - **Snapshots**
      > - Update e2e snapshots to reflect `smart_context_mode: "deep"` and new
      `dyad_options.versioned_files` structure.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      7426890467d60b671a7a9712f7544a35ed922981. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Default smart files context to deep and align the UI and stream handler
      so anything not “balanced” uses deep when Pro Smart Files mode is on.
      This prevents mismatches and makes deep context the default.
      
      - **Bug Fixes**
        - ProModeSelector: default to deep when no option is set.
      - chat_stream_handlers: isDeepContextEnabled requires Pro Smart Files
      mode and treats non-“balanced” as deep; smartContextMode set to deep
      accordingly.
        - Engine payload: use versioned_files; update e2e snapshots.
      
      <sup>Written for commit 7426890467d60b671a7a9712f7544a35ed922981.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      40aeed14
    • Will Chen's avatar
      Detect external changes with deep context (#1888) · 538745d5
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Adds commit-aware deep context by computing hasExternalChanges (via
      latest assistant commit vs current repo + dirty check) and propagating
      commitHash through messages/provider options.
      > 
      > - **Deep Smart Context**:
      > - Add `hasExternalChanges` to `VersionedFiles`; compute by comparing
      latest assistant `commitHash` with `getCurrentCommitHash` and checking
      `isGitStatusClean`.
      > - Make `sourceCommitHash` nullable; add `commitHash` in
      `DyadEngineProviderOptions` and use it when scanning history.
      > - **Chat Handling**:
      > - Include `commitHash` in `messageHistory` and pass through
      `providerOptions['dyad-engine']`.
      > - **Git Utilities**:
      > - New `isGitStatusClean(path)` supporting native git and
      isomorphic-git.
      > - **Tests/Snapshots**:
      > - Mock `getCurrentCommitHash` and `isGitStatusClean`; update snapshot
      to include `hasExternalChanges`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      ad92d9dd5ead941de822e8da59c8819e4db8b775. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Detects external code changes in deep context by comparing the latest
      assistant commit with the current repo state. Exposes a
      hasExternalChanges flag so the engine can adapt responses when the
      workspace diverges.
      
      - **New Features**
        - Added hasExternalChanges to VersionedFiles.
      - Computes by comparing the latest assistant commitHash with
      getCurrentCommitHash and checking isGitStatusClean.
      - Passes commitHash through chat messages and dyad-engine
      providerOptions; sourceCommitHash is now nullable.
        - Defaults to true if detection fails (with a warning).
      
      <sup>Written for commit 6ebb0b125c9a3421b4e5673870b204c9cb279265.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      538745d5
    • Will Chen's avatar
      Fallback to balanced smart context for mentioned apps because not sup… (#1886) · 37018865
      Will Chen 提交于
      …ported in deep context
      
      Fixes https://github.com/dyad-sh/dyad/issues/1715
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Deep context now only applies with no app mentions; otherwise we
      fallback to balanced and pass the effective mode to the engine, with
      updated history limits and new e2e coverage.
      > 
      > - **Smart Context behavior**:
      > - Deep mode activates only when no `@app:` mentions are present;
      otherwise uses `balanced`.
      > - Max chat turns set to 201 only for deep-without-mentions; otherwise
      use configured limit.
      > - **Engine integration**:
      > - Send effective smart context mode via `dyadSmartContextMode` and map
      to `dyad_options.smart_context_mode` in `llm_engine_provider`.
      > - Add `SmartContextMode` schema (`balanced|conservative|deep`) and use
      it in settings/types.
      > - Remove static `smartContextMode` from engine options; use
      per-request mode instead.
      > - **Tests**:
      > - Add e2e test `smart context deep - mention app should fallback to
      balanced` with snapshot asserting `smart_context_mode: "balanced"` and
      mentioned app files.
      > - **Misc**:
      >   - Tighten app path validation regex in `rename-app` handler.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      5aada2bd246e297d7b35e36738f75c8531b897ae. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Fallback to balanced smart context when an app is mentioned in deep
      mode, since deep doesn’t support mentioned apps. This keeps context
      limits correct and updates engine config, with new e2e coverage.
      
      - **Bug Fixes**
      - Deep mode only applies when no apps are mentioned; otherwise we use
      balanced.
      - Max chat turns: 201 only for deep without mentions; otherwise use
      configured limit.
      - Plumb smart context mode via dyadSmartContextMode to the engine; add
      SmartContextMode schema.
      - Add e2e test to verify fallback in deep mode when an app is mentioned.
      
      <sup>Written for commit 5aada2bd246e297d7b35e36738f75c8531b897ae.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      37018865
  4. 04 12月, 2025 3 次提交
    • Mohamed Aziz Mejri's avatar
      feat: add tooltip on project hover to display full project name (#1887) · 196f02c9
      Mohamed Aziz Mejri 提交于
      closes #1885 
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Added a tooltip to sidebar app items to show the full project name on
      hover. Improves readability for long names without changing
      interactions.
      
      - **New Features**
      - Wrapped the app row with TooltipProvider/Trigger and show
      TooltipContent on the right with the full name.
        - Click and favorite actions remain unchanged.
      
      <sup>Written for commit 274c250a27f244f926dcc30413dc1c3db62ca93a.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      196f02c9
    • Will Chen's avatar
      Fix Dyad Pro error messaging (#1884) · c01677fc
      Will Chen 提交于
      Addresses issue in https://github.com/dyad-sh/dyad/issues/1849
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Fixes Pro users seeing an “Upgrade to Dyad Pro” prompt on provider
      rate-limit errors and cleans up noisy fallback details in error
      messages. Pro users now get the correct message, and errors are shorter
      and clearer.
      
      - **Bug Fixes**
      - Show the upgrade link only when not on Pro for rate-limit errors
      (Gemini and generic provider errors).
      - Trim verbose fallback lists by splitting on "Fallbacks=[{" to keep the
      fallback model’s error while removing the rest.
      
      <sup>Written for commit e0f69dcda4b4aa0f1be2af3b1af163d84e995fe7.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Avoids Pro upsell for Pro users on rate-limit errors and trims
      fallback details more precisely in error messages.
      > 
      > - **Chat error handling (`src/components/chat/ChatErrorBox.tsx`)**:
      > - **Rate-limit messaging**: Show Dyad Pro upgrade link only when
      `!isDyadProEnabled` (prevents upsell for existing Pro users).
      > - **Fallback error trimming**: Truncate error text at `"Fallbacks=[{"`
      instead of `"Fallbacks="` to retain fallback model error context.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      e0f69dcda4b4aa0f1be2af3b1af163d84e995fe7. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      c01677fc
    • Will Chen's avatar
      Fix Vercel API breaking change (#1883) · f806414e
      Will Chen 提交于
      Fixes https://github.com/dyad-sh/dyad/issues/1652
      
      This is kind of a hack because the Vercel SDK has a bug since their API
      has subtly made a breaking change in the last month or so and the Vercel
      SDK still hasn't been updated
      https://github.com/vercel/sdk/issues/175#issuecomment-3608968116
      
      Note: the Vercel SDK upgrade in this PR doesn't actually fix the issue,
      but is probably good to do anyways.
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Works around a breaking change in Vercel’s API by bypassing the SDK for
      project queries. Restores listing, availability checks, and project
      linking.
      
      - **Bug Fixes**
        - Added a direct HTTP call to GET /v9/projects using the Vercel token.
      - Replaced SDK calls in list, name availability, and connect-to-project
      flows.
      - Added minimal types and clearer error handling for project responses.
      
      - **Dependencies**
      - Bumped @vercel/sdk to 1.18.0. The upgrade doesn’t fix the bug but is
      safe to adopt.
      
      <sup>Written for commit 306af5c3f235f0ab9d87c809bb8cf54016a5d59f.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Replaces Vercel project retrieval with a direct HTTP helper used
      across handlers to handle API changes, and updates @vercel/sdk to
      ^1.18.0.
      > 
      > - **IPC/Backend (Vercel)**:
      > - Add `getVercelProjects` helper to fetch projects via `GET
      /v9/projects`, mimicking `vercel.projects.getProjects`.
      >   - Update handlers to use the new helper:
      >     - `vercel:list-projects` (`handleListVercelProjects`)
      >     - `vercel:is-project-available` (`handleIsProjectAvailable`)
      > - `vercel:connect-existing-project` (`handleConnectToExistingProject`)
      > - Add lightweight types: `VercelProjectResponse`,
      `GetVercelProjectsResponse`.
      > - **Dependencies**:
      >   - Bump `@vercel/sdk` to `^1.18.0`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      306af5c3f235f0ab9d87c809bb8cf54016a5d59f. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      f806414e
  5. 02 12月, 2025 2 次提交
    • Mohamed Aziz Mejri's avatar
      Preventing invalid characters in app names (#1839) · 2ca14345
      Mohamed Aziz Mejri 提交于
      closes #1823
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Blocks invalid characters in app folder paths during rename and shows
      cleaner error messages in App Details. Prevents OS rename failures and
      removes confusing IPC prefixes from errors.
      
      - **Bug Fixes**
      - Validate new appPath on rename; reject < > : " | ? * / \ and control
      characters when the path changes, with a clear error message.
      - Replace alert() with showError() and strip the IPC wrapper text for
      user-friendly errors.
      
      <sup>Written for commit 14b3c0978c1da3b97ca6d33e67684c7ff872ab0a.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      2ca14345
    • Adeniji Adekunle James's avatar
      Animated placeholder with Prompt suggestion for home chat input (#1706) · dd14e67d
      Adeniji Adekunle James 提交于
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Adds an animated placeholder with rotating prompt suggestions to the
      home chat input to guide users. Also introduces a small hook for the
      typing effect and updates the e2e selector to handle dynamic text.
      
      - **New Features**
      - HomeChatInput shows "Ask Dyad to build" with cycling suggestions
      (ecommerce store, information page, landing page).
      - New useTypingPlaceholder hook for type/delete animation with
      configurable speeds and pause.
      - E2E test locator updated to match aria-placeholder by prefix to
      support dynamic content.
      
      <sup>Written for commit 6b8133ec9441f60909493cad3b43315348aed2d5.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      dd14e67d
  6. 21 11月, 2025 3 次提交
    • Mohamed Aziz Mejri's avatar
      clearing chat input when switching apps (#1791) · fadfbc06
      Mohamed Aziz Mejri 提交于
      This PR adresses issue #1735
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Clear chat input and selected component previews when switching apps to
      prevent state carryover. Fixes #1735.
      
      - **Bug Fixes**
      - Reset chatInputValueAtom and selectedComponentsPreviewAtom on
      selectedAppId change in RootLayout.
        - Ensures each app opens with a clean chat and preview state.
      
      <sup>Written for commit df166781e48934ca1e2b8b2b202daa014c358922.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      fadfbc06
    • Adeniji Adekunle James's avatar
      fix: responsiveness for import app dialog (#1746) (#1786) · 76875fef
      Adeniji Adekunle James 提交于
      The diff appears large due to Prettier formatting, but actual code
      changes are minimal.
      
      - Made header sticky with proper flex layout
      - Added responsive text sizes (`text-xs sm:text-sm`)
      - Improved text wrapping (`break-words overflow-wrap-anywhere`)
      - Made tab labels responsive (shorter for small screen)
      - Added `flex-shrink-0` to prevent icon/button squishing
      - Stack footer buttons vertically on small screen
      
      closes #1746
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Made the Import App dialog responsive on small screens. Improves
      readability and prevents controls from squishing.
      
      - **Bug Fixes**
      - Added a sticky header so the title/description stay visible while
      scrolling.
      - Made text and tab labels responsive, with better word wrapping to
      avoid overflow.
      - Prevented icon/button compression and stacked footer buttons
      vertically on mobile.
      - Updated e2e test by removing the AI_RULES snapshot to match the new
      UI.
      
      <sup>Written for commit 1025631018964aea37689ab2196e0169755e3739.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      76875fef
    • Mohamed Aziz Mejri's avatar
      disabling enter keyboard when approve/reject pending (#1776) · 39876f11
      Mohamed Aziz Mejri 提交于
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Disable Enter-to-send when approve/reject is pending to prevent
      accidental message submission. Enter now respects the disableSendButton
      state; Shift+Enter still adds a newline.
      
      - **Bug Fixes**
        - Pass disableSendButton from ChatInput to LexicalChatInput.
      - Update EnterKeyPlugin to ignore Enter when disableSendButton is true,
      while keeping Shift+Enter for newline.
      
      <sup>Written for commit 7b13908826e25ebf0f2699137c648e20de520f61.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      39876f11
  7. 19 11月, 2025 5 次提交
    • Daniel Klein's avatar
      fix: hide setup banner if any custom providers are configured (#1756) · ed2bf680
      Daniel Klein 提交于
      Fixes #1108
      
      ## Summary
      The "Setup AI Access" banner was not being hidden when custom providers
      were configured. This was because the `isAnyProviderSetup()` function
      only checked hardcoded cloud providers and didn't account for custom
      providers.
      
      ## Changes
      Updated `useLanguageModelProviders.ts` to check for configured custom
      providers in addition to the hardcoded cloud providers.
      
      ## Test plan
      - Configure a custom provider without setting up any cloud providers
      - Verify that the "Setup AI Access" banner is now hidden
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code)
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Hide the "Setup AI Access" banner when any provider is configured,
      including custom providers. Fixes a logic gap where only hardcoded cloud
      providers were checked.
      
      - **Bug Fixes**
      - Extend isAnyProviderSetup to check custom providers from query data
      (by id).
      - Banner no longer shows when a custom provider is configured without
      cloud providers.
      
      <sup>Written for commit 2ecef7aac52da0b4d43c69fc5d3afb7bafa5706a.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      ed2bf680
    • Mohamed Aziz Mejri's avatar
      feat : allow taking a screenshot for bug reports (#1678) · 8dee2552
      Mohamed Aziz Mejri 提交于
      This PR implements allowing users to take a screenshot for bug reports
      and addresses issue #1125
      
      
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Adds screenshot capture to bug reports. Users can take a screenshot
      that’s copied to the clipboard, then continue to file the issue.
      
      - **New Features**
        - New BugScreenshotDialog to take a screenshot or report without one.
      - ScreenshotSuccessDialog confirms capture and guides users to the
      GitHub issue.
      - HelpDialog now opens the screenshot flow; issue template includes an
      optional Screenshot section.
      - Electron IPC handler take-screenshot captures the focused window and
      writes the image to the clipboard; exposed via IpcClient and whitelisted
      in preload.
      
      <sup>Written for commit de0f9b059ae508b56c3c46664559eead3dffa413.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      8dee2552
    • Will Chen's avatar
      v0.28 stable (#1820) · d4365960
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
      generating a summary for commit
      60b4181ce70a4859d169ede5ea33069365058839. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      d4365960
    • Will Chen's avatar
      Gemini 3 (#1819) · 23ef2ed2
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Adds `gemini-3-pro-preview` to Google model options with 1,048,576
      context window and 65,535 max output tokens.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      6aefc4449908e862476f61c0bcb2a625111256a3. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Added Gemini 3 Pro (Preview) to the Google model list so users can
      select it in the app. Sets a 1,048,576-token context window and a safe
      max output of 65,535 tokens, with temperature 1.0.
      
      <sup>Written for commit 6aefc4449908e862476f61c0bcb2a625111256a3.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      23ef2ed2
    • Adeniji Adekunle James's avatar
      Support GPT-5.1: smarter, faster, and more conversational for complex tasks (#1783) · a29ffeee
      Adeniji Adekunle James 提交于
      Added to OpenAI and Azure
      
      GPT-5.1: adaptive reasoning 
      GPT-5.1-codex: advanced coding workflows
      GPT-5.1-codex-mini: compact and efficient
      
      
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Added support for OpenAI and Azure GPT-5.1, including GPT-5.1 Codex and
      Codex Mini, for smarter conversations and better coding tasks. All
      models use a 400k context window, require temperature 1, and leave max
      output tokens unspecified to align with API behavior.
      
      <sup>Written for commit 9788541c88732aa7d522fc70bfb20f22c3544982.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      
      
      
      
      
      
      
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Adds GPT-5.1, GPT-5.1 Codex, and Codex Mini to OpenAI and Azure model
      catalogs with 400k context and temperature 1 (max output tokens
      unspecified).
      > 
      > - **Model registry updates
      (`src/ipc/shared/language_model_constants.ts`)**:
      >   - **OpenAI**:
      > - Add `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.1-codex-mini` (400k
      `contextWindow`, `temperature: 1`, `maxOutputTokens: undefined`).
      > - Keep existing `gpt-5`, `gpt-5-codex`, `gpt-5-mini`, `gpt-5-nano`,
      `o4-mini`.
      >   - **Azure**:
      > - Add `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.1-codex-mini` with matching
      settings (400k `contextWindow`, `temperature: 1`).
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      9788541c88732aa7d522fc70bfb20f22c3544982. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      ---------
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      a29ffeee
  8. 15 11月, 2025 2 次提交
    • Will Chen's avatar
      bump to 0.28.0-beta.1 (#1795) · 52db5b97
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Bumps `package.json` version from `0.27.1` to `0.28.0-beta.1`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      767e200f378205413e8a23fff7674149239a92d5. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      52db5b97
    • Will Chen's avatar
      Re-deploy all supabase edge function when revert version (#1787) · 8ce87dd6
      Will Chen 提交于
      #1784 
      
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > After reverting to a previous version, automatically deploy all
      Supabase edge functions; failures are logged as warnings without
      blocking the revert.
      > 
      > - **Version Revert Flow (`src/ipc/handlers/version_handlers.ts`)**:
      > - After revert, re-deploy all Supabase edge functions when
      `app.supabaseProjectId` is present via `deployAllSupabaseFunctions`.
      > - Aggregate deployment errors into `warningMessage` (non-blocking);
      logs successes/failures.
      >   - Initialize `warningMessage` to an empty string.
      > - **Supabase Utilities (`src/supabase_admin/supabase_utils.ts`)**:
      > - Add `deployAllSupabaseFunctions`: scans `supabase/functions/*`,
      ensures `index.ts`, reads content, calls `deploySupabaseFunctions`,
      logs, collects errors; skips if directory missing.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      c29333c0f951b60b4e80da0b46cf0287d03bdae1. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Automatically re-deploys Supabase edge functions after restoring a
      previous app version to keep functions in sync with reverted code.
      Deployment failures surface as warnings and do not block the revert.
      
      - **New Features**
      - Re-deploy all Supabase edge functions on version revert when an app
      has a Supabase project ID.
      - Added deployAllSupabaseFunctions: scans supabase/functions, deploys
      each index.ts sequentially, skips missing files, collects errors, and
      logs warnings.
      
      <sup>Written for commit c29333c0f951b60b4e80da0b46cf0287d03bdae1.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      8ce87dd6
  9. 14 11月, 2025 2 次提交
    • Mohamed Aziz Mejri's avatar
      feat: multi-component-selector (#1728) · 2a7f5a89
      Mohamed Aziz Mejri 提交于
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Adds multi-component selection in the preview and sends all selected
      components to chat for targeted edits. Updates overlays, UI, and IPC to
      support arrays, smarter context focusing, and cross-platform path
      normalization.
      
      - **New Features**
      - Select multiple components in the iframe; selection mode stays active
      until you deactivate it.
      - Show a scrollable list of selections with remove buttons and a Clear
      all; remove from the list or click an overlay in the preview to
      deselect. Sending clears all overlays.
      - Separate hover vs selected overlays with labels on hover; overlays
      persist after deactivation and re-position on layout changes/resizes.
      - Chat input and streaming now send selectedComponents; server builds
      per-component snippets and focuses their files in smart context.
      
      - **Migration**
      - Replace selectedComponentPreviewAtom with
      selectedComponentsPreviewAtom (ComponentSelection[]).
      - ChatStreamParams now uses selectedComponents; migrate any
      single-selection usages.
        - previewIframeRefAtom added for clearing overlays from the parent.
      
      <sup>Written for commit da0d64cc9e9f83fbf4b975278f6c869f0d3a8c7d.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      2a7f5a89
    • Will Chen's avatar
      Release 0.27.x (#1768) · c4591996
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Bumps app to version 0.27.1 and updates
      `@dyad-sh/supabase-management-js` to 1.0.1.
      > 
      > - **Release**:
      >   - Set application version to `0.27.1` in `package.json`.
      > - **Dependencies**:
      > - Update `@dyad-sh/supabase-management-js` from `v1.0.0` to `v1.0.1`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      a6d43949556f1b3da905b02e5c84a05bd30539b4. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Release 0.27.1: update app version and lockfile. Also bump the Supabase
      management client to v1.0.1.
      
      - **Dependencies**
        - @dyad-sh/supabase-management-js: v1.0.0 → v1.0.1
      
      <sup>Written for commit a6d43949556f1b3da905b02e5c84a05bd30539b4.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      c4591996
  10. 11 11月, 2025 2 次提交
    • SlayTheDragons's avatar
      feat (frontend): Text size accessibility settings (As requested in issue #1482) (#1624) · cbf247a4
      SlayTheDragons 提交于
      <img width="496" height="470" alt="Screenshot 2025-10-24 200100"
      src="https://github.com/user-attachments/assets/e64ee081-dc08-4b54-94a6-9ed41453cfcf"
      />
      
      This PR adds settings for text size, small, medium (default), large and
      extra large.
      
      This should help more people use Dyad more productively.
      
      Closes #1482 
          
      
      
      
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Adds adjustable workspace zoom levels (90%, 100%, 110%, 125%, 150%) to
      improve readability and accessibility. Changes apply instantly and
      persist per user, addressing issue #1482.
      
      - **New Features**
        - Zoom selector in Settings → General.
        - Persists zoomLevel in user settings and schema.
        - Applies zoom via Electron webFrame for consistent app scaling.
      
      - **Refactors**
        - Removed deprecated workspaceTextSize setting.
        - Removed root font-size from globals.css.
      
      <sup>Written for commit 54bad25f016a83e9f414025a07e80fdbad859366.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      
      
      
      
      
      
      
      
      <!-- CURSOR_SUMMARY -->
      ---
      
      > [!NOTE]
      > Adds adjustable app zoom levels (90–150%) with a Settings selector,
      persisted in user settings, and applied via Electron webFrame.
      > 
      > - **UI/Settings**:
      > - Add `ZoomSelector` component and surface it in `Settings → General`
      (`src/components/ZoomSelector.tsx`, `src/pages/settings.tsx`).
      > - **Schema/Persistence**:
      > - Introduce `ZoomLevelSchema` and optional `zoomLevel` in
      `UserSettingsSchema` (`src/lib/schemas.ts`).
      > - **Electron Integration**:
      > - Expose `webFrame.setZoomFactor/getZoomFactor` in `window.electron`
      (`src/preload.ts`).
      > - **App Behavior**:
      > - Apply zoom factor on load and when settings change with default
      `100%` (`src/app/layout.tsx`).
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      54bad25f016a83e9f414025a07e80fdbad859366. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      ---------
      Co-authored-by: 's avatarDevforschool <138079274+Devforschool@users.noreply.github.com>
      Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
      cbf247a4
    • Peter Dave Hello's avatar
      Update links in README.md to use HTTPS for better security (#1730) · 1fa12494
      Peter Dave Hello 提交于
      Pull request summary from GitHub Copilot:
      
      > This pull request updates the `README.md` file to use secure HTTPS
      links instead of HTTP for the Dyad website. This improves security and
      ensures users are directed to the correct, secure version of the site.
      > 
      > - Documentation improvements:
      > * Changed all `http://dyad.sh/` links to `https://dyad.sh/` in the
      `README.md` file.
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Updated README links from http to https for dyad.sh to ensure secure,
      correct navigation.
      This avoids insecure redirects and aligns with best practices.
      
      <sup>Written for commit fbfd253f49495e6e9c1f72cca28213eb65303b5b.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      1fa12494
  11. 07 11月, 2025 3 次提交
    • Hoang Long's avatar
      fix: change time now to correct created and updated time (#1703) · 03b24288
      Hoang Long 提交于
      <!-- This is an auto-generated description by cubic. -->
      ## Summary by cubic
      Fix incorrect "Created" and "Last Updated" timestamps in App Details.
      The page now uses selectedApp.createdAt and selectedApp.updatedAt
      instead of the current time.
      
      <sup>Written for commit 4b2459b23b4c3e6592c45076276d50070d8df749.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      Co-authored-by: 's avatarhlong24082k <hlong24082k@gmail.com>
      03b24288
    • Will Chen's avatar
      Bump to 0.27 Beta 2 (#1712) · 4cef36a8
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
      generating a summary for commit
      25259c081a10b92eb4e9da76f868eaf18cab1766. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      4cef36a8
    • Will Chen's avatar
      Smart Context: deep (#1527) · 06ad1a75
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Introduce a new "deep" Smart Context mode that supplies versioned
      files (by commit) to the engine, adds code search rendering, stores
      source commit hashes, improves search-replace recovery, and updates
      UI/tests.
      > 
      > - **Smart Context (deep)**:
      > - Replace `conservative` with `deep`; limit context to ~200 turns;
      send `sourceCommitHash` per message.
      > - Build and pass `versioned_files` (hash-id map + per-message file
      refs) and `app_id` to engine.
      > - **DB**:
      >   - Add `messages.source_commit_hash` (+ migration/snapshot).
      > - **Engine/Processing**:
      > - Retry Turbo Edits v2: first re-read then fallback to `dyad-write` if
      search-replace fails.
      > - Include provider options and versioned files in requests; add
      `getCurrentCommitHash`/`getFileAtCommit`.
      > - **UI**:
      >   - Pro mode selector: new `deep` option; tooltips polish.
      > - Add `DyadCodeSearch` and `DyadCodeSearchResult` components; parser
      supports new tags.
      > - **Tests/E2E**:
      > - New `smart_context_deep` e2e; update snapshots to include `app_id`
      and deep mode; adjust Playwright timeout.
      >   - Unit tests for versioned codebase context.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      e3d3bffabb2bc6caf52103461f9d6f2d5ad39df8. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      06ad1a75
  12. 05 11月, 2025 1 次提交
    • Will Chen's avatar
      Fuzzy turbo edits (#1700) · ae1ec684
      Will Chen 提交于
      <!-- CURSOR_SUMMARY -->
      > [!NOTE]
      > Makes search-replace tolerant to typos/whitespace via two-pass fuzzy
      matching with Levenshtein and smart-quote normalization, with clearer
      errors and tests.
      > 
      > - **Search/Replace Processor
      (`src/pro/main/ipc/processors/search_replace_processor.ts`)**
      > - Add two-pass fuzzy matching: quick exact-line prefilter +
      Levenshtein scoring (`fastest-levenshtein`).
      > - Match flow: exact > whitespace-insensitive > fuzzy; detect ambiguity
      and improve error messages with similarity %.
      > - Introduce thresholds and limits: `FUZZY_MATCH_THRESHOLD=0.9`,
      `EARLY_STOP_THRESHOLD=0.95`, `MAX_FUZZY_SEARCH_TIME_MS=10000`.
      > - Normalize text before scoring using `normalizeString` (handles
      quotes, dashes, ellipsis, NBSP, soft hyphen, BOM).
      > - Preserve indentation for replacements; keep existing
      unescape/validation logic.
      > - **Utils (`src/utils/text_normalization.ts`)**
      > - New `normalizeString` helper for Unicode normalization used by fuzzy
      matching.
      > - **Tests
      (`src/pro/main/ipc/processors/search_replace_processor.test.ts`)**
      > - Add cases for typos, smart quotes, below-threshold failure,
      exact-over-fuzzy preference, whitespace differences, and ambiguity.
      > - **Dependencies**
      >   - Add `fastest-levenshtein` to `package.json`.
      > 
      > <sup>Written by [Cursor
      Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
      289dab915c37bc4f9ab4bf0209ff3f95a57341fc. This will update automatically
      on new commits. Configure
      [here](https://cursor.com/dashboard?tab=bugbot).</sup>
      <!-- /CURSOR_SUMMARY -->
      
      
      
      <!-- This is an auto-generated description by cubic. -->
      ---
      ## Summary by cubic
      Makes applySearchReplace more tolerant by preferring exact and
      whitespace-insensitive matches, then falling back to fast two-pass
      Levenshtein-based fuzzy matching with Unicode normalization. Improves
      failure messages and adds tests to cover common edit scenarios.
      
      - **New Features**
      - Exact > whitespace-insensitive > fuzzy matching flow (threshold 0.9).
      - Two-pass fuzzy search with exact-line prefilter; early stop at 0.95
      and 10s timeout.
      - normalizeString handles smart quotes, dashes, ellipsis, NBSPs, soft
      hyphen, and BOM.
        - Errors now report best fuzzy similarity when below threshold.
      - Tests for typos, smart quotes, below-threshold cases,
      exact-over-fuzzy, whitespace differences, and ambiguity.
      
      - **Dependencies**
        - Add fastest-levenshtein.
      
      <sup>Written for commit 289dab915c37bc4f9ab4bf0209ff3f95a57341fc.
      Summary will update automatically on new commits.</sup>
      
      <!-- End of auto-generated description by cubic. -->
      ae1ec684