• Will Chen's avatar
    Pro Trial models (#2387) · bb0f30b0
    Will Chen 提交于
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2387">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Restricts Dyad Pro trial users to the Auto model and adds an upgrade
    call-to-action. Non-trial users see the full set of cloud and local
    models as before.
    
    - **New Features**
    - Added useTrialModelRestriction hook to detect trial status and
    auto-switch to the Auto model.
    - Updated ModelPicker to show an upgrade banner and only the Auto model
    for trial users; hides cloud and local models.
      - Extended IPC user budget response and schema to include isTrial.
      - Updated TitleBar to show "Pro Trial" when applicable.
    
    <sup>Written for commit 714d2c704f155c004240e563e0e850ace0c9f5f8.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Medium Risk**
    > Introduces trial-based gating in the model picker and an effect that
    can automatically change a user’s selected model, which could impact UX
    if trial detection is wrong or delayed.
    > 
    > **Overview**
    > **Trial enforcement for model selection.** Adds
    `useTrialModelRestriction` to derive `isTrial` from `get-user-budget`
    and auto-switch trial users to the `auto` model.
    > 
    > **Model picker gating + upgrade CTA.** Updates `ModelPicker` to show
    an upgrade banner (opening the subscription URL via
    `ipc.system.openExternalUrl`) and to hide all cloud/local model choices
    for trial users, leaving only the `auto` option.
    > 
    > **IPC/schema update.** Extends user budget IPC types and
    `pro_handlers` API parsing to include an `isTrial` flag (defaulting to
    `false` when absent).
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    7928275e3b1a7d32ec792609968d9d5786ee8582. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    bb0f30b0
ModelPicker.tsx 28.7 KB