π fix(copilot): history popover not refreshing when agentId changes#11731
π fix(copilot): history popover not refreshing when agentId changes#11731
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Reviewer's guide (collapsed on small PRs)Reviewer's GuideUpdates CopilotToolbar to derive topics from an agent-specific selector instead of the global active agent, ensuring the history popover refreshes correctly when the toolbarβs agentId prop changes. Sequence diagram for CopilotToolbar topics refresh on agentId changesequenceDiagram
actor User
participant CopilotToolbar
participant ChatStore
participant TopicSelectors
participant HistoryPopover
User->>CopilotToolbar: Select new agentId
CopilotToolbar->>ChatStore: useChatStore(selector with getTopicsByAgentId(agentId))
ChatStore->>TopicSelectors: getTopicsByAgentId(agentId)
TopicSelectors-->>ChatStore: selectorFunction(state)
ChatStore->>TopicSelectors: selectorFunction(state)
TopicSelectors-->>CopilotToolbar: topics for agentId
CopilotToolbar->>HistoryPopover: render topics for agentId
HistoryPopover-->>User: Display updated history popover for selected agent
Updated class diagram for CopilotToolbar topic selectionclassDiagram
class CopilotToolbar {
+string agentId
+boolean isHovered
}
class ChatStore {
+string activeTopicId
+function switchTopic(topicId)
}
class TopicSelectors {
+function currentTopics(state)
+function getTopicsByAgentId(agentId)
}
class HistoryPopover {
+function showTopics(topics)
}
CopilotToolbar --> ChatStore : uses_useChatStore
CopilotToolbar --> TopicSelectors : uses_getTopicsByAgentId
CopilotToolbar --> HistoryPopover : renders
TopicSelectors --> ChatStore : reads_state_for_topics
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
TestGru AssignmentSummary
Tip You can |
When user switches agent in Copilot toolbar, also update useChatStore's activeAgentId to keep both stores in sync. This ensures topic selectors and other chatStore-dependent features work correctly.
ed0d32b to
248a4bd
Compare
β¦g agent - Show loading/disabled state while topics are being fetched - Only hide the button when confirmed there are no topics - Improves UX by avoiding sudden button disappearance during agent switch
Codecov Reportβ
All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## next #11731 +/- ##
========================================
Coverage 74.14% 74.14%
========================================
Files 1191 1191
Lines 94844 94844
Branches 12933 12500 -433
========================================
Hits 70324 70324
Misses 24430 24430
Partials 90 90
Flags with carried forward coverage won't be shown. Click here to find out more.
π New features to boost your workflow:
|
|
β€οΈ Great PR @Innei β€οΈ The growth of project is inseparable from user feedback and contribution, thanks for your contribution! If you are interesting with the lobehub developer community, please join our discord and then dm @arvinxx or @canisminor1990. They will invite you to our private developer channel. We are talking about the lobe-chat development or sharing ai newsletter around the world. |
## [Version 2.0.0-next.348](v2.0.0-next.347...v2.0.0-next.348) <sup>Released on **2026-01-23**</sup> #### π Bug Fixes - **copilot**: History popover not refreshing when agentId changes. - **misc**: Fixed the agent group builder tools excaution edge case crash, fixed the group topic copy not right. <br/> <details> <summary><kbd>Improvements and Fixes</kbd></summary> #### What's fixed * **copilot**: History popover not refreshing when agentId changes, closes [#11731](#11731) ([64f39e7](64f39e7)) * **misc**: Fixed the agent group builder tools excaution edge case crash, closes [#11735](#11735) ([5de4742](5de4742)) * **misc**: Fixed the group topic copy not right, closes [#11730](#11730) ([282c1fb](282c1fb)) </details> <div align="right"> [](#readme-top) </div>
|
π This PR is included in version 2.0.0-next.348 π The release is available on: Your semantic-release bot π¦π |
## [Version 1.154.0](v1.153.1...v1.154.0) <sup>Released on **2026-01-23**</sup> #### β» Code Refactoring - **misc**: Migrate AI Rules to Claude Code Skills. #### β¨ Features - **database**: Extended async task with metadata and parent id, added index. - **misc**: Remove NextAuth. #### π Bug Fixes - **copilot**: History popover not refreshing when agentId changes. - **editor**: Prevent crash when toggling enableInputMarkdown setting. - **home**: Use correct CreateGroupModal for session group creation. - **model-runtime**: Handle null content in anthropic message builder. - **ModelSelect**: Resolve tooltip hover causing popup to close. - **pdf**: Ensure worker config before Document render. - **store**: Delete message before regeneration. - **misc**: Fix auto scroll, fix favorite refresh bug and group topic refresh issue, fixed the agent group builder tools excaution edge case crash, page content switch mismatch, when use market group, the group sys role was not used. <br/> <details> <summary><kbd>Improvements and Fixes</kbd></summary> #### Code refactoring * **misc**: Migrate AI Rules to Claude Code Skills, closes [lobehub#11737](https://github.com/jaworldwideorg/OneJA-Bot/issues/11737) ([346fc46](346fc46)) #### What's improved * **database**: Extended async task with metadata and parent id, added index, closes [lobehub#11712](https://github.com/jaworldwideorg/OneJA-Bot/issues/11712) ([31d2f26](31d2f26)) * **misc**: Remove NextAuth, closes [lobehub#11732](https://github.com/jaworldwideorg/OneJA-Bot/issues/11732) ([1eff864](1eff864)) #### What's fixed * **copilot**: History popover not refreshing when agentId changes, closes [lobehub#11731](https://github.com/jaworldwideorg/OneJA-Bot/issues/11731) ([64f39e7](64f39e7)) * **editor**: Prevent crash when toggling enableInputMarkdown setting, closes [lobehub#11755](https://github.com/jaworldwideorg/OneJA-Bot/issues/11755) ([ea5eed8](ea5eed8)) * **home**: Use correct CreateGroupModal for session group creation, closes [lobehub#11752](https://github.com/jaworldwideorg/OneJA-Bot/issues/11752) ([36bcc50](36bcc50)) * **model-runtime**: Handle null content in anthropic message builder, closes [lobehub#11756](https://github.com/jaworldwideorg/OneJA-Bot/issues/11756) ([539753a](539753a)) * **ModelSelect**: Resolve tooltip hover causing popup to close, closes [lobehub#11742](https://github.com/jaworldwideorg/OneJA-Bot/issues/11742) ([1b73f14](1b73f14)) * **pdf**: Ensure worker config before Document render, closes [lobehub#11746](https://github.com/jaworldwideorg/OneJA-Bot/issues/11746) ([ad34072](ad34072)) * **store**: Delete message before regeneration, closes [lobehub#11760](https://github.com/jaworldwideorg/OneJA-Bot/issues/11760) ([a8a6300](a8a6300)) * **misc**: Fix auto scroll, closes [lobehub#11734](https://github.com/jaworldwideorg/OneJA-Bot/issues/11734) ([892fa9f](892fa9f)) * **misc**: Fix favorite refresh bug and group topic refresh issue, closes [lobehub#11745](https://github.com/jaworldwideorg/OneJA-Bot/issues/11745) ([5d115ef](5d115ef)) * **misc**: Fixed the agent group builder tools excaution edge case crash, closes [lobehub#11735](https://github.com/jaworldwideorg/OneJA-Bot/issues/11735) ([5de4742](5de4742)) * **misc**: Page content switch mismatch, closes [lobehub#11758](https://github.com/jaworldwideorg/OneJA-Bot/issues/11758) ([fdc8f95](fdc8f95)) * **misc**: When use market group, the group sys role was not used, closes [lobehub#11739](https://github.com/jaworldwideorg/OneJA-Bot/issues/11739) ([afc76f9](afc76f9)) </details> <div align="right"> [](#readme-top) </div>
π» Change Type
π Related Issue
Fixes LOBE-3910
π Description of Change
Bug Fix: History not refreshing when switching agent
The codebase has two separate stores that both maintain an
activeAgentId:useAgentStore.activeAgentId- updated when user switches agentuseChatStore.activeAgentId- used by topic selectorsWhen switching agents via
AgentSelector, onlyagentStore.activeAgentIdwas being updated, whilechatStore.activeAgentIdremained stale.Solution: Added
handleAgentChangecallback that syncs both stores when switching agents.UX Improvement: Loading state for history button
Previously, the history button would immediately disappear when switching agents (because topics data was undefined during loading), causing a jarring UI experience.
Solution:
topics === undefined)topics.length === 0)π§ͺ How to Test