@lobehub/lobehub 2.0.0-next.275 → 2.0.0-next.276

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.276](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.275...v2.0.0-next.276)
6
+
7
+ <sup>Released on **2026-01-13**</sup>
8
+
9
+ <br/>
10
+
11
+ <details>
12
+ <summary><kbd>Improvements and Fixes</kbd></summary>
13
+
14
+ </details>
15
+
16
+ <div align="right">
17
+
18
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
19
+
20
+ </div>
21
+
5
22
  ## [Version 2.0.0-next.275](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.274...v2.0.0-next.275)
6
23
 
7
24
  <sup>Released on **2026-01-13**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,9 @@
1
1
  [
2
+ {
3
+ "children": {},
4
+ "date": "2026-01-13",
5
+ "version": "2.0.0-next.276"
6
+ },
2
7
  {
3
8
  "children": {
4
9
  "features": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.275",
3
+ "version": "2.0.0-next.276",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -1,5 +1,5 @@
1
1
  import { Flexbox, TooltipGroup } from '@lobehub/ui';
2
- import { memo } from 'react';
2
+ import React, { memo } from 'react';
3
3
 
4
4
  import DragUploadZone, { useUploadFiles } from '@/components/DragUploadZone';
5
5
  import { useAgentStore } from '@/store/agent';
@@ -10,6 +10,12 @@ import { systemStatusSelectors } from '@/store/global/selectors';
10
10
  import ConversationArea from './ConversationArea';
11
11
  import ChatHeader from './Header';
12
12
 
13
+ const wrapperStyle: React.CSSProperties = {
14
+ height: '100%',
15
+ minWidth: 300,
16
+ width: '100%',
17
+ };
18
+
13
19
  const ChatConversation = memo(() => {
14
20
  const showHeader = useGlobalStore(systemStatusSelectors.showChatHeader);
15
21
 
@@ -19,7 +25,7 @@ const ChatConversation = memo(() => {
19
25
  const { handleUploadFiles } = useUploadFiles({ model, provider });
20
26
 
21
27
  return (
22
- <DragUploadZone onUploadFiles={handleUploadFiles} style={{ height: '100%', width: '100%' }}>
28
+ <DragUploadZone onUploadFiles={handleUploadFiles} style={wrapperStyle}>
23
29
  <Flexbox height={'100%'} style={{ overflow: 'hidden', position: 'relative' }} width={'100%'}>
24
30
  {showHeader && <ChatHeader />}
25
31
  <TooltipGroup>
@@ -39,6 +39,7 @@ const Layout = () => {
39
39
  <Modal
40
40
  allowFullscreen
41
41
  className={cx(isPortalThread && styles.container)}
42
+ destroyOnHidden
42
43
  footer={null}
43
44
  height={'95%'}
44
45
  onCancel={() => togglePortal(false)}
@@ -3,7 +3,7 @@
3
3
  import { DraggablePanel, type DraggablePanelProps } from '@lobehub/ui';
4
4
  import { createStaticStyles } from 'antd-style';
5
5
  import isEqual from 'fast-deep-equal';
6
- import { type PropsWithChildren, memo, useState } from 'react';
6
+ import { Activity, type PropsWithChildren, memo, useState } from 'react';
7
7
 
8
8
  import {
9
9
  CHAT_PORTAL_MAX_WIDTH,
@@ -81,7 +81,9 @@ const PortalPanel = memo(({ children }: PropsWithChildren) => {
81
81
  showHandleWideArea={false}
82
82
  size={{ height: '100%', width: portalWidth }}
83
83
  >
84
- {children}
84
+ <Activity mode={showPortal ? 'visible' : 'hidden'} name="AgentPortal">
85
+ {children}
86
+ </Activity>
85
87
  </DraggablePanel>
86
88
  );
87
89
  });
@@ -39,6 +39,7 @@ const Layout = () => {
39
39
  <Modal
40
40
  allowFullscreen
41
41
  className={cx(isPortalThread && styles.container)}
42
+ destroyOnHidden
42
43
  footer={null}
43
44
  height={'95%'}
44
45
  onCancel={() => togglePortal(false)}
@@ -4,7 +4,7 @@ import { DraggablePanel, DraggablePanelContainer, type DraggablePanelProps } fro
4
4
  import { Flexbox } from '@lobehub/ui';
5
5
  import { createStaticStyles, useResponsive } from 'antd-style';
6
6
  import isEqual from 'fast-deep-equal';
7
- import { type PropsWithChildren, memo, useState } from 'react';
7
+ import { Activity, type PropsWithChildren, memo, useState } from 'react';
8
8
 
9
9
  import {
10
10
  CHAT_PORTAL_MAX_WIDTH,
@@ -94,7 +94,9 @@ const PortalPanel = memo(({ children }: PropsWithChildren) => {
94
94
  minWidth: CHAT_PORTAL_WIDTH,
95
95
  }}
96
96
  >
97
- <Flexbox className={styles.panel}>{children}</Flexbox>
97
+ <Activity mode={showPortal ? 'visible' : 'hidden'} name="GroupPortal">
98
+ <Flexbox className={styles.panel}>{children}</Flexbox>
99
+ </Activity>
98
100
  </DraggablePanelContainer>
99
101
  </DraggablePanel>
100
102
  );
@@ -1,16 +1,19 @@
1
1
  import { parse } from 'partial-json';
2
+ import { useMemo } from 'react';
2
3
  import { stringify } from 'yaml';
3
4
 
4
5
  export const useYamlArguments = (args?: string) => {
5
- if (!args) return '';
6
+ return useMemo(() => {
7
+ if (!args) return '';
6
8
 
7
- try {
8
- const obj = parse(args);
9
+ try {
10
+ const obj = parse(args);
9
11
 
10
- if (Object.keys(obj).length === 0) return '';
12
+ if (Object.keys(obj).length === 0) return '';
11
13
 
12
- return stringify(obj);
13
- } catch {
14
- return args;
15
- }
14
+ return stringify(obj);
15
+ } catch {
16
+ return args;
17
+ }
18
+ }, [args]);
16
19
  };