Commit Graph

50 Commits

Author SHA1 Message Date
Innei
07997b44a5 🐛 fix: skew plugin (#12669)
* fix: skew plugin

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(vite): enhance vercelSkewProtection to handle static imports and improve coverage

- Added handling for static import/export declarations to ensure correct deployment links.
- Updated coverage documentation to reflect new handling for static imports and additional cases.
- Adjusted comment numbering for clarity in the processing steps.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: dev proxy

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(AssistantGroup): streamline contentId handling in GroupMessage component

- Simplified the logic for determining contentId by directly using lastAssistantMsg?.id.
- Moved the creation and generation state checks to follow the contentId assignment for better clarity.

Signed-off-by: Innei <tukon479@gmail.com>

* ♻️ refactor: remove chunk error reload retry, keep notification only

Made-with: Cursor

* fix: inject

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2026-03-04 21:47:31 +08:00
Arvin Xu
eef04c499f 💄 style: suppot agent management (#12061)
* feat: improve the inject model context plugins decriptions

fix: change the conversation-flow to change the subAgent message show place

fix: eslint fixed

fix: slove the inject not work problem

feat: add the lost agent management inject open

feat: add the AgentManagementInjector

fix: add the exec task mode & improve the Pre-load agents

fix: improve the executor import way & update the getEffectiveAgentId function

fix: slove the test problem

🐛 fix: support agnet manager ments (#12171)

feat: add the sub agents in context scope to support call subagent

refactor agent management implement

update

add builtin agent management

* fix types

* fix import

* fix test

* fix tests

* fix tests
2026-02-28 13:52:35 +08:00
Innei
687b36c81c ♻️ refactor: migrate frontend from Next.js App Router to Vite SPA (#12404)
* init plan

* 📝 docs: update SPA plan for dev mode Worker cross-origin handling

- Clarified the handling of Worker cross-origin issues in dev mode, emphasizing the need for `workerPatch` to wrap cross-origin URLs as blob URLs.
- Enhanced the explanation of the dev mode's resource URL rewriting process for better understanding.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: Phase 1 - 环境变量整治

- Fix Pyodide env var mismatch (NEXT_PUBLIC_PYPI_INDEX_URL → pythonEnv.NEXT_PUBLIC_PYODIDE_PIP_INDEX_URL)
- Consolidate python.ts to use pythonEnv instead of direct process.env
- Remove NEXT_PUBLIC_ prefix from server-side MARKET_BASE_URL (5 files)

* 🏗️ chore: Phase 2 - Vite 工程搭建

- Add vite.config.ts with dual build (desktop/mobile via MOBILE env)
- Add index.html SPA template with __SERVER_CONFIG__ placeholder
- Add entry.desktop.tsx and entry.mobile.tsx SPA entry points
- Add dev:spa, dev:spa:mobile, build:spa, build:spa:copy scripts
- Install @vitejs/plugin-react and linkedom

* ♻️ refactor: Phase 3 - 第一方包 Next.js 解耦

- Replace next/link with <a> in builtin-tool-web-browsing (4 files, external links)
- Replace next/image with <img> in builtin-tool-agent-builder/InstallPlugin.tsx
- Add Vite import.meta.env compat for isDesktop in const/version.ts, builtin-tool-gtd, builtin-tool-group-management

* ♻️ refactor: Phase 4a - Auth 页面改用直接 next/navigation 和 next/link

- 9 auth files: @/libs/next/navigation → next/navigation
- 5 auth files: @/libs/next/Link → next/link
- Auth pages remain in Next.js App Router, need direct Next.js imports

* ♻️ refactor: Phase 4b - Next.js 抽象层替换为 react-router-dom/vanilla React

- navigation.ts: useRouter/usePathname/useSearchParams/useParams → react-router-dom
- navigation.ts: redirect/notFound → custom error throws
- navigation.ts: useServerInsertedHTML → no-op for SPA
- Link.tsx: next/link → react-router-dom Link adapter (href→to, external→<a>)
- Image.tsx: next/image → <img> wrapper with fill/style support
- dynamic.tsx: next/dynamic → React.lazy + Suspense wrapper

*  feat: Phase 5 - 新建 SPAGlobalProvider

- Create SPAServerConfig type (analyticsConfig, clientEnv, theme, featureFlags, locale)
- Add window.__SERVER_CONFIG__ and __MOBILE__ to global.d.ts
- Create SPAGlobalProvider (client-only Provider tree mirroring GlobalProvider)
- Includes AuthProvider for user session support
- Update entry.desktop.tsx and entry.mobile.tsx to wrap with SPAGlobalProvider

* ♻️ refactor: add SPA catch-all route handler with Vite dev proxy

- Create (spa)/[[...path]]/route.ts for serving SPA HTML
- Dev mode: proxy Vite dev server, rewrite asset URLs, inject Worker patch
- Prod mode: read pre-built HTML templates
- Build SPAServerConfig with analytics, theme, clientEnv, featureFlags
- Update middleware to pass SPA routes through to catch-all

* ♻️ refactor: skip auth checks for SPA routes in middleware

SPA pages are all public (no sensitive data in HTML).
Auth is handled client-side by SPAGlobalProvider's AuthProvider.
Only Next.js auth routes and API endpoints go through session checks.

* ♻️ refactor: replace Next.js-specific analytics with vanilla JS

- Google.tsx: replace @next/third-parties/google with direct gtag script
- ReactScan.tsx: replace react-scan/monitoring/next with generic script
- Desktop.tsx: replace next/script with native script injection

* ♻️ refactor: migrate @t3-oss/env-nextjs to @t3-oss/env-core

Replace framework-specific env validation with framework-agnostic version.
Add clientPrefix where client schemas exist.

* ♻️ refactor: replace next-mdx-remote/rsc with react-markdown

Use client-side react-markdown for MDX rendering instead of
Next.js RSC-dependent next-mdx-remote.

* 🔧 chore: update build scripts and Dockerfile for SPA integration

- build:docker now includes SPA build + copy steps
- dev defaults to Vite SPA, dev:next for Next.js backend
- Dockerfile copies public/spa/ assets for production
- Add public/spa/ to .gitignore (build artifact)

* 🗑️ chore: remove old Next.js route segment files and serwist PWA

- Delete [variants] page.tsx, error.tsx, not-found.tsx, loading.tsx
- Delete root loading.tsx and empty [[...path]] directory
- Delete unused loaders directory
- Remove @serwist/next PWA wrapper from Next.js config

* plan2

*  feat: add locale detection script to index.html for SPA dev mode

* ♻️ refactor: remove locale and theme from SPAServerConfig

*  feat: add [locale] segment with force-static and SEO meta generation

* ♻️ refactor: remove theme/locale reads from SPAGlobalProvider

*  feat: set vite base to /spa/ for production builds

*  feat: auto-generate spaHtmlTemplates from vite build output

* 🔧 chore: register dev:next task in turbo.json for parallel dev startup

* ♻️ refactor: rename (spa) route group to spa segment, rewrite SPA routes via middleware

*  feat: add Vite-compatible i18n/locale modules with import.meta.glob and resolve aliases

* 🔧 fix: use custom Vite plugin for module redirects instead of resolve.alias

* very important

* build

* 🔧 chore: update build scripts and clean up Vite configuration by removing unused plugin and code

Signed-off-by: Innei <tukon479@gmail.com>

* 🗑️ refactor: remove all electron modifier scripts

Modifiers are no longer needed with Vite SPA renderer build.

*  feat: add Vite renderer entry to electron-vite config

Add renderer build configuration to electron-vite, replacing the old
Next.js shadow workspace build flow. Delete buildNextApp.mts and
moveNextExports.ts, update package.json scripts accordingly.

*  feat: add .desktop suffix files for eager i18n loading

Create 4 .desktop files that use import.meta.glob({ eager: true })
for synchronous locale access in Electron desktop builds, replacing
the async lazy-loading used in web SPA builds.

* 🔧 refactor: adapt Electron main process for Vite renderer

Replace nextExportDir with rendererDir, update protocol from
app://next to app://renderer, simplify file resolution to SPA
fallback pattern, update _next/ asset paths to /assets/.

* 🔧 chore: update electron-builder files config for Vite renderer

Replace dist/next references with dist/renderer, remove Next.js
specific exclusion rules no longer applicable to Vite output.

* 🗑️ chore: remove @ast-grep/napi dependency

No longer needed after removing electron modifier scripts.

* 🔧 refactor: unify isDesktop to __ELECTRON__ compile-time constant

Remove NEXT_PUBLIC_IS_DESKTOP_APP and VITE_IS_DESKTOP_APP env vars.
Unify isDesktop in @lobechat/const using __ELECTRON__ defined by Vite.
Re-export from builtin-tool packages. Scripts use DESKTOP_BUILD.

* update

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: use electron-vite ELECTRON_RENDERER_URL instead of hardcoded port 3015

Replace hardcoded http://localhost:3015 with process.env.ELECTRON_RENDERER_URL
injected by electron-vite dev server. Clean up stale Next.js references.

* 🐛 fix: use local renderer-entry shim to resolve Vite root path issue

HTML entry ../../src/entry.desktop.tsx resolves to /src/entry.desktop.tsx
in URL space, which Vite cannot find within apps/desktop/ root. Add a
local shim that imports across root via module resolver instead.

* 🔧 refactor: extract shared renderer Vite config into sharedRendererConfig

Deduplicate plugins (nodeModuleStub, platformResolve, tsconfigPaths) and
define (__MOBILE__, __ELECTRON__, process.env) between root vite.config.ts
and electron.vite.config.ts renderer section.

* 🔧 refactor: move all renderer plugins and optimizeDeps into shared config

sharedRendererPlugins now includes react, codeInspectorPlugin alongside
nodeModuleStub, platformResolve, tsconfigPaths. Add sharedOptimizeDeps
for pre-bundling list. Both root and electron configs consume shared only.

* 🐛 fix: set electron renderer root to monorepo root for correct glob resolution

import.meta.glob with absolute paths (e.g. /node_modules/antd/...) resolved
within apps/desktop/ instead of monorepo root. Change renderer root to ROOT_DIR,
add electronDesktopHtmlPlugin middleware to rewrite / to /apps/desktop/index.html,
and remove the now-unnecessary renderer-entry.ts shim.

* desktop vite !!

Signed-off-by: Innei <tukon479@gmail.com>

* sync import !!

Signed-off-by: Innei <tukon479@gmail.com>

* clean ci!!

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: update SPA path structure and clean up dependencies

- Changed the path in .gitignore and related files from [locale] to [variants] for SPA templates.
- Updated index.html to set body height to 100%.
- Cleaned up package.json by removing unused dependencies and reorganizing devDependencies.
- Refactored RendererUrlManager to use a constant for SPA entry HTML path.
- Removed obsolete route.ts file from the SPA structure.
- Adjusted proxy configuration to reflect the new SPA path structure.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: update build script to include mobile SPA build

- Modified the build script in package.json to add the mobile SPA build step.
- Ensured the build process accommodates both desktop and mobile SPA versions.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: update build scripts and improve file encoding consistency

- Modified the build script in package.json to ensure the SPA copy step runs after the build.
- Updated file encoding in generateSpaTemplates.mts from 'utf-8' to 'utf8' for consistency.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 fix: correct Blob import syntax and update global server config type

- Fixed the Blob import syntax in route.ts to ensure proper module loading.
- Updated the global server configuration type in global.d.ts for improved type safety.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 test: update RendererUrlManager test to reflect new file path

- Modified the mock implementation in RendererUrlManager.test.ts to check for the updated file path '/mock/export/out/apps/desktop/index.html'.
- Adjusted the expected resolved path in the test to match the new structure.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: remove catch-all example file and update imports

- Deleted the catch-all example file `catch-all.eg.ts` to streamline the codebase.
- Updated import paths in `ClientResponsiveLayout.tsx` and `ClientResponsiveContent/index.tsx` to use the new dynamic import location.
- Added type declarations for HTML templates in `spaHtmlTemplates.d.ts`.
- Adjusted `tsconfig.json` to include the updated file structure.
- Enhanced type definitions in `global.d.ts` and fixed locale loading in `locale.vite.ts`.

Signed-off-by: Innei <tukon479@gmail.com>

* e2e

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: remove unused build script for Vercel deployment

- Deleted the `build:vercel` script from package.json to streamline the build process.
- Ensured the remaining build scripts are organized and relevant.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 config: update Vite build input for mobile support

- Changed the build input path in vite.config.ts to conditionally use 'index.mobile.html' for mobile builds, enhancing support for mobile SPA versions.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 feat: add compatibility checks for import maps and cascade layers

- Implemented functions to check for browser support of import maps and CSS cascade layers.
- Redirected users to a compatibility page if their browser does not support the required features.
- Updated the build script in package.json to use the experimental analyze command for better performance.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: rename

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 feat: refactor authentication layout and introduce global providers

- Created a new `RootLayout` component to streamline the layout structure.
- Removed the old layout file for variants and integrated necessary features into the new layout.
- Added `AuthGlobalProvider` to manage authentication context and server configurations.
- Introduced language and theme selection components for enhanced user experience.
- Updated various components to utilize the new context and improve modularity.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 config: exclude build artifacts from serverless functions

- Updated the `next.config.ts` to exclude SPA, desktop, and mobile build artifacts from serverless functions.
- Added paths for `public/spa/**`, `dist/**`, `apps/desktop/build/**`, and `packages/database/migrations/**` to the exclusion list.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 config: refine exclusion of build artifacts from serverless functions

- Updated `next.config.ts` to specify exclusion paths for desktop and mobile build artifacts.
- Changed exclusions from `dist/**` and `apps/desktop/build/**` to `dist/desktop/**`, `dist/mobile/**`, and `apps/desktop/**` for better clarity and organization.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 fix: update BrowserRouter basename for local development

- Modified the `ClientRouter` component to conditionally set the `basename` of `BrowserRouter` based on the `__DEBUG_PROXY__` variable, improving local development experience.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 feat: implement mobile SPA workflow and S3 asset management

- Added a new workflow for building and uploading mobile SPA assets to S3, including environment variable configurations in `.env.example`.
- Updated `package.json` to include a new script for the mobile SPA workflow.
- Enhanced the Vite configuration to support dynamic CDN base paths.
- Refactored the template generation script to handle mobile HTML templates more effectively.
- Introduced new modules for uploading assets to S3 and generating mobile HTML templates.

Signed-off-by: Innei <tukon479@gmail.com>

* 🐛 fix: extract origin from MOBILE_S3_PUBLIC_DOMAIN to prevent double key prefix

* 🔧 fix: update mobile HTML template to use the latest asset versions

- Modified the mobile HTML template to reference the updated JavaScript asset version for improved functionality.
- Ensured consistency in the template structure while maintaining existing styles and scripts.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: update dependencies and refine service worker integration

- Removed outdated dependencies related to Serwist from package.json and tsconfig.json.
- Added vite-plugin-pwa to enhance PWA capabilities in the Vite configuration.
- Updated service worker registration logic in the PWA installation component.
- Introduced a new local development proxy route for debugging purposes.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: refactor development scripts and remove Turbo configuration

- Updated the `dev` script in `package.json` to use a new startup sequence script for improved development workflow.
- Removed the outdated `turbo.json` configuration file as it is no longer needed.
- Introduced `devStartupSequence.mts` to manage the startup of Next.js and Vite processes concurrently.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 feat: update entry points and introduce debug proxy for local development

- Changed the main entry point in `index.html` from `entry.desktop.tsx` to `entry.web.tsx` for improved web compatibility.
- Added an `initialize.ts` file to enable `immer`'s `enableMapSet` functionality.
- Introduced a new `__DEBUG_PROXY__` variable in global types to support local development proxy features.
- Implemented a debug proxy route to facilitate local development with dynamic HTML injection and script handling.
- Removed outdated mobile routing components to streamline the codebase.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: replace BrowserRouter with RouterProvider for improved routing

- Updated entry points for desktop, mobile, and web to utilize RouterProvider and createAppRouter for better routing management.
- Removed the deprecated renderRoutes function in favor of a more streamlined router configuration.
- Enhanced router setup to support error boundaries and dynamic routing.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: remove direct access handling for SPA routes in proxy configuration

- Eliminated the handling of direct access to pre-rendered SPA pages in the proxy configuration.
- Simplified the request processing logic by removing checks for SPA routes, streamlining the middleware response flow.

Signed-off-by: Innei <tukon479@gmail.com>

* update

* 🔧 refactor: enhance Worker instantiation logic in mobile HTML template

* 🐛 fix: remove duplicate waitForPageWorkspaceReady calls in page CRUD e2e steps

* 🔧 refactor: simplify createTracePayload function by using btoa for base64 encoding

* 🔧 refactor: specify locales in import.meta.glob for dayjs and antd

* 🔧 refactor: replace Node.js Buffer with web-compatible btoa for base64 encoding in file upload

* 🐛 fix: disable consistent-type-imports rule for mdx files to prevent eslint crash

* 🔧 refactor: add height style to root div for consistent layout

* 🔧 refactor: replace btoa with Buffer for base64 encoding in trace and file upload handling

* 🔧 refactor: extract nextjsOnlyRoutes to a separate file for better organization

* 🔧 refactor: enable Immer MapSet plugin in tests for better state management

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 refactor: integrate sharedRollupOutput configuration and increase cache size for better performance

Signed-off-by: Innei <tukon479@gmail.com>

* 🗑️ chore: remove obsolete desktop.routes.test.ts file as it is no longer needed

Signed-off-by: Innei <tukon479@gmail.com>

* 🐛 fix: use cross-env for env vars in npm scripts (Windows CI)

Co-authored-by: Cursor <cursoragent@cursor.com>

* 🔧 chore: update Dockerfile for web-only build and adjust npm scripts to use pnpm

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: enhance Dockerfile prebuild process with environment checks and add new dependencies

- Updated Dockerfile to include environment checks before removing desktop-only code.
- Added new dependencies in package.json: @aws-sdk/client-bedrock-runtime, @opentelemetry/auto-instrumentations-node, @opentelemetry/resources, @opentelemetry/sdk-metrics, and ajv.
- Configured Rollup to exclude @aws-sdk/client-bedrock-runtime from the SPA bundle.
- Introduced dockerPrebuild.mts script for environment variable validation and information logging.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: enhance Vite and Electron configurations with environment loading and trace encoding improvements

- Updated Vite and Electron configurations to load environment variables using loadEnv.
- Modified trace encoding in utils to use TextEncoder for better compatibility.
- Adjusted sharedRendererConfig to expose only necessary public environment variables.

Signed-off-by: Innei <tukon479@gmail.com>

* 🗑️ chore: remove plans directory (migrated to discussion)

* ♻️ refactor: inject NEXT_PUBLIC_* env per key in Vite define

Co-authored-by: Cursor <cursoragent@cursor.com>

*  feat: add loading screen with animation to enhance user experience

- Introduced a loading screen with a brand logo and animations for better visual feedback during loading times.
- Implemented CSS styles for the loading screen and animations in index.html.
- Removed the loading screen from the DOM once the layout is ready using useLayoutEffect in SPAGlobalProvider.

Signed-off-by: Innei <tukon479@gmail.com>

* 🗑️ chore: remove unnecessary external dependency from Vite configuration

- Eliminated the external dependency '@aws-sdk/client-bedrock-runtime' from the Vite configuration to streamline the build process for the SPA bundle.

Signed-off-by: Innei <tukon479@gmail.com>

*  feat: add web app manifest link in index.html and enable PWA support in Vite configuration

- Added a link to the web app manifest in index.html to enhance PWA capabilities.
- Enabled manifest support in Vite configuration for improved service worker functionality.

Signed-off-by: Innei <tukon479@gmail.com>

* 🔧 chore: update link rel attributes for improved SEO and consistency

- Modified link rel attributes in multiple components to remove 'noreferrer' and standardize to 'nofollow'.
- Adjusted imports in PageContent components for better organization.

Signed-off-by: Innei <tukon479@gmail.com>

* update provider

*  feat: enhance loading experience and update package dependencies

- Added a loading screen with animations and a brand logo in index.html for improved user feedback during loading times.
- Introduced CSS styles for the loading screen and animations.
- Updated package.json files across multiple packages to include "@lobechat/const" as a dependency.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: update proxy

Signed-off-by: Innei <tukon479@gmail.com>

* 🗑️ chore: remove GlobalLayout and Locale components

- Deleted GlobalLayout and Locale components from the GlobalProvider directory to streamline the codebase.
- This removal is part of a refactor to simplify the layout structure and improve maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: clean up console logs and improve component structure

- Removed unnecessary console log statements from AgentForkTag components in both agent and community directories to enhance code cleanliness.
- Refactored UserAgentList component for better readability by restructuring the useUserDetailContext hook and adjusting the layout of Flexbox components.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: remove console log from MemoryAnalysis component

* chore: update mobile HTML template with new asset links

- Replaced the previous asset links in the mobile HTML template with updated versions to ensure the latest resources are utilized.
- Adjusted the link rel attributes for module preloading to enhance performance and loading efficiency.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: correct variable assignment in createClientTaskThread integration test

- Updated the assignment of the second parent message in the createClientTaskThread integration test to improve clarity and ensure proper data handling.
- Changed the variable name from 'secondParentMsg' to 'inserted' for better context before extracting the first message from the inserted results.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: simplify authentication check in define-config

- Removed the dependency on the isDesktop variable in the authentication check to streamline the logic.
- Enhanced the clarity of the redirection process for protected routes by focusing solely on the isLoggedIn status.

Signed-off-by: Innei <tukon479@gmail.com>

*  feat(dev): enhance local development setup with debug proxy instructions

- Added detailed instructions for starting the development environment in CLAUDE.md, including commands for SPA and full-stack modes.
- Updated README.md and README.zh-CN.md to reflect new commands and the debug proxy URL for local development.
- Introduced a Vite plugin to print the debug proxy URL upon server start, facilitating easier local development against the production backend.
- Corrected the debug proxy route in entry.web.tsx and define-config.ts for consistency.

This improves the developer experience by providing clear guidance and tools for local development.

Signed-off-by: Innei <tukon479@gmail.com>

* optimize perf

* optimize perf

* optimize perf

* remove speedy plugin

* add dayjs vendor

* Revert "remove speedy plugin"

This reverts commit bf986afeb1.

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-28 00:01:01 +08:00
René Wang
bbbe3a8d09 feat: add banner (#12258)
* feat: add banner

* fix: type error
2026-02-12 21:22:21 +08:00
CanisMinor
01cf4e44fa 💄 style: update og (#11709)
style: update og
2026-01-22 20:08:21 +08:00
René Wang
d92550cbd2 feat: dynamic favicon (#11603)
* feat: dynamic favicon

* feat: dynamic favicon

* feat: dynamic favicon

* feat: dynamic favicon
2026-01-19 15:59:39 +08:00
Innei
8be32c2f32 feat: Add browser compatibility detection and fallback page (#11309)
*  feat: Add browser compatibility detection and fallback page

- Add automatic browser compatibility check in app layout
- Create standalone not-compatible.html fallback page with modern responsive design
- Support dark mode via prefers-color-scheme
- Include browser download links (Chrome, Firefox, Edge, Safari, Arc)
- Display minimum browser requirements
- Update feature development documentation

* 📝 docs(CLAUDE): Update PR Linear Issue Association guidelines

- Clarify the requirement to include magic keywords in PR body for Linear issues.
- Add instruction to summarize work done in the Linear issue comment and update the issue status to "In Review".

Signed-off-by: Innei <tukon479@gmail.com>

*  feat: Update browser compatibility page and layout

- Change favicon link to absolute path in not-compatible.html.
- Add Safari browser support with corresponding icon and link.
- Update minimum browser requirements to Chrome 99+, Safari 16.4+, and Edge 99+.
- Fix typo in layout.tsx comments from "serveral" to "several".

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-07 23:00:52 +08:00
canisminor1990
89597a85bf style: update community footer and modal 2025-12-24 17:07:10 +08:00
arvinxx
2da0691d4e 🔧 chore: update basic config 2025-12-24 12:54:35 +08:00
Rdmclin2
8c42a934b3 feat: mobile native better auth support (#10871)
* feat: mobile native better auth support

* chore: add android assetlinks

* chore: add android assetlinks

* chore: add expo fingerpoint

* chore: add relation

* chore: add android origin hash

* chore: update passkey table

* chore: optimize version

* chore: remove as any

* fix: sql not exits problem

* fix: passkey statement

* fix:  passkey origin null

* chore: remove strict peer dependencies

* fix: test case

* chore: remove local passkey origin
2025-12-23 15:19:42 +08:00
René Wang
03c28385e5 feat: support Group Chat, Mention, and Multi-Agent Orchestration with feature flag (#8976)
* feat: implement group chat functionality

* fix

* update

* revert pglite mock

* fix: Add missing test

* fix mention

* fix mention

* lint: Clear unused varibles

* fix: type check

* fix: Coverage

* build: Add missing test

* fix: add mention back

* fix: Add missing test

* fix: Add test for topic

* feat: Group chat fallback style

* fix: Revert unncessary files

* fix: circular deps

* feat: tool usage

* fix: Replace debug info

* feat: Update i18n

* opti: Better prompr

* fix claude

* feat: Filter model without function calling

* fix: DM reduction

* lint: Address build error

* fix: Test error

* feat: Store model info

* style: Clean up welcome messaeg

* feat: Use new welcome message

* fix: inbox not working

* fix: inbox not working

* fix: type error

* feat: Optimize prompt

* fix: Revert unintentional changes

* lint: Remove unused code

* fix: better test

* fix: Use debug

* refact: Move normalization postion

* opti: Better prompt

* opti: Better prompt

* opti: Better prompt

* lint: Clear console.log

* fix: Update test snap

* fix: test error

* fix: Unexpectly test fail

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2025-10-16 22:16:40 +08:00
René Wang
2f7317b98f 🔨 style: Use different favicon.ico in dev mode (#9723) 2025-10-15 14:47:37 +02:00
CanisMinor
8afb4e2981 perf: Use nextjs pwa feat to gen manifest file (#4042)
*  perf: Use nextjs pwa feat to gen manifest file

* 🐛 fix: Fix review problem

*  test: Add test

* 💄 style: Update next config

* 🐛 fix: Fix test config

* 💄 style: Update layout
2024-09-21 14:58:13 +08:00
Arvin Xu
815b366b20 ♻️ refactor: refactor brand implement for better custom (#3868)
* ♻️ refactor: refactor the branding

* ♻️ refactor: refactor the branding

* ♻️ refactor: refactor the branding to support different logo

* 🧑‍💻 style: support commercial flag to hide docs and github url

* 🧑‍💻 style: support commercial flag to hide docs and github url

*  test: fix tests

* ♻️ refactor: hide about with hideDocs env
2024-09-10 00:34:18 +08:00
Rubu Jam
fbc488e994 ️ perf: optimize Cache-Control (#2848) 2024-06-17 21:58:08 +08:00
CanisMinor
19fd4d57d7 💄 style: remove r2 cdn url (#2878)
* 💄 style: Remove r2 cdn url

* 💄 style: Update SettingContainer

* 🔧 chore: Move share setting components
2024-06-17 14:58:43 +08:00
Arvin Xu
2f311dc4b6 🗃️ refactor: migrate some agent config to chatConfig (#2646)
* 🗃️ refactor: refactor the agent config to chat config

*  test: fix test

* 🗃️ refactor: add db migration

*  test: fix test
2024-05-25 10:09:28 +08:00
CanisMinor
6e9c69a8f6 💄 style: add PWA install and metadata & ld generate (#2438)
*  feat: Add PWA install button

* 🐛 fix: Fix review problem

* 🐛 fix: Fix review problem

* 🔧 chore: Update i18n

* 🔧 chore: Update metadata

* 🐛 fix: Fix preview problem

* 🐛 fix: Fix title

* 🔧 chore: Update pwa i18n
2024-05-13 20:36:16 +08:00
Rubu Jam
4e96bda9a1 💄 style : Convert some ico files from online to local. (#2094)
* 💄 style : ico files from online to local

* 💄 style : ico files from online to local

* 💄 style : Convert some ico files from online to local.

* Optimize some code
2024-04-19 20:48:13 +08:00
Arvin Xu
a2542a7d92 🐛 fix: fix sitemap config 2024-03-08 04:25:03 +00:00
Arvin Xu
0db8c268e2 ️ perf: improve pages a11y (#1353)
* ️ fix: improve a11y

* ️ perf: improve logo

* ️ perf: improve viewport scale

* ️ perf: improve a11y for settings page

* 🌐 chore: update i18n
2024-02-22 20:54:12 +08:00
arvinxx
c4adfe44d3 🐛 fix: fix the robots.txt config 2024-02-21 21:39:28 +08:00
arvinxx
34901b40d5 🐛 fix: fix the robots.txt config 2024-02-20 22:45:43 +08:00
Arvin Xu
79be7afed7 🔍️ perf: add sitemap and robot.txt to improve SEO (#1337)
* 🔍️ fix: add sitemap and robots.txt

* 🐛 fix: fix canonical url

* 🐛 fix: fix canonical url

* 🐛 fix: fix canonical url

* 🐛 fix: fix deploy url

* 🐛 fix: fix canonical url

* 🐛 fix: fix the robots config
2024-02-20 21:33:10 +08:00
canisminor1990
44a5f0a87e 💄 style: Fix some styles and make updates to various files
- Add new files related to chat, market, settings, and plugin development
- Modify code in certain files to add functionality and improve performance
- Update URLs and add links to external resources
- Add styles to components for improved appearance
- Update descriptions and improve user experience

This commit introduces new features, updates existing code, and enhances the overall functionality and appearance of the codebase.
2023-10-28 14:35:54 +08:00
canisminor1990
8a794f93a8 💄 style: Add guide to market page 2023-10-28 13:54:55 +08:00
canisminor1990
87a4a469dc 💄 style: Add new components, modify display properties, and update settings feature
This commit introduces new components, modifies display properties, and updates the settings feature. It also includes changes to translations and styling. Additionally, a condition is added to check if the app is a progressive web app before rendering a specific component.
2023-10-11 00:58:11 +08:00
canisminor1990
57512a0745 feat: Add ja_JP, ko_KR and update workflow 2023-10-10 22:21:28 +08:00
canisminor1990
89c5648544 ♻️ refactor: Refactor settings page and mobile ux 2023-09-29 03:41:32 +08:00
canisminor1990
f5d21f4fc6 feat(share): Add screenshot (#152) 2023-09-27 23:49:46 +08:00
canisminor1990
abba584535 feat: Improve user experience and ensure consistency
- Update CSS styles for improved visual appearance
- Add new file for language switching functionality
- Modify package metadata for better organization
- Update language settings for localization support
- Refactor "GlobalStyle" component for consistency

These changes were made to enhance the user experience and maintain consistency in the application. The CSS styles were updated to improve the visual appearance of the application. A new file was added to enable language switching functionality. Package metadata was modified for better organization. Language settings were updated to support localization. The "GlobalStyle" component was refactored to ensure consistency throughout the application.
2023-09-27 16:16:02 +08:00
canisminor1990
2adfb0435e 💄 style: Fix safeare in mobile 2023-09-27 14:25:49 +08:00
canisminor1990
a71ffff84f 💄 style(meta): Update meta image (#66) 2023-09-25 17:54:42 +08:00
canisminor1990
c872522b9e 💄 style(meta): Fix and add metadata 2023-09-25 15:50:49 +08:00
canisminor1990
1543bd15f8 feat: Add new features and improve user interface and functionality
The changes include modifying JSON files for chat settings in English and Chinese, renaming and adding image files, creating new code files for a component called "SelectWithImg" and corresponding styling files. The code also includes importing and using different components, updating styles, modifying placeholder text, and defining CSS styles for positioning and styling elements. The "Settings" component uses state to manage the active tab and renders different components based on the selected tab, and includes a logo and version information.

Changes made:
- Modifications to JSON files for chat settings in English and Chinese
- Renaming and adding image files
- Creating new code files for the "SelectWithImg" component
- Creating corresponding styling files
- Importing and using different components
- Updating styles
- Modifying placeholder text
- Defining CSS styles for positioning and styling elements
- Managing active tab and rendering different components in the "Settings" component
- Adding a logo and version information.
2023-08-16 00:26:45 +08:00
canisminor1990
b9f267ccde feat: Add topic empty
Add new translations, modify titles and descriptions, and add new components to the project. Changes involve localization files, image files, and code files.
2023-08-04 18:36:13 +08:00
arvinxx
ea9e8de26c 🍱 style: update manifest 2023-07-23 14:31:37 +08:00
arvinxx
8aad92d67b feat: 支持 pwa 模式 2023-07-22 20:54:35 +08:00
Arvin Xu
390ebfec80 🐛 fix: 使用 client 加载 i18n 以解决 nextjs 集成问题 (#10)
* 🐛 fix: 尝试使用原始 i18n 加载方式

* 🏷️ chore: fix type

* 🔥 chore: clean file

* ♻️ refactor: 清理项目,优化路径依赖关系

* 🚨 chore: fix lint
2023-07-17 22:56:51 +08:00
canisminor1990
9a13ec0a78 🐛 fix: Fix ssr 2023-07-17 13:04:36 +08:00
canisminor1990
a51cc0cf9f 🐛 fix: Fix ssr 2023-07-17 11:08:10 +08:00
canisminor1990
4a1995f995 feat: Add and modify settings page, update Header styles, and improve useTranslation hook
This commit introduces changes to the setting.json, index.page.tsx, and Header.tsx files. The settings page is enhanced by adding, removing, and modifying settings and their descriptions. The Header component's styles are updated, and improvements are made to the useTranslation hook. Additionally, a new file called SettingForm.tsx is added, which defines a component for retrieving current settings and translations. The index.page.tsx file is updated to display translated text and import/render the SettingForm component. The settings.ts and action.ts files are deleted, and a new index.ts file is added to define the settings store using Zustand. The store includes initial state, selectors, and actions related to the settings.

Changes:
- Modifications to setting.json, index.page.tsx, and Header.tsx files
- Addition, removal, and modification of settings and descriptions on the settings page
- Updates to the styles of the Header component
- Improvements to the useTranslation hook
- Addition of SettingForm.tsx file for retrieving settings and translations
- Update of index.page.tsx to display translated text and import/render SettingForm component
- Deletion of settings.ts and action.ts files
- Addition of index.ts file to define settings store using Zustand, including initial state, selectors, and actions related to the settings.
2023-07-16 23:22:26 +08:00
arvinxx
d95027d42b feat: 增加不同模型 2023-07-16 20:52:35 +08:00
arvinxx
47b316cd43 feat: 优化设置页 2023-07-16 17:12:29 +08:00
canisminor1990
d3916e8d52 🔧 chore: Merge 2023-07-16 16:00:18 +08:00
canisminor1990
88d837fe41 feat(wip): Add setting page
- Update dependencies and add localization settings
- Modify behavior of certain components
- Restructure layout and components of chat page
- Add new setting page
- Implement server-side translation support
- Import necessary dependencies for code
- Import and export JSON files as resources
- Define "NS" type based on imported resources

The changes aim to introduce new features to the code repository, including updates to dependencies, localization settings, modification of component behavior, restructuring of the chat page, addition of a new setting page, implementation of server-side translation support, and necessary imports for dependencies. JSON files are also imported and exported as resources, defining a new type called "NS".
2023-07-16 15:53:30 +08:00
arvinxx
e9560a8aef feat: agent profile 2023-07-16 15:40:06 +08:00
canisminor1990
cef01c0263 feat: Introduce new features and styles for chat application
The changes include importing new components, modifying existing styles, and introducing new components. The code snippets provided show changes made to various files in a chat application, including changes to ActionIcon components, header components, session item components, and the structure and styling of the chat session list component. The code changes also involve the addition of new files for CSS overrides and global styles, as well as modifications to index pages and chat session selectors.

The purpose of these changes is to enhance the functionality and user experience of the chat application by introducing new features and improving the overall styling.
2023-07-15 21:36:50 +08:00
canisminor1990
53cd87c8ba feat(i18n): Add i18next and lobe-i18n internationalization configuration files and update dependencies
This commit introduces new configuration files for internationalization,
deletes one file, modifies existing files, and adds new files. The changes
also involve importing dependencies and updating app and document pages.
Additional libraries and modules are used in a React application. The Header
component is modified, the index page is updated for server-side translations,
and the tsconfig.json file is modified.

Description:
- Added configuration files for internationalization
- Deleted one file
- Modified existing files
- Added new files
- Imported dependencies
- Updated app and document pages
- Used additional libraries and modules in a React application
- Modified the Header component
- Updated the index page for server-side translations
- Modified the tsconfig.json file.
2023-07-15 18:22:47 +08:00
arvinxx
dfaccbe493 Initial commit
Created from https://vercel.com/new
2023-05-21 07:19:20 +00:00