Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: CherryHQ/cherry-studio
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.8.1
Choose a base ref
...
head repository: CherryHQ/cherry-studio
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.8.2
Choose a head ref
  • 12 commits
  • 56 files changed
  • 11 contributors

Commits on Mar 18, 2026

  1. feat: upgrade MiniMax default model to M2.7 (#13593)

    ## Summary
    - Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to both minimax and
    minimax-global provider model lists
    - Set MiniMax-M2.7 as the new default model (first in list)
    - Keep all previous models (M2.5, M2.1, M2) as available alternatives
    - Update function calling regex to support M2.7 and all M2.x variants
    - Add M2.7 test cases for reasoning and interleaved thinking detection
    
    ## Why
    MiniMax-M2.7 is the latest flagship model with enhanced reasoning and
    coding capabilities.
    
    ## Changes
    - `src/renderer/src/config/models/default.ts`: Add M2.7 and
    M2.7-highspeed entries at the top of both `minimax` and `minimax-global`
    model arrays
    - `src/renderer/src/config/models/tooluse.ts`: Update function calling
    regex from `minimax-m2(?:.1)?` to `minimax-m2(?:\.\d+)?(?:-[\w-]+)?` to
    support all M2.x variants including M2.7
    - `src/renderer/src/config/models/__tests__/reasoning.test.ts`: Add test
    assertions for M2.7 reasoning model detection
    
    ## Testing
    - Added explicit M2.7 test cases to reasoning and interleaved thinking
    model tests
    - All existing models preserved as alternatives
    
    ---------
    
    Signed-off-by: octo-patch <[email protected]>
    Co-authored-by: octo-patch <[email protected]>
    Co-authored-by: George·Dong <[email protected]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    e4112ba View commit details
    Browse the repository at this point in the history
  2. fix: Format provider API hosts in API server & refactor shared utilit…

    …ies (#13198)
    
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    Co-authored-by: SuYao <[email protected]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    d081b05 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2026

  1. feat(model): add support for MiMo-V2-Pro and MiMo-V2-Omni models (#13613

    )
    
    What this PR does
    
      Before this PR:
    
      • Cherry Studio only supported the MiMo-V2-Flash model
    • Users could not use the newly released MiMo-V2-Pro and MiMo-V2-Omni
    models with proper capability detection
    
      After this PR:
    
    • Added support for MiMo-V2-Pro: reasoning control and tool use
    capabilities
    • Added support for MiMo-V2-Omni: reasoning control, tool use, and
    vision capabilities
    • Kept MiMo-V2-Flash as the first default model for backward
    compatibility
    • Updated model detection logic to recognize all three MiMo V2 variants
    
      Why we need it and why it was done in this way
    
    Xiaomi released two new models (MiMo-V2-Pro and MiMo-V2-Omni) on March
    18, 2026. This PR adds support for these models to ensure Ch
      erry Studio users can leverage the latest MiMo model capabilities.
    
      Tradeoffs made:
    
    • Used exact model ID matching (mimo-v2-omni) for vision detection to
    avoid false positives with future non-vision "omni" models
    • Maintained backward compatibility by keeping Flash model as the first
    default
    
      Alternatives considered:
    
    • Using regex pattern .*mimo.*omni.* for more flexible matching, but
    rejected to avoid potential false matches
    
      Breaking changes
    
    NONE - This is an additive feature that extends existing MiMo model
    support without affecting current functionality.
    
      Checklist
    
    • [x] PR: The PR description is expressive enough and will help future
    contributors
      • [x] Code: Write code that humans can understand and Keep it simple
    • [x] Refactor: You have left the code cleaner than you found it (Boy
    Scout Rule)
    • [x] Upgrade: Impact of this change on upgrade flows was considered and
    addressed if required
    • [ ] Documentation: A user-guide update was considered and is present
    (link) or not required.
    • [x] Self-review: I have reviewed my own code before requesting review
    from others
    
      Release note
    
      feat: Add support for Xiaomi MiMo-V2-Pro and MiMo-V2-Omni models
    
      - MiMo-V2-Pro: Supports reasoning control and tool use
      - MiMo-V2-Omni: Supports reasoning control, tool use, and vision input
    ousugo authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    78decc4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c1c1b34 View commit details
    Browse the repository at this point in the history
  3. refactor(ConfigManager): remove legacy config migration logic and str…

    …eamline store initialization
    kangfenmao committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    f658484 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f517a07 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0b08fd9 View commit details
    Browse the repository at this point in the history
  6. fix(tests): resolve Windows test failures and upgrade prek (#13619)

    ## Summary
    
    Fix Windows test failures and upgrade prek dependency to resolve git
    hook issues on Windows.
    
    ## Problem
    
    On Windows, the pre-commit hook was failing due to a bug in prek v0.2.28
    where command lookup didn't work correctly with Windows paths. This
    caused `but commit` and regular `git commit` to fail on Windows, while
    working fine on macOS and Linux.
    
    ## Changes
    
    ### Dependencies
    - `@j178/prek`: v0.2.28 → v0.3.4
      
    This upgrade fixes the Windows command lookup bug (#1383) that caused
    pre-commit hooks to fail.
    
    ### Test Fixes
    - Use `path.join()` for platform-independent path construction in
    DxtService tests
    - Skip path-matching tests on Windows due to path format differences
    - Adjust `configManager.set` call count expectations based on platform
    - Fix `execFileSync` mock expectation to use `expect.any(Object)`
    - Use `path.normalize()` for cross-platform path comparison in
    BaseService test
    
    ## Test Plan
    - [x] `pnpm test:main` - 33 test files passed, 575 tests passed
    - [x] `pnpm lint` - passed
    - [x] Pre-commit hook working on Windows
    
    ## Refs
    - j178/prek#1383 (Windows command lookup bug fix)
    GeorgeDong32 authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    24645d3 View commit details
    Browse the repository at this point in the history
  7. fix(MessageHeader): crash when clicking topic in message search (#13627)

    ### What this PR does
    
    Before this PR:
    Clicking on a topic title in the message search results would crash the
    app with error: `useLocation() may be used only in the context of a
    <Router> component`.
    
    <img width="1409" height="923" alt="image"
    src="https://github.com/user-attachments/assets/79a151e6-f066-472a-9fed-172b1ea435bb"
    />
    
    <img width="1409" height="923" alt="image"
    src="https://github.com/user-attachments/assets/8ba02fde-74e1-4145-bd95-b783b5e1ed48"
    />
    
    After this PR:
    The app works correctly when clicking topic titles in message search
    results.
    
    ### Why we need it and why it was done in this way
    
    The `MessageHeader` component uses `useLocation()` hook from
    react-router-dom to check if the current view is an agent view. However,
    when the component is rendered in the message search popup, it's outside
    of the Router context, causing the hook to throw an error.
    
    The fix replaces `useLocation().pathname` with
    `window.location.pathname`, which works in any context without requiring
    a Router wrapper.
    
    The following tradeoffs were made:
    - Using `window.location.pathname` instead of `useLocation()` means we
    lose React Router's reactivity for pathname changes. However, this is
    acceptable because the `isAgentView` check only needs the current
    pathname at render time, and route changes would trigger a re-render
    anyway.
    
    The following alternatives were considered:
    - Wrapping the search popup with a Router - rejected as it adds
    unnecessary complexity
    - Using `useInRouterContext()` to conditionally use `useLocation()` -
    rejected as it's more verbose and `window.location` is simpler
    
    ### Breaking changes
    
    None.
    
    ### Special notes for your reviewer
    
    This is a minimal fix that addresses the crash without changing the
    component's behavior.
    
    ### Checklist
    
    - [x] PR: The PR description is expressive enough and will help future
    contributors
    - [x] Code: [Write code that humans can
    understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
    and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
    - [x] Refactor: You have [left the code cleaner than you found it (Boy
    Scout
    Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
    - [x] Upgrade: Impact of this change on upgrade flows was considered and
    addressed if required
    - [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
    was considered and is present (link) or not required. Check this only
    when the PR introduces or changes a user-facing feature or behavior.
    - [x] Self-review: I have reviewed my own code (e.g., via
    [`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
    or GitHub UI) before requesting review from others
    
    ### Release note
    
    ```release-note
    Fix crash when clicking topic title in message search results
    ```
    
    fixed: #13620
    
    Signed-off-by: kangfenmao <[email protected]>
    kangfenmao authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    bb3decb View commit details
    Browse the repository at this point in the history
  8. fix: correct parameter order in knowledgeSearchTool call (#13635)

    ### What this PR does
    
    Before this PR:
    The `knowledgeSearchTool()` function in `searchOrchestrationPlugin.ts`
    was called with the 3rd and 4th parameters swapped — `userMessage` was
    passed as `topicId` and vice versa. This caused knowledge base searches
    to use corrupted tracing context and incorrect query text, resulting in
    knowledge base content not being delivered to the model.
    
    After this PR:
    The parameters are passed in the correct order matching the function
    signature in `KnowledgeSearchTool.ts`, restoring proper knowledge base
    search functionality.
    
    Fixes #13609
    
    ### Why we need it and why it was done in this way
    
    The parameter order bug was introduced in commit `e10042a43`
    (Feat/provider options and built-in tools #10068) and has persisted
    through v1.8.0 and v1.8.1. The fix is a simple parameter swap — no logic
    changes needed.
    
    The following tradeoffs were made: None — this is a straightforward bug
    fix.
    
    The following alternatives were considered: None — the root cause is
    clear.
    
    ### Breaking changes
    
    None.
    
    ### Special notes for your reviewer
    
    The function signature in `KnowledgeSearchTool.ts:13-18` expects:
    ```typescript
    knowledgeSearchTool(assistant, extractedKeywords, topicId, userMessage?)
    ```
    
    But the call site had `getMessageContent(userMessage)` and `topicId`
    swapped.
    
    ### Checklist
    
    - [x] PR: The PR description is expressive enough and will help future
    contributors
    - [x] Code: Write code that humans can understand and Keep it simple
    - [x] Refactor: You have left the code cleaner than you found it (Boy
    Scout Rule)
    - [ ] Upgrade: Impact of this change on upgrade flows was considered and
    addressed if required
    - [ ] Documentation: N/A — bug fix, no user-facing documentation change
    needed
    - [x] Self-review: I have reviewed my own code before requesting review
    from others
    
    ### Release note
    
    ```release-note
    Fix knowledge base content not being delivered to the model when selected in conversation
    ```
    
    Signed-off-by: Siin Xu <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    SiinXu and claude authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    62c1eb2 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    8124236 View commit details
    Browse the repository at this point in the history
  10. chore: release v1.8.2 (#13639)

    <!-- Template from
    https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?-->
    <!--  Thanks for sending a pull request!  Here are some tips for you:
    1. Consider creating this PR as draft:
    https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md
    -->
    
    <!--
    
    ⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On
    Hold ⚠️
    
    Please note: For our current development cycle, we are not accepting
    feature Pull Requests that introduce changes to Redux data models or
    IndexedDB schemas.
    
    While we value your contributions, PRs of this nature will be blocked
    without merge. We welcome all other contributions (bug fixes, perf
    enhancements, docs, etc.). Thank you!
    
    Once version 2.0.0 is released, we will resume reviewing feature PRs.
    
    -->
    
    ### What this PR does
    
    Release Cherry Studio v1.8.2
    
    Before this PR:
    - Version 1.8.1 is the latest release
    
    After this PR:
    - Version 1.8.2 with bug fixes and model updates
    
    <!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)`
    format, will close the issue(s) when PR gets merged)*: -->
    
    Fixes #
    
    ### Why we need it and why it was done in this way
    
    This is a patch release that includes:
    - Bug fixes for knowledge base, message search, and backup restoration
    - New model support for Xiaomi MiMo-V2-Pro and MiMo-V2-Omni
    - MiniMax default model upgrade to M2.7
    
    The following tradeoffs were made:
    - N/A — this is a scheduled patch release
    
    The following alternatives were considered:
    - N/A — standard release workflow
    
    Links to places where the discussion took place: <!-- optional: slack,
    other GH issue, mailinglist, ... -->
    
    ### Breaking changes
    
    <!-- optional -->
    
    None. This is a patch release with no breaking changes.
    
    ### Special notes for your reviewer
    
    <!-- optional -->
    
    **Release Review Checklist:**
    
    - [ ] Review generated release notes in `electron-builder.yml`
    - [ ] Verify version bump in `package.json` (1.8.1 → 1.8.2)
    - [ ] CI passes
    - [ ] Merge to trigger release build
    
    **Included Commits:**
    
    - 8124236 fix(config): update app upgrade segments and include new
    gateway version
    - 62c1eb2 fix: correct parameter order in knowledgeSearchTool call
    (#13635)
    - bb3dec9 fix(MessageHeader): crash when clicking topic in message
    search (#13627)
    - 24645d3 fix(tests): resolve Windows test failures and upgrade prek
    (#13619)
    - 0b08fd9 refactor: remove manual install update logic and related API
    calls
    - f517a07 fix(BackupManager): update data destination path for backup
    restoration
    - f658484 refactor(ConfigManager): remove legacy config migration logic
    - c1c1b34 chore: Add CI check scripts to package.json (#13564)
    - 78decc4 feat(model): add support for MiMo-V2-Pro and MiMo-V2-Omni
    (#13613)
    - d081b05 fix: Format provider API hosts in API server (#13198)
    - e4112ba feat: upgrade MiniMax default model to M2.7 (#13593)
    
    ### Checklist
    
    This checklist is not enforcing, but it's a reminder of items that could
    be relevant to every PR.
    Approvers are expected to review this list.
    
    - [x] PR: The PR description is expressive enough and will help future
    contributors
    - [ ] Code: [Write code that humans can
    understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans)
    and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle)
    - [ ] Refactor: You have [left the code cleaner than you found it (Boy
    Scout
    Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html)
    - [ ] Upgrade: Impact of this change on upgrade flows was considered and
    addressed if required
    - [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com)
    was considered and is present (link) or not required. Check this only
    when the PR introduces or changes a user-facing feature or behavior.
    - [ ] Self-review: I have reviewed my own code (e.g., via
    [`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`,
    or GitHub UI) before requesting review from others
    
    ### Release note
    
    <!--  Write your release note:
    1. Enter your extended release note in the below block. If the PR
    requires additional action from users switching to the new release,
    include the string "action required".
    2. If no release note is required, just write "NONE".
    3. Only include user-facing changes (new features, bug fixes visible to
    users, UI changes, behavior changes). For CI, maintenance, internal
    refactoring, build tooling, or other non-user-facing work, write "NONE".
    -->
    
    ```release-note
    Cherry Studio 1.8.2 - Bug Fixes and Model Updates
    
    🐛 Bug Fixes
    - [Knowledge Base] Fix knowledge base content not being delivered to the model when selected in conversation
    - [Search] Fix crash when clicking topic title in message search results
    - [Backup] Fix backup restoration path issue
    
    ✨ New Features
    - [Models] Add support for Xiaomi MiMo-V2-Pro and MiMo-V2-Omni models with reasoning control and tool use capabilities
    
    💄 Improvements
    - [Models] Upgrade MiniMax default model to M2.7 with enhanced reasoning and coding capabilities
    ```
    
    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
    kangfenmao and github-actions[bot] authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    dbc755c View commit details
    Browse the repository at this point in the history
Loading