@lobehub/chat 1.79.2 → 1.79.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.
Files changed (41) hide show
  1. package/.env.desktop +7 -0
  2. package/.github/scripts/pr-release-body.js +3 -0
  3. package/CHANGELOG.md +50 -0
  4. package/changelog/v1.json +18 -0
  5. package/package.json +15 -7
  6. package/packages/electron-client-ipc/src/events/file.ts +5 -0
  7. package/packages/electron-client-ipc/src/events/index.ts +19 -1
  8. package/packages/electron-client-ipc/src/events/shortcut.ts +4 -0
  9. package/packages/electron-client-ipc/src/events/system.ts +5 -0
  10. package/packages/electron-client-ipc/src/events/update.ts +20 -0
  11. package/packages/electron-client-ipc/src/events/windows.ts +9 -0
  12. package/packages/electron-client-ipc/src/index.ts +1 -0
  13. package/packages/electron-client-ipc/src/types/file.ts +14 -0
  14. package/packages/electron-client-ipc/src/types/index.ts +4 -0
  15. package/packages/electron-client-ipc/src/types/route.ts +46 -0
  16. package/packages/electron-client-ipc/src/types/shortcut.ts +11 -0
  17. package/packages/electron-client-ipc/src/types/update.ts +23 -0
  18. package/packages/electron-client-ipc/src/useWatchBroadcast.ts +37 -0
  19. package/packages/electron-server-ipc/src/events/database.ts +4 -0
  20. package/packages/electron-server-ipc/src/events/file.ts +6 -0
  21. package/packages/electron-server-ipc/src/events/index.ts +29 -0
  22. package/packages/electron-server-ipc/src/events/storagePath.ts +4 -0
  23. package/packages/electron-server-ipc/src/index.ts +1 -0
  24. package/packages/electron-server-ipc/src/ipcClient.test.ts +3 -4
  25. package/packages/electron-server-ipc/src/ipcClient.ts +52 -24
  26. package/packages/electron-server-ipc/src/ipcServer.ts +6 -14
  27. package/packages/electron-server-ipc/src/types/file.ts +4 -0
  28. package/packages/electron-server-ipc/src/types/index.ts +14 -1
  29. package/scripts/electronWorkflow/buildElectron.ts +52 -0
  30. package/scripts/electronWorkflow/moveNextStandalone.ts +69 -0
  31. package/scripts/electronWorkflow/setDesktopVersion.ts +96 -0
  32. package/scripts/prebuild.mts +77 -0
  33. package/src/config/aiModels/xai.ts +79 -18
  34. package/src/libs/agent-runtime/azureai/index.ts +3 -1
  35. package/src/prompts/files/file.ts +6 -4
  36. package/src/prompts/files/image.ts +6 -3
  37. package/src/prompts/files/index.test.ts +50 -0
  38. package/src/prompts/files/index.ts +4 -2
  39. package/src/services/chat.ts +4 -2
  40. package/src/store/global/actions/general.ts +13 -6
  41. package/packages/electron-server-ipc/src/types/event.ts +0 -18
@@ -5,7 +5,7 @@ import { SWRResponse } from 'swr';
5
5
  import type { StateCreator } from 'zustand/vanilla';
6
6
 
7
7
  import { LOBE_THEME_APPEARANCE } from '@/const/theme';
8
- import { CURRENT_VERSION } from '@/const/version';
8
+ import { CURRENT_VERSION, isDesktop } from '@/const/version';
9
9
  import { useOnlyFetchOnceSWR } from '@/libs/swr';
10
10
  import { globalService } from '@/services/global';
11
11
  import type { SystemStatus } from '@/store/global/initialState';
@@ -37,6 +37,18 @@ export const generalActionSlice: StateCreator<
37
37
  get().updateSystemStatus({ language: locale });
38
38
 
39
39
  switchLang(locale);
40
+
41
+ if (isDesktop) {
42
+ (async () => {
43
+ try {
44
+ const { dispatch } = await import('@lobechat/electron-client-ipc');
45
+
46
+ await dispatch('updateLocale', locale);
47
+ } catch (error) {
48
+ console.error('Failed to update locale in main process:', error);
49
+ }
50
+ })();
51
+ }
40
52
  },
41
53
  switchThemeMode: (themeMode) => {
42
54
  get().updateSystemStatus({ themeMode });
@@ -44,7 +56,6 @@ export const generalActionSlice: StateCreator<
44
56
  setCookie(LOBE_THEME_APPEARANCE, themeMode === 'auto' ? undefined : themeMode);
45
57
  },
46
58
  updateSystemStatus: (status, action) => {
47
- // Status cannot be modified when it is not initialized
48
59
  if (!get().isStatusInit) return;
49
60
 
50
61
  const nextStatus = merge(get().status, status);
@@ -60,19 +71,15 @@ export const generalActionSlice: StateCreator<
60
71
  enabledCheck ? 'checkLatestVersion' : null,
61
72
  async () => globalService.getLatestVersion(),
62
73
  {
63
- // check latest version every 30 minutes
64
74
  focusThrottleInterval: 1000 * 60 * 30,
65
75
  onSuccess: (data: string) => {
66
76
  if (!valid(CURRENT_VERSION) || !valid(data)) return;
67
77
 
68
- // Parse versions to ensure we're working with valid SemVer objects
69
78
  const currentVersion = parse(CURRENT_VERSION);
70
79
  const latestVersion = parse(data);
71
80
 
72
81
  if (!currentVersion || !latestVersion) return;
73
82
 
74
- // only compare major and minor versions
75
- // solve the problem of frequent patch updates
76
83
  const currentMajorMinor = `${currentVersion.major}.${currentVersion.minor}.0`;
77
84
  const latestMajorMinor = `${latestVersion.major}.${latestVersion.minor}.0`;
78
85
 
@@ -1,18 +0,0 @@
1
- /* eslint-disable typescript-sort-keys/interface, sort-keys-fix/sort-keys-fix */
2
- export const ElectronIPCMethods = {
3
- getDatabasePath: 'getDatabasePath',
4
- getUserDataPath: 'getUserDataPath',
5
-
6
- getDatabaseSchemaHash: 'getDatabaseSchemaHash',
7
- setDatabaseSchemaHash: 'setDatabaseSchemaHash',
8
- } as const;
9
-
10
- export type IElectronIPCMethods = keyof typeof ElectronIPCMethods;
11
-
12
- export interface IpcDispatchEvent {
13
- getDatabasePath: () => Promise<string>;
14
- getUserDataPath: () => Promise<string>;
15
-
16
- getDatabaseSchemaHash: () => Promise<string | undefined>;
17
- setDatabaseSchemaHash: (hash: string) => Promise<void>;
18
- }