@lobehub/lobehub 2.0.0-next.223 → 2.0.0-next.224

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.
@@ -6,6 +6,10 @@ permissions:
6
6
  actions: write
7
7
  contents: read
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
9
13
  jobs:
10
14
  # Check for duplicate runs
11
15
  pre_job:
@@ -16,69 +20,18 @@ jobs:
16
20
  - id: skip_check
17
21
  uses: fkirc/skip-duplicate-actions@v5
18
22
  with:
19
- concurrent_skipping: 'same_content_newer'
20
- skip_after_successful_duplicate: 'true'
23
+ concurrent_skipping: "same_content_newer"
24
+ skip_after_successful_duplicate: "true"
21
25
  do_not_skip: '["workflow_dispatch", "schedule"]'
22
26
 
23
- # Package tests - using each package's own test script
24
- test-intenral-packages:
25
- needs: pre_job
26
- if: needs.pre_job.outputs.should_skip != 'true'
27
- runs-on: ubuntu-latest
28
- strategy:
29
- matrix:
30
- package:
31
- - file-loaders
32
- - prompts
33
- - model-runtime
34
- - web-crawler
35
- - electron-server-ipc
36
- - utils
37
- - python-interpreter
38
- - context-engine
39
- - agent-runtime
40
- - conversation-flow
41
- - ssrf-safe-fetch
42
- - memory-user-memory
43
-
44
- name: Test package ${{ matrix.package }}
45
-
46
- steps:
47
- - uses: actions/checkout@v6
48
-
49
- - name: Setup Node.js
50
- uses: actions/setup-node@v6
51
- with:
52
- node-version: 24.11.1
53
- package-manager-cache: false
54
-
55
- - name: Install bun
56
- uses: oven-sh/setup-bun@v2
57
- with:
58
- bun-version: ${{ secrets.BUN_VERSION }}
59
-
60
- - name: Install deps
61
- run: bun i
62
-
63
- - name: Test ${{ matrix.package }} package with coverage
64
- run: bun run --filter @lobechat/${{ matrix.package }} test:coverage
65
-
66
- - name: Upload ${{ matrix.package }} coverage to Codecov
67
- uses: codecov/codecov-action@v5
68
- with:
69
- token: ${{ secrets.CODECOV_TOKEN }}
70
- files: ./packages/${{ matrix.package }}/coverage/lcov.info
71
- flags: packages/${{ matrix.package }}
72
-
27
+ # Package tests - all packages in single job to save runner resources
73
28
  test-packages:
74
29
  needs: pre_job
75
30
  if: needs.pre_job.outputs.should_skip != 'true'
76
31
  runs-on: ubuntu-latest
77
- strategy:
78
- matrix:
79
- package: [model-bank]
80
-
81
- name: Test package ${{ matrix.package }}
32
+ name: Test Packages
33
+ env:
34
+ PACKAGES: "@lobechat/file-loaders @lobechat/prompts @lobechat/model-runtime @lobechat/web-crawler @lobechat/electron-server-ipc @lobechat/utils @lobechat/python-interpreter @lobechat/context-engine @lobechat/agent-runtime @lobechat/conversation-flow @lobechat/ssrf-safe-fetch @lobechat/memory-user-memory model-bank"
82
35
 
83
36
  steps:
84
37
  - uses: actions/checkout@v6
@@ -92,20 +45,32 @@ jobs:
92
45
  - name: Install bun
93
46
  uses: oven-sh/setup-bun@v2
94
47
  with:
95
- bun-version: latest
48
+ bun-version: ${{ secrets.BUN_VERSION }}
96
49
 
97
50
  - name: Install deps
98
51
  run: bun i
99
52
 
100
- - name: Test ${{ matrix.package }} package with coverage
101
- run: bun run --filter ${{ matrix.package }} test:coverage
102
-
103
- - name: Upload ${{ matrix.package }} coverage to Codecov
104
- uses: codecov/codecov-action@v5
105
- with:
106
- token: ${{ secrets.CODECOV_TOKEN }}
107
- files: ./packages/${{ matrix.package }}/coverage/lcov.info
108
- flags: packages/${{ matrix.package }}
53
+ - name: Test packages with coverage
54
+ run: |
55
+ for package in $PACKAGES; do
56
+ echo "::group::Testing $package"
57
+ bun run --filter $package test:coverage
58
+ echo "::endgroup::"
59
+ done
60
+
61
+ - name: Upload coverage to Codecov
62
+ if: always()
63
+ run: |
64
+ for package in $PACKAGES; do
65
+ # Extract directory name: @lobechat/file-loaders -> file-loaders, model-bank -> model-bank
66
+ dir="${package#@lobechat/}"
67
+ if [ -f "./packages/$dir/coverage/lcov.info" ]; then
68
+ echo "Uploading coverage for $package..."
69
+ npx codecov --token=${{ secrets.CODECOV_TOKEN }} \
70
+ --file=./packages/$dir/coverage/lcov.info \
71
+ --flags=packages/$dir
72
+ fi
73
+ done
109
74
 
110
75
  # App tests
111
76
  test-website:
@@ -199,7 +164,6 @@ jobs:
199
164
  options: >-
200
165
  --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
201
166
 
202
-
203
167
  ports:
204
168
  - 5432:5432
205
169
 
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.224](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.223...v2.0.0-next.224)
6
+
7
+ <sup>Released on **2026-01-06**</sup>
8
+
9
+ #### ♻ Code Refactoring
10
+
11
+ - **router**: Replace client-side rendering with dynamic import for DesktopClientRouter.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### Code refactoring
19
+
20
+ - **router**: Replace client-side rendering with dynamic import for DesktopClientRouter, closes [#11276](https://github.com/lobehub/lobe-chat/issues/11276) ([f50305b](https://github.com/lobehub/lobe-chat/commit/f50305b))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
5
30
  ## [Version 2.0.0-next.223](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.222...v2.0.0-next.223)
6
31
 
7
32
  <sup>Released on **2026-01-06**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,9 @@
1
1
  [
2
+ {
3
+ "children": {},
4
+ "date": "2026-01-06",
5
+ "version": "2.0.0-next.224"
6
+ },
2
7
  {
3
8
  "children": {
4
9
  "fixes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.223",
3
+ "version": "2.0.0-next.224",
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,20 +1,16 @@
1
1
  'use client';
2
2
 
3
- import { useEffect, useState } from 'react';
3
+ import dynamic from 'next/dynamic';
4
4
 
5
- import DesktopClientRouter from './DesktopClientRouter';
5
+ import Loading from '@/components/Loading/BrandTextLoading';
6
+
7
+ const DesktopRouterClient = dynamic(() => import('./DesktopClientRouter'), {
8
+ loading: () => <Loading debugId="DesktopRouter" />,
9
+ ssr: false,
10
+ });
6
11
 
7
- const useIsClient = () => {
8
- const [isClient, setIsClient] = useState(false);
9
- useEffect(() => {
10
- setIsClient(true);
11
- }, []);
12
- return isClient;
13
- };
14
12
  const DesktopRouter = () => {
15
- const isClient = useIsClient();
16
- if (!isClient) return null;
17
- return <DesktopClientRouter />;
13
+ return <DesktopRouterClient />;
18
14
  };
19
15
 
20
16
  export default DesktopRouter;