diff --git a/.vscode/settings.json b/.vscode/settings.json
index a12eb42d1b..3db5ac6570 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -7,12 +7,12 @@
"editor.formatOnSave": true,
// don't show errors, but fix when save and git pre commit
"eslint.rules.customizations": [
- { "rule": "import/order", "severity": "off" },
- { "rule": "prettier/prettier", "severity": "off" },
- { "rule": "react/jsx-sort-props", "severity": "off" },
- { "rule": "sort-keys-fix/sort-keys-fix", "severity": "off" },
- { "rule": "simple-import-sort/exports", "severity": "off" },
- { "rule": "typescript-sort-keys/interface", "severity": "off" }
+ // { "rule": "import/order", "severity": "off" },
+ // { "rule": "prettier/prettier", "severity": "off" },
+ // { "rule": "react/jsx-sort-props", "severity": "off" },
+ // { "rule": "sort-keys-fix/sort-keys-fix", "severity": "off" },
+ // { "rule": "simple-import-sort/exports", "severity": "off" },
+ // { "rule": "typescript-sort-keys/interface", "severity": "off" }
],
"eslint.validate": [
// vscode eslint not 插件兼容性有问题
diff --git a/src/app/[variants]/(main)/settings/stats/features/overview/Welcome.tsx b/src/app/[variants]/(main)/settings/stats/features/overview/Welcome.tsx
index af55288414..f726eadd9b 100644
--- a/src/app/[variants]/(main)/settings/stats/features/overview/Welcome.tsx
+++ b/src/app/[variants]/(main)/settings/stats/features/overview/Welcome.tsx
@@ -59,7 +59,7 @@ const Welcome = memo<{ mobile?: boolean }>(({ mobile }) => {
i18n.language === 'en-US'
? formatEnglishNumber(Number(data?.duration || 1))
: formatIntergerNumber(Number(data?.duration || 1)),
- name: nickname || username,
+ username: nickname || username,
}}
/>
{!mobile && }
diff --git a/src/app/manifest.ts b/src/app/manifest.ts
index 84a6357df6..8cef07a1c0 100644
--- a/src/app/manifest.ts
+++ b/src/app/manifest.ts
@@ -1,10 +1,34 @@
-import { BRANDING_LOGO_URL, BRANDING_NAME } from '@lobechat/business-const';
-import { kebabCase } from 'es-toolkit/compat';
import type { MetadataRoute } from 'next';
-import { manifestModule } from '@/server/manifest';
+const manifest = async (): Promise => {
+ // Skip heavy module compilation in development
+ if (process.env.NODE_ENV === 'development') {
+ return {
+ background_color: '#000000',
+ description: 'LobeChat Development',
+ display: 'standalone',
+ icons: [
+ {
+ sizes: '192x192',
+ src: '/icons/icon-192x192.png',
+ type: 'image/png',
+ },
+ ],
+ name: 'LobeChat',
+ short_name: 'LobeChat',
+ start_url: '/agent',
+ theme_color: '#000000',
+ };
+ }
-const manifest = (): MetadataRoute.Manifest | any => {
+ const [{ BRANDING_LOGO_URL, BRANDING_NAME }, { kebabCase }, { manifestModule }] =
+ await Promise.all([
+ import('@lobechat/business-const'),
+ import('es-toolkit/compat'),
+ import('@/server/manifest'),
+ ]);
+
+ // @ts-expect-error - manifestModule.generate returns extended manifest with custom properties
return manifestModule.generate({
description: `${BRANDING_NAME} brings you the best UI experience for ChatGPT, Claude, Gemini, and OLLaMA.`,
icons: [
diff --git a/src/store/global/initialState.ts b/src/store/global/initialState.ts
index f242fb0287..aba73cae11 100644
--- a/src/store/global/initialState.ts
+++ b/src/store/global/initialState.ts
@@ -53,12 +53,14 @@ export enum SettingsTabs {
Storage = 'storage',
TTS = 'tts',
+ /* eslint-disable typescript-sort-keys/string-enum */
// business
Plans = 'plans',
Funds = 'funds',
Usage = 'usage',
Billing = 'billing',
Referral = 'referral',
+ /* eslint-enable typescript-sort-keys/string-enum */
}
/**