lobehub:🤯 LobeHub is your Chief Agent Operator, organizing your agents into 7×24 operations by hiring, scheduling, and reporting on your entire AI team.

🤯 LobeHub is your Chief Agent Operator, organizing your agents into 7×24 operations by hiring, scheduling, and reporting on your entire AI team.

分支554Tags2874
文件最后提交记录最后更新时间
🔨 chore: add auto creating test workflow (#10030) create auto test mode6 个月前
✨ feat: email provider support resend (#10557) 5 个月前
💄 style: Added `AUTH_MICROSOFT_ENTRA_ID_BASE_URL` routing (#9293) Added AUTH_MICROSOFT_ENTRA_ID_BASE_URL routing7 个月前
🔒 fix(security): prevent prompt injection in Claude workflows (#10585) 5 个月前
🐛 fix: fix code block display issue (#1675) * Update package.json * Delete .husky/commit-msg2 年前
📝 docs(rules): optimize agent rules and documentation structure (#9486) 7 个月前
✨ feat: support TTS & STT (#443) * ✨ feat(tts): Add tts and stt basic features * ✨ feat(tts): Handle error * 💄 style(tts): Add alert to error handler * 🐛 fix(tts): Error display * ♻️ refactor: refactor the openai initial code to the createBizOpenAI * ♻️ refactor(tts): Refactor header config * ✨ feat: Add TTS voice preview * 🐛 fix(tts): Fix header * 🐛 fix: Fix api --------- Co-authored-by: Arvin Xu <arvinx@foxmail.com>2 年前
🐛 fix(desktop): add token refresh retry mechanism (#10575) * 🐛 fix(desktop): add token refresh retry mechanism - Add `async-retry` library for exponential backoff retry - Implement retry logic in RemoteServerConfigCtr.refreshAccessToken() - Retries up to 3 times with exponential backoff (1s, 2s, 4s) - Distinguishes between retryable (network) and non-retryable (invalid_grant) errors - Update AuthCtr to only clear tokens for non-retryable errors - Transient errors now preserve tokens for retry on next cycle - Add isNonRetryableError() helper method This fixes the issue where temporary network problems would cause users to be logged out and require re-authorization. Closes LOBE-1368 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * update * 🐛 fix: treat deterministic failures as non-retryable errors Add deterministic failures to non-retryable error list: - 'No refresh token available' - refresh token missing from storage - 'Remote server is not active or configured' - config invalid/disabled - 'Missing tokens in refresh response' - server returned incomplete response These permanent failures now trigger immediate token clearing and authorizationRequired broadcast instead of infinite retry loop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 📝 docs: clarify issue status workflow - use "In Review" after PR creation - Change workflow to set status to "In Review" when PR is created - "Done" status should only be set after PR is merged - Add note about Linear-GitHub integration for auto status update 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 🐛 fix: add grace period for consumed RefreshToken When rotateRefreshToken is enabled, the old refresh token is consumed when a new one is issued. If the client fails to receive/save the new token (network issues, crashes), the login state is lost. This adds a 3-minute grace period allowing consumed refresh tokens to be reused, giving clients a chance to retry the refresh operation. Changes: - Add REFRESH_TOKEN_GRACE_PERIOD_SECONDS constant (180s) - Modify find() to allow RefreshToken reuse within grace period - Add unit tests for grace period behavior Closes LOBE-1369 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 📝 style: translate adapter test descriptions to English 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>5 个月前
📝 docs(bot): Auto sync agents & plugin to readme 5 个月前
🔨 chore: support to have Redis and providers (#10391) * feat: added redis providers (ioredis, upstash) For environment annotation of Vitest, read more: https://github.com/capricorn86/happy-dom/issues/1042#issuecomment-3585851354 Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com> * chore: changed as suggested --------- Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com>5 个月前
✨ feat: betterauth username signin (#10607) 5 个月前
🔨 chore: integrate code inspector plugin and update turbopack configuration (#10588) * feat: integrate code inspector plugin and update turbopack configuration Signed-off-by: Innei <tukon479@gmail.com> * chore: add e2e env --------- Signed-off-by: Innei <tukon479@gmail.com>5 个月前
🌐 i18n(tr-TR): improve Turkish translations (#10611) 5 个月前
🌐 chore: translate non-English comments to English in packages/database (#10613) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>5 个月前
✨ 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>7 个月前
🔨 chore: environment variable loading with dotenv-expand (#10590) fix: environment variable loading with dotenv-expand Signed-off-by: Innei <tukon479@gmail.com>5 个月前
✅ test: add unit tests for ImportService (#10599) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>5 个月前
♻️ refactor: move utils to separate package (#8889) * move utils * move utils * move utils * update * update * update * update * update * refactor to clean the tests * fix release workflow * fix tests * fix tests * fix tests * fix tests * fix tests * fix tests * try to fix client db migration issue * fix tests8 个月前
chore: use bun in test CI and vercel CD (#192) * :wrench: chore: try bun test ci * :wrench: chore: update installCommand on vercel2 年前
🐛 fix: disable rich text in markdown editor (#9637) * clean * update * add labs * fix * improve * update * fix * hide lab * improve workflow7 个月前
🐛 fix: disable rich text in markdown editor (#9637) * clean * update * add labs * fix * improve * update * fix * hide lab * improve workflow7 个月前
🔨 chore: Add CI to Check `console.log` (#10333) * lint: Clean breakpoints * build: Add CI to check * build: Add `next` branch * build: Remove markdown files * fix: CI hang out * fix: Show warning on GitHub * feat: Send comment * fix: CI error * fix: show file list5 个月前
📝 docs: add some cursor rules & optimize codebase indexing (#7999) * 📝 docs: add some cursor rules & optimize codebase indexing * 📝 docs: some code reviews issue by greptile11 个月前
👷 build: fix docker build (#4008) 1 年前
🔧 chore: Update setting This commit introduces new components, modules, and features related to chat, sessions, and settings. It includes modifications to configuration files, updates to dependencies, adjustments to styles and layouts, and additions of new components and modules. The changes also involve updates to functions, interfaces, selectors, actions, and reducers. Additionally, there are modifications to TypeScript interfaces and types, as well as changes to parameters and functions in certain files. 2 年前
♻️ refactor: remove `NEXT_PUBLIC_SERVICE_MODE` env and use server by default (#10017) * remove NEXT_PUBLIC_SERVICE_MODE * update * fix tests * update e2e workflow * update config * Rename DATABASE_TEST_URL to DATABASE_URL6 个月前
🔨 chore: support to have Redis and providers (#10391) * feat: added redis providers (ioredis, upstash) For environment annotation of Vitest, read more: https://github.com/capricorn86/happy-dom/issues/1042#issuecomment-3585851354 Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com> * chore: changed as suggested --------- Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com>5 个月前
🔨 chore: support to have Redis and providers (#10391) * feat: added redis providers (ioredis, upstash) For environment annotation of Vitest, read more: https://github.com/capricorn86/happy-dom/issues/1042#issuecomment-3585851354 Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com> * chore: changed as suggested --------- Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com>5 个月前
🔨 chore: update lint and TypeScript configs to exclude temporary directories (#8856) - Add tmp, temp, .temp directories to .eslintignore - Add .local, .cache, .claude, .serena directories to .eslintignore - Create .stylelintignore with same ignore patterns - Update tsconfig.json to exclude temporary directories from type checking - Prevents linting and type checking of temporary and AI tool directories8 个月前
✨ feat: support AI Image (#8312) Co-authored-by: canisminor1990 <i@canisminor.cc> 10 个月前
✨ feat: support better-auth (#10215) 5 个月前
💄 style: improve Korean translate (#9597) * update * update * update * update * update * update * update * update * update * update * update7 个月前
🐛 fix: fix duplicate tools id issue and fix link dialog issue (#9731) * add * baseline * ✅ test(store): add tests for discover store plugin and mcp slices - Add comprehensive tests for discover/slices/plugin/action.ts (15 tests) - Add comprehensive tests for discover/slices/mcp/action.ts (11 tests) - Update test-coverage.md with new metrics and completed work - Coverage: 74.24% overall (+26 tests, 2 new test files) - Action files coverage: 29/40 tested (72.5%, +2 files) Features tested: - Plugin/MCP categories, detail, identifiers, and list fetching - SWR key generation with locale and parameters - SWR configuration verification - Service integration with discoverService 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 📝 docs(testing): add SWR hooks testing guide and subagent workflow Testing Guide Updates: - Add comprehensive SWR hooks testing section with examples - Document key differences from regular action tests - Add examples for testing SWR key generation and configuration - Add examples for testing conditional fetching - Update references to include SWR hook test examples Test Coverage Guide Updates: - Add detailed subagent workflow for parallel testing - Document when and how to use subagents for testing - Add complete workflow example using subagents - Add benefits and best practices for subagent usage - Clarify that subagents should NOT commit or update docs - Add step-by-step guide for launching parallel subagents Key improvements: - Better documentation for testing SWR-based store actions - Clear workflow for efficient parallel testing using subagents - Single atomic commit strategy after all subagents complete - Improved testing efficiency and organization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * ♻️ refactor(test): fix SWR mock strategy to properly test fetcher Previously, tests were hardcoding return values instead of calling the fetcher function. This bypassed the actual service call logic. Changes: - Fix useSWR mock to call fetcher and return its Promise - Update assertions to await Promise results - Update testing guide with correct mock pattern - Add explanation of why this approach is correct Before (incorrect): ```typescript useSWRMock.mockImplementation(((key, fetcher) => { fetcher?.(); // Call but ignore result return { data: mockData }; // Hardcoded }) as any); expect(result.current.data).toEqual(mockData); ``` After (correct): ```typescript useSWRMock.mockImplementation(((key, fetcher) => { const data = fetcher?.(); // Get Promise from fetcher return { data }; // Return Promise }) as any); const resolvedData = await result.current.data; expect(resolvedData).toEqual(mockData); ``` Benefits: - ✅ Actually tests the fetcher function - ✅ Mirrors real SWR behavior (data is Promise) - ✅ Service calls are properly verified - ✅ Tests are more accurate and maintainable Updated files: - .cursor/rules/testing-guide/zustand-store-action-test.mdc - src/store/discover/slices/plugin/action.test.ts - src/store/discover/slices/mcp/action.test.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 🐛 fix(test): correct SWR mock strategy to match project standards - Remove useSWR mocking, use real SWR implementation instead - Only mock service methods (fetchers) with vi.spyOn - Use waitFor for async assertions - Update testing guide with correct SWR pattern - Add reference to src/store/chat/slices/message/action.test.ts This fixes the incorrect mocking approach from previous commits. All 13 tests pass with the corrected strategy. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * ✅ test(store): add comprehensive tests for high priority action files - Add mcpStore action tests (41 tests, 624 LOC covered) - MCP plugin installation flow (normal, resume, dependencies, config) - Connection testing (HTTP and STDIO) - Plugin lifecycle management - Error handling and cancellation flows - Add fileManager action tests (35 tests, 205 LOC covered) - File upload and processing workflows - Chunk embedding and parsing - File list management and refresh - SWR data fetching Testing approach: - Used parallel subagents for efficient development - Followed zustand testing patterns from guide - Proper test layering and per-test mocking - All tests pass type-check and lint Coverage improvement: 74.24% → ~76% (+76 tests, 2 files) Action files: 29/40 → 31/40 tested (77.5%) 🏆 Milestone: All high priority files (>200 LOC) now have tests! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * ✅ test(store): complete 100% action file coverage with 160 new tests Added comprehensive tests for all remaining 9 medium-priority action files: Discovery Store (33 tests): - assistant/action.ts: 10 tests (SWR hooks, categories, detail, identifiers, list) - provider/action.ts: 11 tests (SWR hooks, detail with readme, identifiers, list with filters) - model/action.ts: 12 tests (SWR hooks, categories, detail, identifiers, list with params) Knowledge Base Store (29 tests): - crud/action.ts: 19 tests (create, update, remove, refresh, loading states, SWR hooks) - content/action.ts: 10 tests (add files, remove files, error handling) File Store (36 tests): - upload/action.ts: 18 tests (base64 upload, file upload with progress, type detection, KB integration) - chunk/action.ts: 18 tests (drawer management, highlight, semantic search) AI Infrastructure Store (23 tests): - aiModel/action.ts: 23 tests (CRUD, batch operations, remote sync, toggle enabled, SWR hooks) Chat Store (39 tests): - thread/action.ts: 39 tests (CRUD, messaging, AI title generation, validation, loading states) Testing approach: - Used 9 parallel subagents for efficient development - Followed zustand testing patterns from guide - SWR hook testing for discovery slices - Complex async flows with proper error handling - File operations with progress callbacks - Semantic search and RAG integration Coverage improvement: ~76% → ~80% (+160 tests, 9 files) Action files: 31/40 → 40/40 tested (100%) 🎉 MILESTONE: All 40 action files now have comprehensive test coverage! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix test * fix test * fix context-engine * add tests * remove * remove tools bar * pin bun version * fix --------- Co-authored-by: Claude <noreply@anthropic.com>7 个月前
✨ feat: betterauth username signin (#10607) 5 个月前
🐛 fix(files): remove force-static rendering to enable session access (#8900) 8 个月前
🐛 fix: disable rich text in markdown editor (#9637) * clean * update * add labs * fix * improve * update * fix * hide lab * improve workflow7 个月前
💥 feat: try 2.0 next BREAKING CHANGE: starting V2 6 个月前
🐛 fix: disable rich text in markdown editor (#9637) * clean * update * add labs * fix * improve * update * fix * hide lab * improve workflow7 个月前
✨ feat: Update Remark (#5340) * ✨ feat: Update Remark * 📝 docs: Update seo * 🔧 chore: Fix deps * 🔧 chore: Update ui version * 📝 docs: Update docs * ✨ feat: Update @lobehub/ui to 1.163.01 年前
:sparkles: feat: add `gpt-4o-mini` in OpenAI Provider and set it as the default model (#3256) * :sparkles: feat: gpt-4o-mini to openai provider * ♻️ refactor: move gpt-4o-mini as default model * ✅ test: fix test * 🐛 fix: set gpt-4o-mini as default model * chore: improve code * chore: improve code --------- Co-authored-by: arvinxx <arvinx@foxmail.com>1 年前
🔨 chore: update lint and TypeScript configs to exclude temporary directories (#8856) - Add tmp, temp, .temp directories to .eslintignore - Add .local, .cache, .claude, .serena directories to .eslintignore - Create .stylelintignore with same ignore patterns - Update tsconfig.json to exclude temporary directories from type checking - Prevents linting and type checking of temporary and AI tool directories8 个月前
🐛 fix: disable rich text in markdown editor (#9637) * clean * update * add labs * fix * improve * update * fix * hide lab * improve workflow7 个月前
✨ feat: email provider support resend (#10557) 5 个月前
:bookmark: chore(release): v2.0.0-next.160 [skip ci] ## [Version&nbsp;2.0.0-next.160](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.159...v2.0.0-next.160) <sup>Released on **2025-12-05**</sup> <br/> <details> <summary><kbd>Improvements and Fixes</kbd></summary> </details> <div align="right"> [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) </div> 5 个月前
🐛 fix(desktop): add token refresh retry mechanism (#10575) * 🐛 fix(desktop): add token refresh retry mechanism - Add `async-retry` library for exponential backoff retry - Implement retry logic in RemoteServerConfigCtr.refreshAccessToken() - Retries up to 3 times with exponential backoff (1s, 2s, 4s) - Distinguishes between retryable (network) and non-retryable (invalid_grant) errors - Update AuthCtr to only clear tokens for non-retryable errors - Transient errors now preserve tokens for retry on next cycle - Add isNonRetryableError() helper method This fixes the issue where temporary network problems would cause users to be logged out and require re-authorization. Closes LOBE-1368 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * update * 🐛 fix: treat deterministic failures as non-retryable errors Add deterministic failures to non-retryable error list: - 'No refresh token available' - refresh token missing from storage - 'Remote server is not active or configured' - config invalid/disabled - 'Missing tokens in refresh response' - server returned incomplete response These permanent failures now trigger immediate token clearing and authorizationRequired broadcast instead of infinite retry loop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 📝 docs: clarify issue status workflow - use "In Review" after PR creation - Change workflow to set status to "In Review" when PR is created - "Done" status should only be set after PR is merged - Add note about Linear-GitHub integration for auto status update 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 🐛 fix: add grace period for consumed RefreshToken When rotateRefreshToken is enabled, the old refresh token is consumed when a new one is issued. If the client fails to receive/save the new token (network issues, crashes), the login state is lost. This adds a 3-minute grace period allowing consumed refresh tokens to be reused, giving clients a chance to retry the refresh operation. Changes: - Add REFRESH_TOKEN_GRACE_PERIOD_SECONDS constant (180s) - Modify find() to allow RefreshToken reuse within grace period - Add unit tests for grace period behavior Closes LOBE-1369 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * 📝 style: translate adapter test descriptions to English 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>5 个月前
📝 docs: Add topics usage 2 年前
📝 docs: Update PWA & update `pnpm` in CONTRIBUTING (#2148) * 📝 docs: Update PWA & update `pnpm` in CONTRIBUTING * 📝 docs: Update image & callout2 年前
📝 docs: add Vertex AI configuration options and update documentation (#10331) 💄 style: add Vertex AI configuration options and update documentation5 个月前
✨ feat: support better-auth (#10215) 5 个月前
📝 docs: renamed license to LobeHub Community License (#9355) update license7 个月前
📝 docs(bot): Auto sync agents & plugin to readme 5 个月前
📝 docs(bot): Auto sync agents & plugin to readme 5 个月前
🔨 chore: relax codecov with 1% diff threshold (#10326) * chore: relax codecov with 1% diff threshold * Update codecov.yml5 个月前
🔨 chore: support to have Redis and providers (#10391) * feat: added redis providers (ioredis, upstash) For environment annotation of Vitest, read more: https://github.com/capricorn86/happy-dom/issues/1042#issuecomment-3585851354 Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com> * chore: changed as suggested --------- Co-authored-by: Makito <5277268+sumimakito@users.noreply.github.com>5 个月前
♻️ refactor: move database to packages (#8874) * move db * refactor db import * refactor eval types * fix tests * fix tests * fix tests * fix db migration issues * fix docker issue * fix tests * update alias * fix tests * update db test for client and server * refactor db * update codecov * update codecov * update codecov * add docker pr comments8 个月前
👷 build: netlify build 137 error (#5486) 1 年前
🔨 chore: integrate code inspector plugin and update turbopack configuration (#10588) * feat: integrate code inspector plugin and update turbopack configuration Signed-off-by: Innei <tukon479@gmail.com> * chore: add e2e env --------- Signed-off-by: Innei <tukon479@gmail.com>5 个月前
🔨 chore: integrate code inspector plugin and update turbopack configuration (#10588) * feat: integrate code inspector plugin and update turbopack configuration Signed-off-by: Innei <tukon479@gmail.com> * chore: add e2e env --------- Signed-off-by: Innei <tukon479@gmail.com>5 个月前
✅ test: add BDD test framework and initial tests with Playwright and Cucumber (#9843) * try with bdd test * update * update * add workspace * update * fix * ci * ci * fix * update * update * update parallel * update config * ⚡️ perf: increase e2e timeout to 120 seconds Co-authored-by: Arvin Xu <arvinxx@users.noreply.github.com> * update config * more parallel * fix parallel * fix tests * refactor to improve performance * fix * fix * fix * refactor with tsx --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Arvin Xu <arvinxx@users.noreply.github.com>6 个月前
👷 chore: improve renovate config to support grouping in the same way of npm does (#10176) chore(ci): improve renovate config to support grouping in the same way of npm does6 个月前
👷 build: nodejs 24 (#10003) * build: upgrade node 24 * build: run pnpm update * fix: tsgo not support baseUrl6 个月前
👷 chore: pin `bun@1.2.23` to fix vercel build (#9839) pin bun6 个月前
🐛 fix: add SSRF protection (#10152) 6 个月前
项目 README 为空

项目介绍

一款开源、设计现代的 ChatGPT/LLMs 用户界面/框架。具备语音合成、多模态功能,并拥有一个可扩展的插件系统。轻松一键免费部署您的个人 ChatGPT/Gemini/Ollama 聊天应用。【此简介由AI生成】

定制我的领域
29077.6 K15.27 K访问 GitHub

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

TypeScript80.42%
TSX18.04%
HTML0.51%
SQL0.48%
Shell0.22%