Junyan Qin
898144e9f4
fix: remove unused HoverCard imports from DynamicFormItemComponent and clean up ModelsDialog constants
2026-01-01 12:53:39 +08:00
Junyan Qin
b99c5561fc
fix: update cloud service URL retrieval and enhance model synchronization error handling
2026-01-01 12:50:26 +08:00
Junyan Qin
197258ae91
feat: add LangBot Space ChatCompletions requester and integrate with ModelsDialog and EmbeddingForm components
2025-12-30 21:52:52 +08:00
Junyan Qin
9c82eeddeb
feat: add endpoint for retrieving user space credits and implement caching mechanism in UserService
2025-12-29 22:23:11 +08:00
Junyan Qin
f11e01b549
refactor: rename 'allow_change_password' to 'allow_modify_login_info' and update related logic across the application
2025-12-29 21:14:05 +08:00
Junyan Qin
ba5b481617
refactor: simplify theme toggle implementation in HomeSidebar and ThemeToggle components
2025-12-28 22:43:05 +08:00
Junyan Qin
07ad846e96
feat: update dependencies and enhance account settings dialog with password management and improved UI elements
2025-12-28 22:38:11 +08:00
Junyan Qin
24c15b4479
feat: implement account settings dialog for managing user passwords and binding Space accounts
2025-12-26 23:20:51 +08:00
Junyan Qin
1d4c5bbdf1
feat: enhance model abilities display in DynamicFormItem and ModelsDialog components with icons for vision and function call
2025-12-26 20:57:12 +08:00
Junyan Qin
57fcec011d
feat: refactor model management to introduce provider structure, enhancing model organization and retrieval
2025-12-26 20:27:33 +08:00
Junyan Qin
455e3db28d
feat: add Radix UI collapsible component for enhanced UI interactions
2025-12-26 00:49:35 +08:00
Junyan Qin
8caab43b00
feat: add Space integration for user authentication and model management with OAuth support
2025-12-26 00:35:47 +08:00
Junyan Qin
7479545339
feat: implement models dialog for managing LLM and embedding models with dynamic URL handling
2025-12-25 20:54:00 +08:00
Junyan Qin
10ee30695a
feat: add error handling and alert display for model testing in EmbeddingForm and LLMForm
2025-12-24 16:12:41 +08:00
Junyan Qin
a9a262eaae
feat: add new version notification dialog and version comparison logic
2025-12-24 12:43:52 +08:00
Junyan Qin
635c3a04d8
perf: ja-JP translation for New
2025-12-22 18:46:15 +08:00
Junyan Qin
dde97abe38
feat: enhance HomeSidebar with new integration options and updated translations
2025-12-22 18:43:19 +08:00
ce82f87e43
feat: add SeekDB vector database support for knowledge bases ( #1814 )
...
* feat: add SeekDB vector database support for knowledge bases
This commit adds complete integration of OceanBase's SeekDB as a vector
database option for LangBot's knowledge base feature.
## Changes
### Core Implementation
- Add SeekDB adapter implementing VectorDatabase interface
- Support both embedded and server deployment modes
- HNSW indexing with cosine similarity
- Async operations with error handling
- Comprehensive logging
### System Integration
- Register SeekDB in VectorDBManager
- Add pyseekdb>=0.1.0 dependency
- Add SeekDB configuration template
- Update README with vector database section
### Documentation
- Complete integration guide with platform compatibility warnings
- Configuration examples for all deployment modes
- Troubleshooting guide for common issues
- Code examples demonstrating usage patterns
- Comprehensive test reports and status documentation
## Testing
Architecture validated end-to-end using ChromaDB:
- File upload → parsing → chunking → embedding → storage
- 828 bytes → 3 chunks → 3 vectors stored successfully
- BGE-M3 model (384 dimensions)
- Status: Completed ✅
## Platform Compatibility
### Embedded Mode
- ✅ Linux: Fully supported
- ❌ macOS: Not supported (pylibseekdb is Linux-only)
- ❌ Windows: Not supported (pylibseekdb is Linux-only)
### Server Mode
- ✅ Linux: Fully supported
- ⚠️ macOS: Known issue (oceanbase/seekdb#36 )
- ⚠️ Windows: Untested
### Remote Connection
- ✅ All platforms supported
## Known Issues
macOS Docker server mode affected by upstream bug:
https://github.com/oceanbase/seekdb/issues/36
Workaround: Use ChromaDB/Qdrant or connect to remote SeekDB server.
## Files Added
- src/langbot/pkg/vector/vdbs/seekdb.py
- docs/SEEKDB_INTEGRATION.md
- examples/seekdb_example.py
- SEEKDB_INTEGRATION_SUMMARY.md
- SEEKDB_INTEGRATION_COMPLETE.md
- SEEKDB_TEST_STATUS.md
- SEEKDB_FINAL_SUMMARY.md
- SEEKDB_INTEGRATION_DONE.md
- GITHUB_ISSUE_36_COMMENT.md
## Files Modified
- src/langbot/pkg/vector/mgr.py
- src/langbot/pkg/vector/vdbs/__init__.py
- pyproject.toml
- src/langbot/templates/config.yaml
- README.md
- README_EN.md
🤖 Generated with [Claude Code](https://claude.com/claude-code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <[email protected] >
Co-Authored-By: Happy <[email protected] >
* chore: remove unused docs
* feature: minimal seekdb change (#1866 )
* feat: add SeekDB embedding requester and configuration
This commit introduces a new SeekDB embedding requester, which utilizes the local embedding function from pyseekdb. It includes the necessary Python implementation and a corresponding YAML configuration file for integration. Additionally, a new SVG icon for SeekDB is added to enhance the visual representation in the UI.
* fix: update EmbeddingForm to conditionally render URL field based on model provider
This commit modifies the EmbeddingForm component to conditionally display the URL input field only when the current model provider is not 'seekdb-embedding'. Additionally, it updates the condition for rendering the API key field to exclude both 'ollama-chat' and 'seekdb-embedding' providers.
* chore: update Python version requirement in pyproject.toml to support Python 3.11
* fix: add config default value, when it makes fronted not show spec
* fix: seekdb.py clean metadata. change api
* fix: enhance error handling in SeekDB embedding initialization
This commit adds improved error handling to the SeekDB embedding function. It ensures that a RuntimeError is raised if the embedding function fails to initialize, and wraps the embedding call in a try-except block to catch and raise a RequesterError with a descriptive message in case of failure.
* refactor: update SeekDB database management to use AdminClient
This commit refactors the SeekDB database management logic to utilize the AdminClient for database operations. It replaces the previous temp_client with admin_client for listing and creating databases, ensuring a more robust interaction with the SeekDB API.
* refactor: update SeekDB embedding model initialization to use task manager
This commit refactors the SeekDB embedding model initialization by replacing the direct asyncio task creation with the task manager's create_task method. This change enhances task management and provides a clearer naming convention for the embedding model initialization task.
* perf: integration
* chore: remove unnecessary files
* fix: linter errors
---------
Co-authored-by: Claude <[email protected] >
Co-authored-by: Happy <[email protected] >
Co-authored-by: 名为a的全局变量 <[email protected] >
2025-12-20 23:40:30 +08:00
Junyan Qin
adc65f66eb
fix: pipeline duplication bug
2025-12-19 23:27:18 +08:00
ae772074a1
feat: Add configurable password change toggle via system.allow_change_password ( #1869 )
...
* Initial plan
* Add password change toggle feature with config flag
Co-authored-by: RockChinQ <[email protected] >
* Feature implementation complete and validated
Co-authored-by: RockChinQ <[email protected] >
* chore: remove lock
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
2025-12-18 15:14:03 +08:00
dependabot[bot]
16c1e9edd1
chore(deps): bump next from 15.5.7 to 15.5.9 in /web ( #1868 )
...
Bumps [next](https://github.com/vercel/next.js ) from 15.5.7 to 15.5.9.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v15.5.7...v15.5.9 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 15.5.9
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 12:21:02 +08:00
sheetung and Junyan Qin
3ab9ffb7b7
feat(plugins): add plugin new version detection ( #1865 )
...
* feat(plugins): 添加插件更新检测功能
* perf: card style
---------
Co-authored-by: Junyan Qin <[email protected] >
2025-12-18 12:17:25 +08:00
Junyan Qin
b5b5d499e5
feat: add back streaming switch for web chat
2025-12-11 18:54:16 +08:00
Hadong and Junyan Qin
173f9e9c30
feat(lark): 支持商店应用机器人 ( #1855 )
...
* feat(lark): 支持商店应用机器人
* feat(lark): app_type改成select模式,修复select配置无效,按照copilot建议隐藏log敏感信息
* fix: KeyError for backward compatibility
---------
Co-authored-by: Junyan Qin <[email protected] >
2025-12-11 16:54:28 +08:00
Junyan Qin
d210a49fae
fix: react cve
2025-12-10 14:21:41 +08:00
fdc310
e306751863
feat:add lark ubified_webhook and The configuration for the front-end regarding whether to enable webhooks for Lark is displayed. ( #1850 )
2025-12-09 13:30:45 +08:00
Junyan Qin (Chin)
6421a6f5cb
Feat/complete adapter features ( #1849 )
...
* feat: add voice and file supports for wecom
* feat: add and in query variables
* feat: supports for lark recv file message
* feat: kook recv voice msg
* feat: supports for Voice and File in discord
* chore: remove debug msg
* perf: remove unnecessary bot logs
* feat: implement bot log filtering and per label color (#1839 )
* feat: add sender_name and group_name in query variables
2025-12-06 21:11:01 +08:00
Junyan Qin (Chin)
0e2cd8c018
Feat/kook ( #1834 )
...
* feat: add adapter file
* fix: style for bot log
* fix: kook bugs
2025-12-04 13:40:38 +08:00
dependabot[bot]
905e48c8ed
chore(deps): bump next from 15.4.7 to 15.4.8 in /web ( #1836 )
...
Bumps [next](https://github.com/vercel/next.js ) from 15.4.7 to 15.4.8.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v15.4.7...v15.4.8 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 15.4.8
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 11:33:55 +08:00
Junyan Qin
24f779ff95
fix: websocket connect failed in prod env
2025-12-02 17:41:31 +08:00
0aa5188b29
Feat/unified webhook ( #1793 )
...
* fix: wecombot id
* feat: add unified webhook for wecom
* feat: add support for wecombot,wxoa,slack and qqo
* fix: slack adapter
* feat: qqo
* fix: errors when npm lint
* fix: qqo webhook
* feat: add wecomcs
* fix: modify wecomcs
* fix: import errors
* feat: add configurable webhook display prefix (#1797 )
* Initial plan
* Add webhook_display_prefix configuration option
Co-authored-by: RockChinQ <[email protected] >
* perf: change config field name
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
* feat: finish the fxxking line adapter
---------
Co-authored-by: Claude <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
2025-12-01 22:09:20 +08:00
Junyan Qin (Chin)
e49a161d0a
feat: displaying plugin debug info ( #1828 )
2025-12-01 17:59:49 +08:00
Junyan Qin
0ddc3d60e7
fix: incorrect update date in kb card
2025-12-01 14:35:41 +08:00
Junyan Qin
51794176af
perf: add comment for installing KB retriever plugins
2025-12-01 14:04:32 +08:00
b634aa48dc
feat(web): Add markdown rendering support to pipeline chat messages with toggle ( #1826 )
...
* Initial plan
* Add markdown rendering support to pipeline debug dialog messages with toggle button
Co-authored-by: RockChinQ <[email protected] >
* Fix code review feedback: remove conflicting styles and imports
Co-authored-by: RockChinQ <[email protected] >
* perf: styles
* fix: websocket message broadcasting cross-contamination between person and group channels
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
2025-12-01 13:44:01 +08:00
Junyan Qin
16ae8ac546
chore: remove NotFound component from the application
2025-11-30 21:58:28 +08:00
Junyan Qin
c368d828c9
fix: linter error
2025-11-30 14:27:53 +08:00
Junyan Qin
019ae9c216
refactor: remove debug plugin success message from PluginForm and localization files
2025-11-30 14:20:40 +08:00
Junyan Qin (Chin)
b5d192425e
perf: advanced web chat ( #1811 )
...
* perf: supports for quoting message
* feat: add supports for Voice and File
* perf: reply button
2025-11-28 22:25:06 +08:00
Junyan Qin
b53750fde4
feat: add KnowledgeRetriever supports in plugin market
2025-11-28 16:47:55 +08:00
Junyan Qin
52e6135ae8
chore: i18n for knowledge retriever component name
2025-11-28 15:48:27 +08:00
Junyan Qin (Chin)
d09b823c49
refactor: switch webchat from sse to websocket ( #1808 )
...
* refactor: switch webchat from sse to websocket
* perf: image preview dialog
* chore: remove console.log
2025-11-28 14:54:01 +08:00
a8481e43f0
feat: external knowledge bases ( #1783 )
...
* Initial plan
* Add backend support for external knowledge bases
Co-authored-by: RockChinQ <[email protected] >
* Add frontend support for external knowledge bases with tabs UI
Co-authored-by: RockChinQ <[email protected] >
* Add i18n translations for all languages (Traditional Chinese and Japanese)
Co-authored-by: RockChinQ <[email protected] >
* Update knowledge base tab list styling to match plugins page
Co-authored-by: RockChinQ <[email protected] >
* perf: margin-top for kb page
* refactor: switch RetrievalResultEntry to langbot_plugin pkg ones
* feat: knowledge retriever listing and creating
* stash
* refactor: unify sync mechanism for polymorphic components
* feat: use unified retireval result struct in retrieval test page
* chore: remove unused methods
* feat: retriever icon displaying
* feat: localagent retrieval with external kbs
* chore: bump version of langbot-plugin to 0.2.0b1
* fix: i18n
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
2025-11-27 23:19:43 +08:00
3c04eeaff9
perf: API integration dialog height and enable table scrolling ( #1805 )
...
* Initial plan
* Fix API integration dialog height and make tables scrollable
Co-authored-by: RockChinQ <[email protected] >
* Update API integration dialog height for improved layout
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
2025-11-27 11:59:46 +08:00
87131cf03b
Feat/pipeline enable all extensions ( #1807 )
...
* feat: 添加流水线扩展集成"启用所有"选项
为流水线的扩展集成配置添加独立的"启用所有插件"和"启用所有MCP服务器"选项。
主要变更:
- 数据模型:在 extensions_preferences 中添加 enable_all_plugins 和 enable_all_mcp_servers 字段
- 后端逻辑:修改 RuntimePipeline 以支持独立的启用所有选项,当启用时设置为 None 表示使用所有可用资源
- API 接口:更新 GET/PUT /api/v1/pipelines/{uuid}/extensions 以支持新字段
- 前端 UI:为插件和 MCP 服务器分别添加独立的开关控件
- 国际化:添加对应的中文翻译文本
- 默认行为:新创建的流水线默认启用所有插件和 MCP 服务器
🤖 Generated with [Claude Code](https://claude.com/claude-code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <[email protected] >
Co-Authored-By: Happy <[email protected] >
* fix(i18n): add missing translations for pipeline extensions
Added translations for enable all plugins/MCP servers feature:
- en-US: English translations
- ja-JP: Japanese translations
- zh-Hant: Traditional Chinese translations
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <[email protected] >
Co-Authored-By: Happy <[email protected] >
* chore: add migration for enable all extensions config
* fix: bad renaming
---------
Co-authored-by: Claude <[email protected] >
Co-authored-by: Happy <[email protected] >
2025-11-27 11:52:15 +08:00
Junyan Qin
7d51293594
chore: adjust star component style
2025-11-25 10:08:11 +08:00
Junyan Qin
b78b0e50bb
perf: plugin list padding bottom
2025-11-25 09:50:51 +08:00
Copilot and RockChinQ
6b4c1a7dee
fix: plugin card source badge blocked by hover overlay ( #1802 )
...
* Initial plan
* Add View Source menu item and remove clickable source badges
- Add "viewSource" translation key to all language files
- Add View Source menu item to plugin card dropdown (only for GitHub/marketplace plugins)
- Remove onClick handlers and ExternalLink icons from source badges
- Keep the badges themselves for visual indication of plugin source
Co-authored-by: RockChinQ <[email protected] >
* Fix prettier formatting issue in PluginCardComponent
Co-authored-by: RockChinQ <[email protected] >
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
2025-11-25 09:46:37 +08:00
Xiaoyu Su and Junyan Qin
2e1f16d7b4
feat: improvements for installed plugin card
...
* feat:Add README display to installed plugins
* chore: Increase the timeout of call_tool
* perf: smaller animation
* fix: add endpiont for readme
* feat: supports for multilingual READMEs
* feat: supports for getting readme img
* chore: bump langbot-plugin to 0.1.13b1
* perf: plugin card layout
* fix: import useTranslation linter error
---------
Co-authored-by: Junyan Qin <[email protected] >
2025-11-25 00:12:03 +08:00
ace6d62d76
perf: Sort installed plugins: debug plugins first, then by installation time ( #1798 )
...
* Initial plan
* Implement plugin list sorting: debug plugins first, then by installation time
Co-authored-by: RockChinQ <[email protected] >
* Apply ruff formatting
* Add unit tests for plugin list sorting functionality
Co-authored-by: RockChinQ <[email protected] >
* Optimize database query to avoid N+1 problem and update tests
Co-authored-by: RockChinQ <[email protected] >
* Remove redundant assertion in test
Co-authored-by: RockChinQ <[email protected] >
* perf: plugin list sorting
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: RockChinQ <[email protected] >
Co-authored-by: Junyan Qin <[email protected] >
2025-11-23 13:46:45 +08:00