• Will Chen's avatar
    Add default chat mode setting (#2244) · 207c9195
    Will Chen 提交于
    - Add `defaultChatMode` field to UserSettings schema
    - Create `getEffectiveDefaultChatMode()` helper that returns the
    appropriate default based on settings and pro status:
      - If defaultChatMode is explicitly set, use it
      - If not set but user has Dyad Pro enabled, default to "local-agent"
      - Otherwise default to "build"
    - Create DefaultChatModeSelector component in Workflow Settings
    - When user upgrades to Dyad Pro, automatically set default to
    "local-agent"
    - Apply default chat mode when navigating to home page
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Adds a default chat mode setting with sane defaults and a selector in
    Workflow Settings. It applies the effective default on the home page and
    for new chats, and sets it to Agent when a user upgrades to Dyad Pro.
    
    - **New Features**
      - Added defaultChatMode to UserSettings.
    - Added getEffectiveDefaultChatMode with rules: explicit > Dyad Pro →
    local-agent > build.
    - Added DefaultChatModeSelector in Workflow Settings (shows Agent option
    when Dyad Pro is enabled).
    - Home page and new chats sync selectedChatMode to the effective
    default.
    - On first Dyad Pro setup, default mode is set to local-agent
    automatically.
    
    <sup>Written for commit c265968422be75cc8b44760a684204fec198ccd0.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > Adds a user-configurable default chat mode and ensures it’s applied
    consistently across the app.
    > 
    > - **Core/Schema**: Add `defaultChatMode` to `UserSettings` and
    `getEffectiveDefaultChatMode()` helper (falls back to `local-agent` for
    Pro, otherwise `build`)
    > - **Settings UI**: New `DefaultChatModeSelector` in Workflow Settings;
    shows `Agent` option only when Pro is enabled
    > - **Behavior changes**: Apply effective default on home (`home.tsx`)
    and set `selectedChatMode` for new chats (`ChatList.tsx`)
    > - **Provider setup**: On first Dyad Pro key save, set
    `defaultChatMode` to `local-agent` (`ProviderSettingsPage.tsx`)
    > - **E2E/tests**: New and updated tests for defaults and mentions;
    stabilize dumps by normalizing `item_reference` IDs; updated chat mode
    option mapping
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    00d92922ec6cab870c9ff50fdd3912a58d97f0f1. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    Co-authored-by: 's avatarClaude <noreply@anthropic.com>
    207c9195
名称
最后提交
最后更新
..
chat 正在载入提交数据...
home 正在载入提交数据...
preview_panel 正在载入提交数据...
settings 正在载入提交数据...
ui 正在载入提交数据...
AppList.tsx 正在载入提交数据...
AppSearchDialog.tsx 正在载入提交数据...
AppUpgrades.tsx 正在载入提交数据...
AutoApproveSwitch.tsx 正在载入提交数据...
AutoFixProblemsSwitch.tsx 正在载入提交数据...
AutoUpdateSwitch.tsx 正在载入提交数据...
BugScreenshotDialog.tsx 正在载入提交数据...
CapacitorControls.tsx 正在载入提交数据...
ChatInputControls.tsx 正在载入提交数据...
ChatList.tsx 正在载入提交数据...
ChatModeSelector.tsx 正在载入提交数据...
ChatPanel.tsx 正在载入提交数据...
ChatSearchDialog.tsx 正在载入提交数据...
CommunityCodeConsentDialog.tsx 正在载入提交数据...
ConfirmationDialog.tsx 正在载入提交数据...
ContextFilesPicker.tsx 正在载入提交数据...
CopyErrorMessage.tsx 正在载入提交数据...
CreateAppDialog.tsx 正在载入提交数据...
CreateCustomModelDialog.tsx 正在载入提交数据...
CreateCustomProviderDialog.tsx 正在载入提交数据...
CreatePromptDialog.tsx 正在载入提交数据...
CustomErrorToast.tsx 正在载入提交数据...
DefaultChatModeSelector.tsx 正在载入提交数据...
DeleteConfirmationDialog.tsx 正在载入提交数据...
DyadProSuccessDialog.tsx 正在载入提交数据...
EditCustomModelDialog.tsx 正在载入提交数据...
ErrorBoundary.tsx 正在载入提交数据...
ForceCloseDialog.tsx 正在载入提交数据...
GitHubConnector.tsx 正在载入提交数据...
GitHubIntegration.tsx 正在载入提交数据...
GithubBranchManager.tsx 正在载入提交数据...
GithubCollaboratorManager.tsx 正在载入提交数据...
HelpBotDialog.tsx 正在载入提交数据...
HelpDialog.tsx 正在载入提交数据...
ImportAppButton.tsx 正在载入提交数据...
ImportAppDialog.tsx 正在载入提交数据...
InputRequestToast.tsx 正在载入提交数据...
LoadingBlock.tsx 正在载入提交数据...
LocalAgentNewChatToast.tsx 正在载入提交数据...
MaxChatTurnsSelector.tsx 正在载入提交数据...
McpConsentToast.tsx 正在载入提交数据...
McpToolsPicker.tsx 正在载入提交数据...
ModelPicker.tsx 正在载入提交数据...
NeonConnector.tsx 正在载入提交数据...
NeonDisconnectButton.tsx 正在载入提交数据...
NeonIntegration.tsx 正在载入提交数据...
NodePathSelector.tsx 正在载入提交数据...
PortalMigrate.tsx 正在载入提交数据...
PriceBadge.tsx 正在载入提交数据...
ProBanner.tsx 正在载入提交数据...
ProModeSelector.tsx 正在载入提交数据...
ProviderSettings.tsx 正在载入提交数据...
ReleaseChannelSelector.tsx 正在载入提交数据...
RuntimeModeSelector.tsx 正在载入提交数据...
ScreenshotSuccessDialog.tsx 正在载入提交数据...
SettingsList.tsx 正在载入提交数据...
SetupBanner.tsx 正在载入提交数据...
SetupProviderCard.tsx 正在载入提交数据...
SupabaseConnector.tsx 正在载入提交数据...
SupabaseIntegration.tsx 正在载入提交数据...
TelemetryBanner.tsx 正在载入提交数据...
TelemetrySwitch.tsx 正在载入提交数据...
TemplateCard.tsx 正在载入提交数据...
ThinkingBudgetSelector.tsx 正在载入提交数据...
VercelConnector.tsx 正在载入提交数据...
VercelIntegration.tsx 正在载入提交数据...
ZoomSelector.tsx 正在载入提交数据...
app-sidebar.tsx 正在载入提交数据...
appItem.tsx 正在载入提交数据...