@lobehub/chat 1.102.2 → 1.102.4
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 +58 -0
- package/Dockerfile.pglite +2 -0
- package/apps/desktop/README.md +322 -36
- package/apps/desktop/README.zh-CN.md +353 -0
- package/apps/desktop/package.json +1 -0
- package/apps/desktop/resources/tray-dark.png +0 -0
- package/apps/desktop/resources/tray-light.png +0 -0
- package/apps/desktop/resources/tray.png +0 -0
- package/apps/desktop/src/main/const/env.ts +25 -0
- package/apps/desktop/src/main/core/TrayManager.ts +7 -1
- package/changelog/v1.json +18 -0
- package/locales/ar/subscription.json +24 -0
- package/locales/bg-BG/subscription.json +24 -0
- package/locales/de-DE/subscription.json +24 -0
- package/locales/en-US/subscription.json +24 -0
- package/locales/es-ES/subscription.json +24 -0
- package/locales/fa-IR/subscription.json +24 -0
- package/locales/fr-FR/subscription.json +24 -0
- package/locales/it-IT/subscription.json +24 -0
- package/locales/ja-JP/subscription.json +24 -0
- package/locales/ko-KR/subscription.json +24 -0
- package/locales/nl-NL/subscription.json +24 -0
- package/locales/pl-PL/subscription.json +24 -0
- package/locales/pt-BR/subscription.json +24 -0
- package/locales/ru-RU/subscription.json +24 -0
- package/locales/tr-TR/subscription.json +24 -0
- package/locales/vi-VN/subscription.json +24 -0
- package/locales/zh-CN/subscription.json +24 -0
- package/locales/zh-TW/subscription.json +24 -0
- package/package.json +1 -1
- package/packages/electron-client-ipc/README.md +55 -30
- package/packages/electron-client-ipc/README.zh-CN.md +73 -0
- package/packages/electron-server-ipc/README.md +42 -20
- package/packages/electron-server-ipc/README.zh-CN.md +76 -0
- package/packages/file-loaders/README.md +77 -51
- package/packages/file-loaders/README.zh-CN.md +89 -0
- package/src/app/[variants]/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/HeaderAction.tsx +11 -8
- package/src/app/[variants]/(main)/chat/(workspace)/features/SettingButton.tsx +11 -8
- package/src/app/[variants]/(main)/chat/(workspace)/features/ShareButton/index.tsx +3 -0
- package/src/app/[variants]/(main)/chat/@session/_layout/Desktop/SessionHeader.tsx +3 -0
- package/src/features/PlanIcon/index.tsx +126 -0
- package/src/features/User/PlanTag.tsx +33 -25
- package/src/libs/model-runtime/ModelRuntime.ts +0 -8
- package/src/locales/default/index.ts +2 -0
- package/src/locales/default/subscription.ts +24 -0
- package/src/server/routers/async/caller.ts +0 -6
- package/src/types/subscription.ts +7 -0
- package/apps/desktop/resources/tray-icon.png +0 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,64 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
### [Version 1.102.4](https://github.com/lobehub/lobe-chat/compare/v1.102.3...v1.102.4)
|
6
|
+
|
7
|
+
<sup>Released on **2025-07-22**</sup>
|
8
|
+
|
9
|
+
#### ♻ Code Refactoring
|
10
|
+
|
11
|
+
- **misc**: Add badge and improve document.
|
12
|
+
|
13
|
+
#### 💄 Styles
|
14
|
+
|
15
|
+
- **misc**: Update tray icon.
|
16
|
+
|
17
|
+
<br/>
|
18
|
+
|
19
|
+
<details>
|
20
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
21
|
+
|
22
|
+
#### Code refactoring
|
23
|
+
|
24
|
+
- **misc**: Add badge and improve document, closes [#8528](https://github.com/lobehub/lobe-chat/issues/8528) ([9fb4b0d](https://github.com/lobehub/lobe-chat/commit/9fb4b0d))
|
25
|
+
|
26
|
+
#### Styles
|
27
|
+
|
28
|
+
- **misc**: Update tray icon, closes [#8530](https://github.com/lobehub/lobe-chat/issues/8530) ([2696de4](https://github.com/lobehub/lobe-chat/commit/2696de4))
|
29
|
+
|
30
|
+
</details>
|
31
|
+
|
32
|
+
<div align="right">
|
33
|
+
|
34
|
+
[](#readme-top)
|
35
|
+
|
36
|
+
</div>
|
37
|
+
|
38
|
+
### [Version 1.102.3](https://github.com/lobehub/lobe-chat/compare/v1.102.2...v1.102.3)
|
39
|
+
|
40
|
+
<sup>Released on **2025-07-22**</sup>
|
41
|
+
|
42
|
+
#### 🐛 Bug Fixes
|
43
|
+
|
44
|
+
- **misc**: Remove debug logging from ModelRuntime and async caller.
|
45
|
+
|
46
|
+
<br/>
|
47
|
+
|
48
|
+
<details>
|
49
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
50
|
+
|
51
|
+
#### What's fixed
|
52
|
+
|
53
|
+
- **misc**: Remove debug logging from ModelRuntime and async caller, closes [#8525](https://github.com/lobehub/lobe-chat/issues/8525) ([dd1a635](https://github.com/lobehub/lobe-chat/commit/dd1a635))
|
54
|
+
|
55
|
+
</details>
|
56
|
+
|
57
|
+
<div align="right">
|
58
|
+
|
59
|
+
[](#readme-top)
|
60
|
+
|
61
|
+
</div>
|
62
|
+
|
5
63
|
### [Version 1.102.2](https://github.com/lobehub/lobe-chat/compare/v1.102.1...v1.102.2)
|
6
64
|
|
7
65
|
<sup>Released on **2025-07-22**</sup>
|
package/Dockerfile.pglite
CHANGED
@@ -55,6 +55,8 @@ ENV NEXT_PUBLIC_SENTRY_DSN="${NEXT_PUBLIC_SENTRY_DSN}" \
|
|
55
55
|
SENTRY_ORG="" \
|
56
56
|
SENTRY_PROJECT=""
|
57
57
|
|
58
|
+
ENV APP_URL="http://app.com"
|
59
|
+
|
58
60
|
# Posthog
|
59
61
|
ENV NEXT_PUBLIC_ANALYTICS_POSTHOG="${NEXT_PUBLIC_ANALYTICS_POSTHOG}" \
|
60
62
|
NEXT_PUBLIC_POSTHOG_HOST="${NEXT_PUBLIC_POSTHOG_HOST}" \
|
package/apps/desktop/README.md
CHANGED
@@ -1,67 +1,353 @@
|
|
1
|
-
# LobeHub Desktop Application
|
1
|
+
# 🤯 LobeHub Desktop Application
|
2
2
|
|
3
|
-
LobeHub Desktop
|
3
|
+
LobeHub Desktop is a cross-platform desktop application for [LobeChat](https://github.com/lobehub/lobe-chat), built with Electron, providing a more native desktop experience and functionality.
|
4
4
|
|
5
|
-
##
|
5
|
+
## ✨ Features
|
6
6
|
|
7
|
-
-
|
8
|
-
-
|
9
|
-
-
|
10
|
-
-
|
11
|
-
-
|
12
|
-
-
|
7
|
+
- **🌍 Cross-platform Support**: Supports macOS (Intel/Apple Silicon), Windows, and Linux systems
|
8
|
+
- **🔄 Auto Updates**: Built-in update mechanism ensures you always have the latest version
|
9
|
+
- **🌐 Multi-language Support**: Complete i18n support for 18+ languages with lazy loading
|
10
|
+
- **🎨 Native Integration**: Deep OS integration with native menus, shortcuts, and notifications
|
11
|
+
- **🔒 Secure & Reliable**: macOS notarized, encrypted token storage, secure OAuth flow
|
12
|
+
- **📦 Multiple Release Channels**: Stable, beta, and nightly build versions
|
13
|
+
- **⚡ Advanced Window Management**: Multi-window architecture with theme synchronization
|
14
|
+
- **🔗 Remote Server Sync**: Secure data synchronization with remote LobeChat instances
|
15
|
+
- **🎯 Developer Tools**: Built-in development panel and comprehensive debugging tools
|
13
16
|
|
14
|
-
##
|
17
|
+
## 🚀 Development Setup
|
15
18
|
|
16
|
-
###
|
19
|
+
### Prerequisites
|
17
20
|
|
18
|
-
- Node.js 22+
|
19
|
-
- pnpm 10+
|
21
|
+
- **Node.js** 22+
|
22
|
+
- **pnpm** 10+
|
23
|
+
- **Electron** compatible development environment
|
20
24
|
|
21
|
-
###
|
25
|
+
### Quick Start
|
22
26
|
|
23
27
|
```bash
|
28
|
+
# Install dependencies
|
24
29
|
pnpm install-isolated
|
25
|
-
```
|
26
30
|
|
27
|
-
|
31
|
+
# Start development server
|
32
|
+
pnpm electron:dev
|
33
|
+
|
34
|
+
# Type checking
|
35
|
+
pnpm typecheck
|
28
36
|
|
29
|
-
|
37
|
+
# Run tests
|
38
|
+
pnpm test
|
39
|
+
```
|
30
40
|
|
31
|
-
|
32
|
-
> 注意提前备份好 `.env` 文件,避免丢失配置。
|
41
|
+
### Environment Configuration
|
33
42
|
|
34
|
-
|
43
|
+
Copy `.env.desktop` to `.env` and configure as needed:
|
35
44
|
|
36
45
|
```bash
|
37
|
-
|
46
|
+
cp .env.desktop .env
|
38
47
|
```
|
39
48
|
|
40
|
-
|
49
|
+
> \[!WARNING]
|
50
|
+
> Backup your `.env` file before making changes to avoid losing configurations.
|
51
|
+
|
52
|
+
### Build Commands
|
41
53
|
|
42
|
-
|
54
|
+
| Command | Description |
|
55
|
+
| ------------------ | --------------------------------------- |
|
56
|
+
| `pnpm build` | Build for all platforms |
|
57
|
+
| `pnpm build:mac` | Build for macOS (Intel + Apple Silicon) |
|
58
|
+
| `pnpm build:win` | Build for Windows |
|
59
|
+
| `pnpm build:linux` | Build for Linux |
|
60
|
+
| `pnpm build-local` | Local development build |
|
61
|
+
|
62
|
+
### Development Workflow
|
43
63
|
|
44
64
|
```bash
|
45
|
-
|
65
|
+
# 1. Development
|
66
|
+
pnpm electron:dev # Start with hot reload
|
67
|
+
|
68
|
+
# 2. Code Quality
|
69
|
+
pnpm lint # ESLint checking
|
70
|
+
pnpm format # Prettier formatting
|
71
|
+
pnpm typecheck # TypeScript validation
|
72
|
+
|
73
|
+
# 3. Testing
|
74
|
+
pnpm test # Run Vitest tests
|
75
|
+
|
76
|
+
# 4. Build & Package
|
77
|
+
pnpm build # Production build
|
78
|
+
pnpm build-local # Local testing build
|
46
79
|
```
|
47
80
|
|
48
|
-
|
81
|
+
## 🎯 Release Channels
|
82
|
+
|
83
|
+
| Channel | Description | Stability | Auto-Updates |
|
84
|
+
| ----------- | -------------------------------- | --------- | ------------ |
|
85
|
+
| **Stable** | Thoroughly tested releases | 🟢 High | ✅ Yes |
|
86
|
+
| **Beta** | Pre-release with new features | 🟡 Medium | ✅ Yes |
|
87
|
+
| **Nightly** | Daily builds with latest changes | 🟠 Low | ✅ Yes |
|
88
|
+
|
89
|
+
## 🛠 Technology Stack
|
90
|
+
|
91
|
+
### Core Framework
|
92
|
+
|
93
|
+
- **Electron** `37.1.0` - Cross-platform desktop framework
|
94
|
+
- **Node.js** `22+` - Backend runtime
|
95
|
+
- **TypeScript** `5.7+` - Type-safe development
|
96
|
+
- **Vite** `6.2+` - Build tooling
|
97
|
+
|
98
|
+
### Architecture & Patterns
|
99
|
+
|
100
|
+
- **Dependency Injection** - IoC container with decorator-based registration
|
101
|
+
- **Event-Driven Architecture** - IPC communication between processes
|
102
|
+
- **Module Federation** - Dynamic controller and service loading
|
103
|
+
- **Observer Pattern** - State management and UI synchronization
|
104
|
+
|
105
|
+
### Development Tools
|
106
|
+
|
107
|
+
- **Vitest** - Unit testing framework
|
108
|
+
- **ESLint** - Code linting
|
109
|
+
- **Prettier** - Code formatting
|
110
|
+
- **electron-builder** - Application packaging
|
111
|
+
- **electron-updater** - Auto-update mechanism
|
112
|
+
|
113
|
+
### Security & Storage
|
114
|
+
|
115
|
+
- **Electron Safe Storage** - Encrypted token storage
|
116
|
+
- **OAuth 2.0 + PKCE** - Secure authentication flow
|
117
|
+
- **electron-store** - Persistent configuration
|
118
|
+
- **Custom Protocol Handler** - Secure callback handling
|
119
|
+
|
120
|
+
## 🏗 Architecture
|
121
|
+
|
122
|
+
The desktop application uses a sophisticated dependency injection and event-driven architecture:
|
123
|
+
|
124
|
+
### 📁 Core Structure
|
125
|
+
|
126
|
+
```
|
127
|
+
src/main/core/
|
128
|
+
├── App.ts # 🎯 Main application orchestrator
|
129
|
+
├── IoCContainer.ts # 🔌 Dependency injection container
|
130
|
+
├── window/ # 🪟 Window management modules
|
131
|
+
│ ├── WindowThemeManager.ts # 🎨 Theme synchronization
|
132
|
+
│ ├── WindowPositionManager.ts # 📐 Position persistence
|
133
|
+
│ ├── WindowErrorHandler.ts # ⚠️ Error boundaries
|
134
|
+
│ └── WindowConfigBuilder.ts # ⚙️ Configuration builder
|
135
|
+
├── browser/ # 🌐 Browser management modules
|
136
|
+
│ ├── Browser.ts # 🪟 Individual window instances
|
137
|
+
│ └── BrowserManager.ts # 👥 Multi-window coordinator
|
138
|
+
├── ui/ # 🎨 UI system modules
|
139
|
+
│ ├── Tray.ts # 📍 System tray integration
|
140
|
+
│ ├── TrayManager.ts # 🔧 Tray management
|
141
|
+
│ ├── MenuManager.ts # 📋 Native menu system
|
142
|
+
│ └── ShortcutManager.ts # ⌨️ Global shortcuts
|
143
|
+
└── infrastructure/ # 🔧 Infrastructure services
|
144
|
+
├── StoreManager.ts # 💾 Configuration storage
|
145
|
+
├── I18nManager.ts # 🌍 Internationalization
|
146
|
+
├── UpdaterManager.ts # 📦 Auto-update system
|
147
|
+
└── StaticFileServerManager.ts # 🗂️ Local file serving
|
148
|
+
```
|
149
|
+
|
150
|
+
### 🔄 Application Lifecycle
|
151
|
+
|
152
|
+
The `App.ts` class orchestrates the entire application lifecycle through key phases:
|
153
|
+
|
154
|
+
#### 1. 🚀 Initialization Phase
|
155
|
+
|
156
|
+
- **System Information Logging** - Captures OS, CPU, RAM, and locale details
|
157
|
+
- **Store Manager Setup** - Initializes persistent configuration storage
|
158
|
+
- **Dynamic Module Loading** - Auto-discovers controllers and services via glob imports
|
159
|
+
- **IPC Event Registration** - Sets up inter-process communication channels
|
160
|
+
|
161
|
+
#### 2. 🏃 Bootstrap Phase
|
162
|
+
|
163
|
+
- **Single Instance Check** - Ensures only one application instance runs
|
164
|
+
- **IPC Server Launch** - Starts the communication server
|
165
|
+
- **Core Manager Initialization** - Sequential initialization of all managers:
|
166
|
+
- 🌍 I18n for internationalization
|
167
|
+
- 📋 Menu system for native menus
|
168
|
+
- 🗂️ Static file server for local assets
|
169
|
+
- ⌨️ Global shortcuts registration
|
170
|
+
- 🪟 Browser window management
|
171
|
+
- 📍 System tray (Windows only)
|
172
|
+
- 📦 Auto-updater system
|
173
|
+
|
174
|
+
### 🔧 Core Components Deep Dive
|
175
|
+
|
176
|
+
#### 🌐 Browser Management System
|
177
|
+
|
178
|
+
- **Multi-Window Architecture** - Supports chat, settings, and devtools windows
|
179
|
+
- **Window State Management** - Handles positioning, theming, and lifecycle
|
180
|
+
- **WebContents Mapping** - Bidirectional mapping between WebContents and identifiers
|
181
|
+
- **Event Broadcasting** - Centralized event distribution to all or specific windows
|
182
|
+
|
183
|
+
#### 🔌 Dependency Injection & Event System
|
184
|
+
|
185
|
+
- **IoC Container** - WeakMap-based container for decorated controller methods
|
186
|
+
- **Decorator Registration** - `@ipcClientEvent` and `@ipcServerEvent` decorators
|
187
|
+
- **Automatic Event Mapping** - Events registered during controller loading
|
188
|
+
- **Service Locator** - Type-safe service and controller retrieval
|
189
|
+
|
190
|
+
#### 🪟 Window Management
|
191
|
+
|
192
|
+
- **Theme-Aware Windows** - Automatic adaptation to system dark/light mode
|
193
|
+
- **Platform-Specific Styling** - Windows title bar and overlay customization
|
194
|
+
- **Position Persistence** - Save and restore window positions across sessions
|
195
|
+
- **Error Boundaries** - Centralized error handling for window operations
|
196
|
+
|
197
|
+
#### 🔧 Infrastructure Services
|
198
|
+
|
199
|
+
##### 🌍 I18n Manager
|
200
|
+
|
201
|
+
- **18+ Language Support** with lazy loading and namespace organization
|
202
|
+
- **System Integration** with Electron's locale detection
|
203
|
+
- **Dynamic UI Refresh** on language changes
|
204
|
+
- **Resource Management** with efficient loading strategies
|
205
|
+
|
206
|
+
##### 📦 Update Manager
|
207
|
+
|
208
|
+
- **Multi-Channel Support** (stable, beta, nightly) with configurable intervals
|
209
|
+
- **Background Downloads** with progress tracking and user notifications
|
210
|
+
- **Rollback Protection** with error handling and recovery mechanisms
|
211
|
+
- **Channel Management** with automatic channel switching
|
212
|
+
|
213
|
+
##### 💾 Store Manager
|
214
|
+
|
215
|
+
- **Type-Safe Storage** using electron-store with TypeScript interfaces
|
216
|
+
- **Encrypted Secrets** via Electron's Safe Storage API
|
217
|
+
- **Configuration Validation** with default value management
|
218
|
+
- **File System Integration** with automatic directory creation
|
219
|
+
|
220
|
+
##### 🗂️ Static File Server
|
221
|
+
|
222
|
+
- **Local HTTP Server** for serving application assets and user files
|
223
|
+
- **Security Controls** with request filtering and access validation
|
224
|
+
- **File Management** with upload, download, and deletion capabilities
|
225
|
+
- **Path Resolution** with intelligent routing between storage locations
|
226
|
+
|
227
|
+
#### 🎨 UI System Integration
|
228
|
+
|
229
|
+
- **Global Shortcuts** - Platform-aware keyboard shortcut registration with conflict detection
|
230
|
+
- **System Tray** - Native integration with context menus and notifications
|
231
|
+
- **Native Menus** - Platform-specific application and context menus with i18n
|
232
|
+
- **Theme Synchronization** - Automatic theme updates across all UI components
|
233
|
+
|
234
|
+
### 🏛 Controller & Service Architecture
|
235
|
+
|
236
|
+
#### 🎮 Controller Pattern
|
237
|
+
|
238
|
+
- **IPC Event Handling** - Processes events from renderer with decorator-based registration
|
239
|
+
- **Lifecycle Hooks** - `beforeAppReady` and `afterAppReady` for initialization phases
|
240
|
+
- **Type-Safe Communication** - Strong typing for all IPC events and responses
|
241
|
+
- **Error Boundaries** - Comprehensive error handling with proper propagation
|
242
|
+
|
243
|
+
#### 🔧 Service Pattern
|
244
|
+
|
245
|
+
- **Business Logic Encapsulation** - Clean separation of concerns
|
246
|
+
- **Dependency Management** - Managed through IoC container
|
247
|
+
- **Cross-Controller Sharing** - Services accessible via service locator pattern
|
248
|
+
- **Resource Management** - Proper initialization and cleanup
|
249
|
+
|
250
|
+
### 🔗 Inter-Process Communication
|
251
|
+
|
252
|
+
#### 📡 IPC System Features
|
253
|
+
|
254
|
+
- **Bidirectional Communication** - Main↔Renderer and Main↔Next.js server
|
255
|
+
- **Type-Safe Events** - TypeScript interfaces for all event parameters
|
256
|
+
- **Context Awareness** - Events include sender context for window-specific operations
|
257
|
+
- **Error Propagation** - Centralized error handling with proper status codes
|
258
|
+
|
259
|
+
#### 🛡️ Security Features
|
260
|
+
|
261
|
+
- **OAuth 2.0 + PKCE** - Secure authentication with state parameter validation
|
262
|
+
- **Encrypted Token Storage** - Using Electron's Safe Storage API when available
|
263
|
+
- **Custom Protocol Handler** - Secure callback handling for OAuth flows
|
264
|
+
- **Request Filtering** - Security controls for web requests and external links
|
265
|
+
|
266
|
+
## 🧪 Testing
|
267
|
+
|
268
|
+
### Test Structure
|
49
269
|
|
50
270
|
```bash
|
51
|
-
#
|
52
|
-
|
271
|
+
apps/desktop/src/main/controllers/__tests__/ # Controller unit tests
|
272
|
+
tests/ # Integration tests
|
273
|
+
```
|
53
274
|
|
54
|
-
|
55
|
-
pnpm build:win
|
275
|
+
### Running Tests
|
56
276
|
|
57
|
-
|
58
|
-
pnpm
|
277
|
+
```bash
|
278
|
+
pnpm test # Run all tests
|
279
|
+
pnpm test:watch # Watch mode
|
280
|
+
pnpm typecheck # Type validation
|
59
281
|
```
|
60
282
|
|
61
|
-
|
283
|
+
### Test Coverage
|
284
|
+
|
285
|
+
- **Controller Tests** - IPC event handling validation
|
286
|
+
- **Service Tests** - Business logic verification
|
287
|
+
- **Integration Tests** - End-to-end workflow testing
|
288
|
+
- **Type Tests** - TypeScript interface validation
|
289
|
+
|
290
|
+
## 🔒 Security Features
|
291
|
+
|
292
|
+
### Authentication & Authorization
|
293
|
+
|
294
|
+
- **OAuth 2.0 Flow** with PKCE for secure token exchange
|
295
|
+
- **State Parameter Validation** to prevent CSRF attacks
|
296
|
+
- **Encrypted Token Storage** using platform-native secure storage
|
297
|
+
- **Automatic Token Refresh** with fallback to re-authentication
|
298
|
+
|
299
|
+
### Application Security
|
300
|
+
|
301
|
+
- **Code Signing** - macOS notarization for enhanced security
|
302
|
+
- **Sandboxing** - Controlled access to system resources
|
303
|
+
- **CSP Controls** - Content Security Policy management
|
304
|
+
- **Request Filtering** - Security controls for external requests
|
305
|
+
|
306
|
+
### Data Protection
|
307
|
+
|
308
|
+
- **Encrypted Configuration** - Sensitive data encrypted at rest
|
309
|
+
- **Secure IPC** - Type-safe communication channels
|
310
|
+
- **Path Validation** - Secure file system access controls
|
311
|
+
- **Network Security** - HTTPS enforcement and proxy support
|
312
|
+
|
313
|
+
## 🤝 Contribution
|
314
|
+
|
315
|
+
Desktop application development involves complex cross-platform considerations and native integrations. We welcome community contributions to improve functionality, performance, and user experience. You can participate in improvements through:
|
316
|
+
|
317
|
+
### How to Contribute
|
318
|
+
|
319
|
+
1. **Platform Support**: Enhance cross-platform compatibility and native integrations
|
320
|
+
2. **Performance Optimization**: Improve application startup time, memory usage, and responsiveness
|
321
|
+
3. **Feature Development**: Add new desktop-specific features and capabilities
|
322
|
+
4. **Bug Fixes**: Fix platform-specific issues and edge cases
|
323
|
+
5. **Security Improvements**: Enhance security measures and authentication flows
|
324
|
+
6. **UI/UX Enhancements**: Improve desktop user interface and experience
|
325
|
+
|
326
|
+
### Contribution Process
|
327
|
+
|
328
|
+
1. Fork the [LobeChat repository](https://github.com/lobehub/lobe-chat)
|
329
|
+
2. Set up the desktop development environment following our setup guide
|
330
|
+
3. Make your changes to the desktop application
|
331
|
+
4. Submit a Pull Request describing:
|
332
|
+
|
333
|
+
- Platform compatibility testing results
|
334
|
+
- Performance impact analysis
|
335
|
+
- Security considerations
|
336
|
+
- User experience improvements
|
337
|
+
- Breaking changes (if any)
|
338
|
+
|
339
|
+
### Development Areas
|
340
|
+
|
341
|
+
- **Core Architecture**: Dependency injection, event system, and lifecycle management
|
342
|
+
- **Window Management**: Multi-window support, theme synchronization, and state persistence
|
343
|
+
- **IPC Communication**: Type-safe inter-process communication between main and renderer
|
344
|
+
- **Platform Integration**: Native menus, shortcuts, notifications, and system tray
|
345
|
+
- **Security Features**: OAuth flows, token encryption, and secure storage
|
346
|
+
- **Auto-Update System**: Multi-channel updates and rollback mechanisms
|
62
347
|
|
63
|
-
|
348
|
+
## 📚 Additional Resources
|
64
349
|
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
350
|
+
- **Development Guide**: [`Development.md`](./Development.md) - Comprehensive development documentation
|
351
|
+
- **Architecture Docs**: [`/docs`](../../docs/) - Detailed technical specifications
|
352
|
+
- **Contributing**: [`CONTRIBUTING.md`](../../CONTRIBUTING.md) - Contribution guidelines
|
353
|
+
- **Issues & Support**: [GitHub Issues](https://github.com/lobehub/lobe-chat/issues)
|