Soulter
6a86dae76e
docs: refine EULA
2026-01-13 12:19:05 +08:00
Soulter
a7eca40fe7
feat: implement localStorage persistence for showReservedPlugins state
2026-01-13 02:23:31 +08:00
Soulter
ef28dc5001
chore: makes world better
2026-01-13 02:20:24 +08:00
Soulter
d29ac4023a
fix: typo
2026-01-12 21:24:11 +08:00
Soulter
c2af2c6d5e
chore: bump version to 4.11.4
v4.11.4
2026-01-12 20:42:49 +08:00
Soulter
d9fb29d314
docs: add initial EULA for user agreement and compliance
2026-01-12 20:32:28 +08:00
Soulter
981421ded6
docs: update readme
2026-01-12 20:31:17 +08:00
Soulter
49ad22ca82
fix(i18n): refine default source label in English and Chinese locales
2026-01-12 20:05:21 +08:00
Soulter
858e245108
chore: remove default provider source displayed in webui
2026-01-12 19:51:18 +08:00
Soulter
6ac37ecd60
chore: bump version to 4.11.3
v4.11.3
2026-01-12 19:35:41 +08:00
Soulter
2bbe010747
Sanitize invalid platform IDs on load ( #4432 )
2026-01-12 19:04:44 +08:00
Soulter
52bba9026a
feat(safety): LLM healthy mode ( #4431 )
...
* feat(safety): implement LLM safety mode
* chore: ruff format
2026-01-12 18:33:34 +08:00
clown145
3416e8990c
fix(webui): optimize markdown rendering and remove redundant code ( #4415 )
...
* fix(dashboard): optimize markdown rendering and remove redundant code
* style: format code and refactor ReadmeDialog for i18n/isolation
* fix: robust clipboard fallback for http context
* refactor: optimize markdown rendering and fix table styles in ReadmeDialog
2026-01-12 17:39:53 +08:00
時壹
eedb62a5a3
fix: detect image MIME type from binary data for Anthropic API ( #4426 )
2026-01-12 17:35:23 +08:00
Oscar Shaw
e8bd821e72
feat(log): append version number tag to WARN and ERROR level logs ( #4388 )
...
* feat(log): 在 WARN 和 ERROR 级别日志中追加版本号标签
* refactor(core): 简化日志版本标签过滤逻辑以包含 WARNING 及以上级别
2026-01-12 17:30:38 +08:00
NayukiMeko
131950b909
fix ( #4297 ): fix list config being saved as [""] instead of [] after deletion ( #4401 )
...
* fix: 修复列表配置项删除后保存为['']而非[]的问题 (#4297 )
* fix: 添加类型检查以处理非字符串列表项
* refactor: 移除 ExtensionPage 中重复的 cleanEmptyListItems
过滤逻辑已在 ListConfigItem.vue 源头处理,保存配置时无需再次过滤。
2026-01-11 18:53:15 +08:00
Futureppo
2e172804e3
feat(context): sannitize llm context by modalities ( #4367 )
...
* feat(context): 添加按模型能力清理历史上下文
* fix(config): 更新历史上下文清理提示信息
* chore: ruff format
* fix: simplify modality checks and sanitize context handling
* fix(config): disable context sanitization by modalities
* fix(agent): skip messages with empty roles in InternalAgentSubStage
* fix(agent): refine tool call handling in InternalAgentSubStage
---------
Co-authored-by: Soulter <905617992@qq.com >
2026-01-11 15:39:23 +08:00
Gao Jinzhe
2f3a3f354f
fix: add image placeholder for non-vision models to fix no response in private chat ( #4411 )
...
* fix: 修复私聊中单独发送图片无响应的问题,为非视觉模型添加图片占位符
* ruffcheck
* 修复占位符被重复添加的问题
* 简化逻辑
2026-01-11 15:11:35 +08:00
letr
86e9b41dde
fix(core): correct duplicate word in agent logger warning ( #4390 )
...
- Fix duplicate '没有' in logger warning message
- Improve punctuation and readability of tool response comments
2026-01-11 15:00:35 +08:00
Gao Jinzhe
8dfe43f22f
fix(webui): add null check for plugin list in config to fix empty list issue ( #4392 )
2026-01-11 14:39:54 +08:00
stevessr
6c2f738940
fix: when session_id including ":" ( #4380 )
2026-01-11 14:33:44 +08:00
letr
c1102f2f5c
fix(webui): fix unexpected expansion of all rows in tool table ( #4366 )
...
Corrected the property from `item-key` to `item-value` to align with
Vuetify 3 API. This ensures each row has a unique identifier for
the expansion state.
2026-01-11 14:27:07 +08:00
Li-shi-ling
9a91f2fb11
fix: ensure atomic creation of knowledge base with proper cleanup on failure ( #4406 )
...
* fix: ensure atomic creation of knowledge base with proper cleanup on failure
- Added pre-validation for embedding_provider_id parameter
- Added check for existing knowledge base with same name
- Implemented proper rollback mechanism when KBHelper initialization fails
- Uses same session for cleanup to ensure data consistency
- Fixes #4403
* fix: ensure atomic KB creation with session.flush() to remove race condition risks
* fix: ensure change the annotation back
2026-01-11 14:24:26 +08:00
Soulter
81309bc908
perf: enhance reply functionality to support selected text quoting ( #4387 )
...
* feat(chat): enhance reply functionality to support selected text quoting
* perf: improve ui
* feat(chat): add label for tools used in tool calls and update translations
* feat(chat): simplify reply handling by removing text truncation logic
2026-01-09 18:04:43 +08:00
Soulter
f003b83443
docs: update demo banner
2026-01-09 16:49:03 +08:00
Soulter
34921e91f0
chore: bump version to 4.11.2
v4.11.2
2026-01-08 15:32:37 +08:00
Soulter
6c15592cbb
feat(metrics): add metrics tracking for plugin installation events
2026-01-08 15:29:32 +08:00
letr
8c7a4b87d0
fix(webui): maintain international consistency of the 'repo' button ( #4358 )
2026-01-08 13:34:13 +08:00
Gao Jinzhe
8ff12e3972
fix: on_waiting_llm_request hook did not check message validity ( #4349 )
...
* fix:修复waitingllmrequest没有检查消息有效性的问题
* 进行ruff修复
2026-01-07 12:51:00 +08:00
Gao Jinzhe
eefa3f2f00
fix: conversation was still saved to the context after stop_event ( #4345 )
2026-01-07 12:48:13 +08:00
Oscar Shaw
479284a8dd
feat(extension): plugin marketplace search supports matching display names. ( #4332 )
2026-01-06 12:54:11 +08:00
clown145
9322218880
feat: supports to display plugin CHANGELOG.md ( #4337 )
...
* feat: optimize plugin update changelog feature, refactor to reuse ReadmeDialog and support independent view entry
* fix: distinguish error state from empty state in ReadmeDialog
2026-01-06 12:53:14 +08:00
Soulter
399062f14d
chore: remove wechatpadpro
2026-01-06 11:14:54 +08:00
Soulter
de82df3c33
chore: bump version to 4.11.1
v4.11.1
2026-01-05 20:22:18 +08:00
Soulter
9896aebfb5
feat: enhance provider source configuration with custom hints and tooltips
2026-01-05 20:20:09 +08:00
Soulter
df7653eb99
fix: 部分情况下选择提供商出现”暂无可用提供商的问题“,即使实际上有
2026-01-05 20:01:54 +08:00
Soulter
8e7b44185d
chore: bump version to 4.11.0
v4.11.0
2026-01-05 18:05:12 +08:00
RC-CHN
ef1c66a92e
feat(webui): enable Range request support for backup downloads ( #4329 )
2026-01-05 17:27:03 +08:00
Soulter
241f1c26d3
feat: context compress ( #4322 )
...
* feat: context compressor
Co-authored-by: kawayiYokami <289104862@qq.com >
* Add comprehensive tests for ContextManager and ContextTruncator
- Implemented a full test suite for ContextManager covering initialization, message processing, token-based compression, and error handling.
- Added tests for ContextTruncator focusing on message fixing, truncation by turns, dropping oldest turns, and halving.
- Ensured that both test suites validate edge cases and maintain expected behavior with various message types, including system and tool messages.
* feat: add MockProvider for LLM compression tests
* chore: remove lock
* ruff fix
* fix
* perf
* feat: enhance context compression with token tracking and logging
* feat: update logging for context compression trigger
* feat: implement context compression logic with dynamic threshold and token tracking
* fix: reorder import statements for consistency
* feat: add token_usage tracking to conversations and update related processing logic
---------
Co-authored-by: kawayiYokami <289104862@qq.com >
2026-01-05 17:26:10 +08:00
Soulter
3615b7dde2
fix: token usage is always 0 in anthropic source ( #4328 )
2026-01-05 17:06:12 +08:00
RC-CHN
9bcf9bf2a0
fix(dashboard): complete i18n support for shared components ( #4327 )
...
* fix(dashboard): complete i18n support for shared components
- Replace hardcoded Chinese strings with i18n translations in:
- PluginSetSelector.vue
- ProviderSelector.vue
- PersonaSelector.vue
- KnowledgeBaseSelector.vue
- T2ITemplateEditor.vue
- AstrBotConfigV4.vue
- ConfigItemRenderer.vue
- ProxySelector.vue
- ListConfigItem.vue
- Add missing translations to locale files:
- core/shared.json: personaSelector, t2iTemplateEditor
- core/common.json: autoDetect
- features/settings.json: network.proxySelector
- Change prop defaults from hardcoded Chinese to empty strings,
allowing components to use i18n fallback translations
* fix(i18n): 修正插件选择器标签的翻译格式,添加冒号
* fix(deployment): 添加持久化 machine-id PVC 和初始化容器,优化资源限制
2026-01-05 09:45:28 +08:00
Gao Jinzhe
7f5cc7cf1a
feat: add on_waiting_llm_request event hook ( #4319 )
...
* 加入on_waiting_llm_request钩子
* ruff check
2026-01-04 16:11:12 +08:00
Oscar Shaw
f26867c77d
ci(stale): 增加 stale action 每次运行的操作限制 ( #4256 )
2026-01-04 11:20:03 +08:00
Soulter
a14d588b44
docs: add Matrix adapter to community maintained section in multiple languages
2026-01-04 10:15:16 +08:00
Soulter
e236402d92
chore: update platform adapter name for clarity
2026-01-04 10:12:25 +08:00
Soulter
454841de10
fix: database is locked error when invoking tts command ( #4313 )
...
* fix: database is locked error when invoking /tts command
fixes : #4311
* chore: rm pnpm lockfile
* perf: 减少操作数据库的次数
2026-01-03 19:12:39 +08:00
clown145
442b5403df
feat(webui): supports force update plugins ( #4293 )
2026-01-03 15:30:50 +08:00
Soulter
9db7bf59b8
docs: add new community group contact
2026-01-03 00:48:55 +08:00
雪語
3622504021
fix: retry failed due to a mismatch in the msg.id data type of a WeChat Official Account ( #4292 )
...
问题描述:
- 控制台显示正常发送消息,但公众号未收到
- 处理时间 > 5秒的消息几乎总是失败(如 AI 图片生成)
- 短消息(<5秒)正常工作
根本原因:
msg.id 是整数类型,但字典 key 使用字符串类型,导致类型不匹配。
检查时整数无法匹配字符串 key,导致每次都创建新的 future,
微信重试时无法重用,最终导致响应失败。
修复内容:
将 msg.id 转换为字符串后再检查字典
if str(msg.id) in self.wexin_event_workers:
影响范围:
- 修复了微信重试时无法正确重用 future 的问题
- AI 图片生成、长文本生成等耗时操作现在可以正常工作
- 仅影响微信公众号适配器,其他平台不受影响
Fixes #1679
2026-01-02 22:16:04 +08:00
Soulter
fc42db40ce
chore: bump version to 4.10.6
v4.10.6
2026-01-02 12:14:59 +08:00