Junyan Qin
daf56e5dc2
fix: test failed
2025-12-05 22:54:13 +08:00
Yaguang.Wang
cb7c9af25c
feat: Expanded WeCom message parsing to capture msgtype, inline voice/video… ( #1843 )
...
* Expanded WeCom message parsing to capture msgtype, inline voice/video/file/link data, bounded base64 downloads, and richer mixed-message attachments (src/langbot/libs/wecom_ai_bot_api/api.py); added event accessors for new fields (src/langbot/libs/wecom_ai_bot_api/wecombotevent.py).
Converter now maps richer WeCom payloads (text, images, files, voice, video, links) into platform message chain with fallbacks when nothing parsable is present (src/langbot/pkg/platform/sources/wecombot.py).
Preprocessor now turns voice inputs into file URLs for downstream runners (src/langbot/pkg/pipeline/preproc/preproc.py).
Dify runner uploads all incoming files (images/audio/video/docs) after downloading or decoding data URLs, infers MIME types, and passes typed file descriptors into chat/workflow calls (src/langbot/pkg/provider/runners/difysvapi.py).
* Update src/langbot/pkg/platform/sources/wecombot.py
Fixed the issue of duplicate text in the comments.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/langbot/libs/wecom_ai_bot_api/api.py
Modify the way you approach challenges.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/langbot/pkg/platform/sources/wecombot.py
Changing the variable names makes more sense.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* feat: use from_base64 for the voice file converting
---------
Co-authored-by: tabriswang <tabriswang@finecomn.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-12-05 22:33:15 +08:00
Junyan Qin
45e61befac
fix: test failed
2025-12-05 22:30:44 +08:00
Junyan Qin
ea50ba10e6
perf: add en name in the wecom manifest
2025-12-05 21:28:56 +08:00
Junyan Qin
5c4a727e74
feat: make all db migrations SQL-only
2025-12-05 21:00:04 +08:00
Junyan Qin
867f05c4ad
perf: make the timeout of emit_event 180s
2025-12-05 20:59:37 +08:00
Junyan Qin
b06b32306f
feat: remove all unnecessary fields in GroupMember and implement MessageEvent field for pipeline events
2025-12-05 17:24:58 +08:00
Junyan Qin
dbfcb70f8d
fix: sender_id not presented to Session
2025-12-05 17:13:30 +08:00
Junyan Qin
e64d56c4ac
fix: bad protocol of default plugin debug url
2025-12-05 16:06:56 +08:00
Bruce
8f0da7943c
Remove plugins volume from docker-compose ( #1842 )
2025-12-05 11:28:04 +08:00
Junyan Qin
e62ff7e520
fix: deps issues
2025-12-04 23:07:55 +08:00
Junyan Qin (Chin)
86e951916e
feat: add milvus and pgvector as vector db ( #1840 )
...
* feat: add milvus and pgvector as vector db
* chore: update config.yaml template delete comments
2025-12-04 22:34:49 +08:00
Junyan Qin
6bf08466de
chore: bump version 4.6.2
v4.6.2
2025-12-04 20:30:02 +08:00
Junyan Qin
5e36dd480d
docs: add KOOK in README
2025-12-04 13:56:56 +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
Junyan Qin (Chin)
b4f92eba38
feat(platform): add skip_pipeline parameter for webhook responses ( #1837 )
...
* feat(platform): add skip_pipeline parameter for webhook responses
Add support for skip_pipeline parameter in webhook responses, allowing
webhook targets to instruct LangBot to skip pipeline processing for
specific messages. When a webhook responds with skip_pipeline=true,
the message is treated as a notification only and bypasses the query pool.
Changes:
- webhook_pusher.py: Parse JSON responses and return skip_pipeline flag
- botmgr.py: Check skip_pipeline before adding messages to query pool
- docker-compose.yaml: Add DNS configuration to fix container networking
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
* fix: webhook crud bug
* chore: revert docker-compose.yaml
---------
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-04 13:40:26 +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] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 11:33:55 +08:00
Junyan Qin
10ec79312e
chore: bump version 4.6.1
v4.6.1
2025-12-02 17:43:38 +08:00
Junyan Qin
24f779ff95
fix: websocket connect failed in prod env
2025-12-02 17:41:31 +08:00
Junyan Qin
08c0677de9
chore: bump version 4.6.0
v4.6.0
2025-12-02 13:58:08 +08:00
Junyan Qin
cc5d32cf8a
chore: bump langbot-plugin to 0.2.0
2025-12-01 22:15:38 +08:00
Junyan Qin
01a5133396
chore: update docker-compose.yaml
2025-12-01 22:14:38 +08:00
Guanchao Wang
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 <45992437+RockChinQ@users.noreply.github.com >
* perf: change config field name
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
* feat: finish the fxxking line adapter
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
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
Copilot
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 <45992437+RockChinQ@users.noreply.github.com >
* Fix code review feedback: remove conflicting styles and imports
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: styles
* fix: websocket message broadcasting cross-contamination between person and group channels
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
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
Copilot
1ecb0735cb
perf: Filter plugins by component types in pipeline extensions ( #1821 )
...
* Initial plan
* Add component-kind filtering to list_plugins and filter pipeline extensions to only show plugins with Command, EventListener, or Tool components
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* fix: testing path
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-30 20:55:48 +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
Copilot
580d9441a4
fix: increase execute_command timeout from 60s to 180s ( #1813 )
...
* Initial plan
* fix: increase execute_command timeout from 60s to 180s
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
2025-11-28 23:07:55 +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
Copilot
58312deb8c
fix: command return value image_url handling for DingTalk, Slack, LINE, and Lark adapters ( #1810 )
...
* Initial plan
* Fix command return value image_url handling for DingTalk, Slack, and LINE adapters
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
* Refactor DingTalk image handling into helper method and add clarifying comment
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
* Fix Lark adapter to not append empty paragraph before images
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
* Improve Lark adapter image handling with better error logging
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
* Fix Lark adapter to send images as separate image messages instead of embedded in post
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
* Parse Markdown image syntax in Lark adapter and render as separate image messages
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: the-lazy-me <52873503+the-lazy-me@users.noreply.github.com >
2025-11-28 22:24:42 +08:00
Junyan Qin
cf646752c5
feat: add more service api supports
2025-11-28 20:13:58 +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
f4eb59e2ad
fix: deleted external kb not destoryed
2025-11-28 15:37:55 +08:00
Junyan Qin
34d84590e2
chore: tidy files
2025-11-28 15:01:54 +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
Junyan Qin
348620ac0a
chore: remove unused code
2025-11-27 23:39:01 +08:00
Copilot
a8481e43f0
feat: external knowledge bases ( #1783 )
...
* Initial plan
* Add backend support for external knowledge bases
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add frontend support for external knowledge bases with tabs UI
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add i18n translations for all languages (Traditional Chinese and Japanese)
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Update knowledge base tab list styling to match plugins page
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* 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] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-27 23:19:43 +08:00
Copilot
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 <45992437+RockChinQ@users.noreply.github.com >
* Update API integration dialog height for improved layout
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-27 11:59:46 +08:00
Junyan Qin (Chin)
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 <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
* 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 <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
* chore: add migration for enable all extensions config
* fix: bad renaming
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Happy <yesreply@happy.engineering >
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
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 <45992437+RockChinQ@users.noreply.github.com >
* Fix prettier formatting issue in PluginCardComponent
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-25 09:46:37 +08:00
Xiaoyu Su
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 <rockchinq@gmail.com >
2025-11-25 00:12:03 +08:00
Tigrex Dai
50c33c5213
Fix typo for variable and comment 'Quote' ( #1800 )
2025-11-24 23:09:31 +08:00
Copilot
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 <45992437+RockChinQ@users.noreply.github.com >
* Apply ruff formatting
* Add unit tests for plugin list sorting functionality
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Optimize database query to avoid N+1 problem and update tests
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Remove redundant assertion in test
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: plugin list sorting
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-23 13:46:45 +08:00