Skip to content

fix(MessageHeader): crash when clicking topic in message search#13627

Merged
kangfenmao merged 1 commit intomainfrom
fix/message-header-router-context
Mar 19, 2026
Merged

fix(MessageHeader): crash when clicking topic in message search#13627
kangfenmao merged 1 commit intomainfrom
fix/message-header-router-context

Conversation

@kangfenmao
Copy link
Copy Markdown
Collaborator

@kangfenmao kangfenmao commented Mar 19, 2026

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.

image image

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

Release note

Fix crash when clicking topic title in message search results

fixed: #13620

Replace useLocation hook with window.location.pathname to fix crash
when clicking topic title in message search results. The search popup
renders MessageHeader outside of Router context, causing useLocation
to throw an error.

Signed-off-by: kangfenmao <[email protected]>
@kangfenmao kangfenmao requested a review from EurFelux March 19, 2026 08:14
@EurFelux
Copy link
Copy Markdown
Collaborator

EurFelux commented Mar 19, 2026

Note

This issue/comment/review was translated by Claude.

This search is currently ineffective for agent messages, so it can actually be removed.


Original Content

这个搜索目前对 agent messages 无效,其实可以去掉

@kangfenmao kangfenmao merged commit bb3decb into main Mar 19, 2026
9 checks passed
@kangfenmao kangfenmao deleted the fix/message-header-router-context branch March 19, 2026 08:59
@kangfenmao kangfenmao mentioned this pull request Mar 19, 2026
10 tasks
kangfenmao added a commit that referenced this pull request Mar 19, 2026
<!-- 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 added a commit that referenced this pull request Mar 21, 2026
<!-- 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: White screen when clicking to jump to conversation after global search

2 participants