fix(console): force render Collapse panels to prevent memory config loss#5144
Merged
lalaliat merged 3 commits intoJun 12, 2026
Conversation
added 3 commits
June 12, 2026 09:59
- Fix ShellCard missing isStreaming prop pass-through to ToolCardShell, causing no spinner when tool has no output yet - Refactor v1Adapter status logic: only consult message-level status when resultItem (content[1]) exists; force 'calling' otherwise - Extract deriveToolStatus helper with ERROR_STATUSES constant - Add GenericToolCard as fallback for unregistered tool names - Add withGenericFallback Proxy wrapper for customToolRenderConfig - Fix SetTimezoneCard inlineResult showing raw MCP JSON instead of extracted text, use stringifyResult for proper parsing - Fix ToolCardShell inlineResult missing title attr for hover tooltip - Add CSS ellipsis truncation for inlineResult, flex-adaptive width - Add tool.execute / tool.executeDefault i18n keys
When saving long-term memory settings without expanding the 'Auto Memory Search' and 'Embedding Model Config' collapse panels, their nested config values were lost. This happened because Ant Design's Collapse does not render collapsed children by default, so Form.validateFields() could not collect their values. The shallow spread in handleSave then overwrote the complete original config with an incomplete form object. Fix: 1. Add forceRender:true to both Collapse panel items so Form.Item components render even when collapsed. 2. Replace shallow spread with recursive deep-merge in handleSave as a safety net for all nested config sections. Closes agentscope-ai#5137
|
Hi @zhaozhuang521, this is your 148th Pull Request. 📋 About PR TemplateTo help maintainers review your PR faster, please make sure to include:
Complete PR information helps speed up the review process. You can edit the PR description to add these details. 🙌 Join Developer CommunityThanks so much for your contribution! We'd love to invite you to join the official QwenPaw developer group! You can find the Discord and DingTalk group links under the "Developer Community" section on our docs page: We truly appreciate your enthusiasm—and look forward to your future contributions! 😊 We'll review your PR soon. |
This was referenced Jun 12, 2026
This was referenced Jun 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

##Solution
ReMeLightMemoryCard.tsx: AddsforceRender: trueto the twoCollapsepanel items to ensure thatForm.Itemis rendered even when not expanded, allowingvalidateFields()to retrieve the complete form values.useAgentConfig.tsx: Replaces the shallow expand merge inhandleSavewith a recursive deep merge (deepMergeConfig), merging nested configuration objects such asreme_light_memory_config,light_context_config,adbpg_memory_config, andauto_title_configlayer by layer as a fallback to prevent nested fields from being overwritten by shallow copies in any situation.Fixes #5137
Type of Change
Component(s) Affected
Checklist
pre-commit run --all-fileslocally and it passespytestor as relevant) and they passFor Channel Changes (DingTalk, Feishu, QQ, Console, etc.)
./scripts/check-channels.sh(or./scripts/check-channels.sh --changed) and it passestests/contract/channels/test_<channel>_contract.py(REQUIRED)create_instance()with proper channel initializationtests/contract/channels/__init__.py)tests/unit/channels/test_<channel>.pyfor complex internal logicTesting
[How to test these changes]
Local Verification Evidence
Additional Notes
[Optional: any other context]