Soulter
f835f63542
feat: add trace settings management and UI for enabling/disabling trace logging ( #4822 )
...
* feat: add trace settings management and UI for enabling/disabling trace logging
* feat: enhance trace feature with internationalization support for hints and status messages
* fix: improve tool info extraction in run_agent function
2026-02-03 10:24:41 +08:00
Soulter
193676012f
feat: implement history persistence for agent interactions and enhance cron job permission handling
2026-02-01 17:42:08 +08:00
Soulter
5b7805e8d7
feat: trace and log file config ( #4747 )
...
* feat: trace
* fix(log): increase log cache size from 200 to 500
* feat(logging): add file and trace logging configuration options
2026-01-31 00:05:54 +08:00
Soulter
22bd8d6824
feat: support anthropic skills ( #4715 )
...
* feat: support anthropic skills
closes : #4687
* chore: ruff
* feat: implement skills management and selection in persona configuration
* feat: enhance skills management with local environment tools and permissions
2026-01-28 01:48:57 +08:00
Soulter
82e2e0d02f
feat: add web search references feature with sidebar and extraction logic ( #4515 )
...
* feat: add web search references feature with sidebar and extraction logic
* fix: reorder import statements for consistency
* chore: remove log
2026-01-16 16:49:48 +08:00
Soulter
981421ded6
docs: update readme
2026-01-12 20:31:17 +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
Oscar Shaw
ef1feb639c
fix(utils): optimize pip install output decoding for cross-platform encoding compatibility ( #4249 )
2025-12-29 23:54:11 +08:00
RC-CHN
aa38fe776a
feat: supports data backup ( #4105 )
...
* feat: 添加数据迁移功能
* test: 添加迁移相关测试
* feat: 备份插件及相关持久化目录
* fix: 修复版本号比较逻辑,添加相关测试
* fix: 清洗文件名,添加相关测试
* fix: 修复安全文件名测试用例断言
* refactor: 优化代码,为备份模块提取公用常量
* feat: 修改备份版本校验逻辑,允许强制小版本间导入
* fix: 修复备份创建时间读取,修复备份相关i18n
* refactor(backup): 使用 astrbot_path 统一管理备份目录路径
* fix(backup): 清理备份模块中未使用的导入
* refactor(backup): 统一备份路径与参数并移除未用附件目录
- 通过 astrbot_path 动态获取备份/知识库/数据相关路径
- 移除 exporter/importer 未使用的 attachments_dir/data_root 传参
- 更新备份路由与测试用例的构造参数
* fix(dashboard): alias mermaid to dist entry for Vite prebundle
* fix(backup): 放行start-time接口到白名单以处理备份导入后jwt token变化导致无法自动刷新webui的问题
* chore(backup): 统一配置路径以使用动态数据目录
* refactor(backup): 使用 VersionComparator 替代重复的版本比较函数
* style(backup test): format code
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-26 15:47:50 +08:00
Soulter
94ada3793e
Merge remote-tracking branch 'origin/master' into refactor/provider-source
2025-12-17 13:33:23 +08:00
Soulter
764b91a5f7
chore: ruff check
2025-12-16 12:21:14 +08:00
Soulter
c20c1b84bf
feat: implement LLM metadata fetching and integrate into provider model selection
2025-12-16 12:19:40 +08:00
Soulter
b8e4068c75
feat: support key-value storage for plugins ( #4048 )
...
* feat: support key-value storage for plugins
* fix: remove unnecessary initialization method from Main class
2025-12-15 16:50:44 +08:00
Soulter
45110200ea
feat: update provider and provider source configuration handling
2025-12-15 12:31:29 +08:00
Soulter
bb45d9cb54
stage
2025-12-13 17:16:07 +08:00
Soulter
8a0b7717cc
feat: supports webhook mode for Lark platform ( #4016 )
...
* feat: add Lark platform support with unified webhook configuration
* fix: update token verification logic in LarkWebhookServer
* feat: implement event deduplication and cleanup for Lark webhook events
2025-12-12 22:12:13 +08:00
Dt8333
f624971613
chore: fix bunches of type checking errors ( #3213 )
...
* chore(core.utils): 🚨 修正错误Lint
* chore(core.provider): 🚨 修复基类错误Lint
* chore(core.utils): 补全session_get()的重载
* chore(core.provider): 🚨 修正实现错误Lint
* chore(core.platform): 🚨 修正platform基类和webchat的错误Lint
* chore(core.platform): 修正错误实现Lint
* fix(core.provider): 修复循环调用和错误assert
* chore(core.platform): 修复部分实现Lint
* chore(core.provider): 补充Dify.text_chat_stream的参数类型
* chore(core.pipeline): 🚨 修复错误Lint
* fix(core.slack): 补充遗漏导入
* chore(core.utils): 修复错误的session_get声明
* chore(core.platform): 移除Lark adapter import中的wildcard
* chore(core.db): 修复声明和部分逻辑
* chore(core.db): 添加typings,使faiss参数能被正确识别。
* chore(core): 修复声明
* chore(core): 修改声明
* chore: 补充faiss声明
* chore(dashboard): 修改实现,减少报错
* chore(package): 修改部分声明与实现,减少报错
* chore(core): 添加Handler的overload,以去除部分assert同时通过类型检查
* chore(core.pipeline): 修改Pipeline Scheduler的execute,将判断属性改为判断类型,通过静态类型检查
* chore(core.config): 添加类型标注,通过类型检查
* chore(core.message): 为File._download_file添加检查,通过类型检查
* fix: 将断言改为条件判断以实现优雅关闭的容错性
* refactor: 移除 discord 客户端中的 assert,改用 if None 判断并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: DiscordPlatformAdapter 对 self.client.user 为 None 做日志并返回,移除断言
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 增强 Lark 相关空值/异常检查并完善日志输出
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将断言替换为条件检查并加入日志与错误处理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* chore: 移除LLM生成的无用注释
* refactor: 使用 File.get_file 替换下载逻辑并移除 assert,提供默认 filename
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: Slack Socket 未初始化抛出运行时异常,图片 URL 判空改为非空判断
* refactor: 将 WeChatPadProAdapter 的断言改为空值判断并添加日志
* refactor: 使用 isinstance 替代断言实现类型判断,便于静态检查
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 去除cast,直接使用字段与字典访问,修正端口解析
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 使用 match-case 重构 ProviderManager 加载并通过类型检查抛出 TypeError
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: group_name_display 时若 group 对象为空则记录错误并返回
* fix: 将 _get_current_persona_id 的 assert 替换成 if guard 并返回 None
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 优化插件目录存在性检查及图片URL非空验证,更新JSON排序配置
* fix: 将 datetime_str 的 assert 替换为显式检查并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改为运行时检查并在找不到调度器时跳过
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改用 isinstance 检查 FaissVecDB 并警告
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 删除 typing.cast 导入,并在获取文件绝对路径前校验 file_
* refactor: 移除 typing.cast,简化内容安全检查调用
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将 PlatformMetadata.id 设为必填并在注册时传入 id,移除 cast
* refactor: 移除 cast,改用 HasInitialize 与 isinstance 进行初始化
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 ProviderManager.initialize 增加ID类型判断,避免 None 导致 get 失败
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 为 OTTSProvider 与 AzureNativeProvider 引入 _client 与 client 属性改进上下文管理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 Whisper 自托管源添加模型未初始化校验并直接调用 transcribe
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除未使用的 cast 导入并简化 platform_name 赋值
* refactor: 引入 cast 并对 id 使用 cast(str, ...) 提升类型安全
* fix: 将 _id_to_sid 返回改为 str,空值返回空串;对 id 与 message_id 使用 cast
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 重构 Discord 处理逻辑:强制 类型转换、优先斜杠指令并优化提及判断
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 统一对 id 获取执行 cast,并在微信消息解析失败时抛错
* Revert "fix: 去除cast,直接使用字段与字典访问,修正端口解析"
This reverts commit 1cbfdf9d1b .
* fix: 百炼 Rerank 会话关闭时返回空结果;初始化 request.prompt 避免空值拼接
* fix: 统一处理搜索结果链接为字符串,新增 _get_url 助手并适配 Bing/Sogo
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 调整 call_handler 泛型、Discord 通道注解及 FishAudioTTS API 请求类型
* refactor: 使用 col(...) 替代列引用并对结果进行 CursorResult 强转
* chore: ruff format
---------
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
Co-authored-by: Soulter <905617992@qq.com >
2025-12-09 14:13:47 +08:00
Oscar Shaw
5d856900ef
perf: some UI/UX fixes, change Console to Platform Logs ( #3873 )
...
* refactor: 统一‘平台日志’文案
* perf: 优化自动滚动开关键操作逻辑
* perf: add tooltips to save and code editor buttons
2025-12-05 16:02:20 +08:00
Soulter
5714944eef
feat: unified platform webhook url ( #3889 )
...
* feat: unified platform webhook url
* chore: ruff format
* fix: 修复 Telegram 语音使用 Whisper API 报错 (#3884 )
* Update whisper_api_source.py
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
* Update astrbot/dashboard/routes/platform.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* chore: ruff format
* fix: update webhook dialog descriptions for clarity in English and Chinese locales
* fix: update webhook URL paths to include '/api' prefix for consistency across the application
---------
Co-authored-by: 易推倒白毛 <zhaixingbi@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-03 15:44:52 +08:00
Soulter
2ba0460f19
feat: introduce file extract capability ( #3870 )
...
* feat: introduce file extract capability
powered by MoonshotAI
* fix: correct indentation in default configuration file
* fix: add error handling for file extract application in InternalAgentSubStage
* fix: update file name handling in InternalAgentSubStage to correctly associate file names with extracted content
* feat: add condition settings for local agent runner in default configuration
* fix: enhance file naming logic in File component and update prompt handling in InternalAgentSubStage
2025-12-01 18:12:39 +08:00
Soulter
e2a7a028bd
feat(migration): enhance migration process with error handling and agent runner config updates
2025-11-24 14:37:25 +08:00
Soulter
39eb367866
perf: improve file structure
...
- Implemented CozeAPIClient for file upload, image download, chat messaging, and context management.
- Developed DashscopeAgentRunner for handling requests to the Dashscope API with streaming support.
- Created DifyAgentRunner to manage interactions with the Dify API, including file uploads and workflow execution.
- Introduced DifyAPIClient for making asynchronous requests to the Dify API.
- Updated third-party agent imports to reflect new module structure.
2025-11-24 14:00:16 +08:00
Soulter
370cda7cf0
feat(dify_api_client): add docstring for file_upload method
2025-11-24 10:53:50 +08:00
Soulter
66b3eed273
fix: correct typo in agent state transition log message
2025-11-24 00:03:22 +08:00
Soulter
d560671d1f
feat: agent runner config migration
2025-11-23 20:54:19 +08:00
Soulter
910ec6c695
feat: implement third party agent sub stage and refactor provider management
...
- Added `ThirdPartyAgentSubStage` to handle interactions with third-party agent runners (Dify, Coze, Dashscope).
- Refactored `star_request.py` to ensure consistent return types in the `process` method.
- Updated `stage.py` to initialize and utilize the new `AgentRequestSubStage`.
- Modified `ProviderManager` to skip loading agent runner providers.
- Removed `Dify` source implementation as it is now handled by the new agent runner structure.
- Enhanced `DifyAPIClient` to support file uploads via both file path and file data.
- Cleaned up shared preferences handling to simplify session preference retrieval.
- Updated dashboard configuration to reflect changes in agent runner provider selection.
- Refactored conversation commands to accommodate the new agent runner structure and remove direct dependencies on Dify.
- Adjusted main application logic to ensure compatibility with the new conversation management approach.
2025-11-23 20:18:51 +08:00
Copilot
a04993a2bb
Replace insecure random with secrets module in cryptographic contexts ( #3248 )
...
* Initial plan
* Security fixes: Replace insecure random with secrets module and improve SSL context
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: fix POST method and add named constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve documentation for random number generation constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update tests/test_security_fixes.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix: Handle path parameter in SSL fallback for download_image_by_url
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-03 02:43:00 +08:00
Copilot
94bf3b8195
Fix incorrect type annotations and errors ( #3250 )
...
* Initial plan
* Fix type annotation errors in cmd_conf, cmd_init, and version_comparator
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Changes before error encountered
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix more type annotation errors: change `= None` to `| None = None`
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix final batch of type annotation errors
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
2025-11-02 17:02:56 +08:00
Copilot
92abc43c9d
Fix mutable default arguments in constructors and methods ( #3247 )
...
* Initial plan
* Fix mutable default arguments in constructors and methods
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
2025-11-02 12:57:37 +08:00
LIghtJUNction
0b7fc29ac4
style: add ruff lint module of isort and pyupgrade, and some ruff check fix ( #3214 )
...
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-11-01 13:26:19 +08:00
Soulter
0622d88b22
fix: revert 3106 ( #3153 )
...
* fix: revert 3106
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: exynos <110159911+xiaoxi68@users.noreply.github.com >
* Update astrbot/dashboard/routes/update.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* fix: remove unnecessary version file handling in download_dashboard function
* fix: revert
---------
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: exynos <110159911+xiaoxi68@users.noreply.github.com >
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-10-26 21:26:48 +08:00
Soulter
c1626613ce
fix: update repository references from Soulter/AstrBot to AstrBotDevs/AstrBot across documentation and codebase ( #3150 )
...
* fix: update repository references from Soulter/AstrBot to AstrBotDevs/AstrBot across documentation and codebase
- Updated README_ja.md to reflect new GitHub repository links.
- Modified AstrBotUpdator to download from the new repository.
- Changed download URLs in io.py for dashboard releases.
- Updated changelogs to point to the new issue links.
- Adjusted Docker compose file to reference the new repository.
- Updated Vue components in the dashboard to link to the new repository.
- Changed main.py to provide the correct download instructions for the new repository.
* fix: improve error handling for configId selection in AddNewPlatform component
* Update astrbot/core/utils/io.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-10-26 16:17:24 +08:00
LIghtJUNction
22c3b53ab8
fix(io.py): path改回传入文件地址,而不是传入文件夹地址
2025-10-26 15:41:20 +08:00
LIghtJUNction
4f4a9b9e55
fix(io.py): download_dashboard如果发现没有dist/assets/version文件,下载完毕自动写入(以防万一)
2025-10-26 15:35:25 +08:00
Soulter
afe007ca0b
refactor: 优化 packages/astrbot 内置插件的代码结构以提高可维护性和可读性 ( #2924 )
...
* refactor: code structure for improved readability and maintainability
* style: ruff format
* Update packages/astrbot/commands/provider.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* Update packages/astrbot/commands/persona.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* Update packages/astrbot/commands/llm.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* Update packages/astrbot/commands/conversation.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* fix: improve error handling message formatting in key switching
* fix: update LLM command to use safe get for provider settings
* feat: implement ProcessLLMRequest class for handling LLM requests and persona injection
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-10-01 21:29:15 +08:00
Ding Jiatong
a35c439bbd
fix: 使用增量解码器修复 Dify 流式返回结果偶现的解码错误 ( #2888 )
...
* fix: 修复linux下utf-8解码错误的问题
* feat: use incremental decoder
* fix: add type hint for response parameter in _stream_sse and refactor file upload method
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-26 23:04:58 +08:00
Soulter
d5b3ce8424
fix: update download_dashboard to log specific dashboard release URLs
2025-09-23 13:10:33 +08:00
RC-CHN
dc9612d564
fix: 修复自定义文转图模板更新版本后会被覆盖的问题 ( #2677 )
...
* perf: 更新模板管理逻辑,在data目录中管理用户自定义模板,优化热重载逻辑
* refactor: 优化模板管理逻辑,重构模板复制和初始化流程,增强用户模板管理功能
* chore:移除无用注释
* remove:移除了t2i部分中不会走到的异常
* style: format code
* fix: trim whitespace from template names in create, update, and delete operations
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-12 13:34:07 +08:00
RC-CHN
b31b520c7c
feat: 支持管理 T2I 模版 ( #2638 )
...
* feat:添加t2i模板管理后端api,移除config.py中重复功能
* feat: 添加T2I模板管理功能前端,支持模板的创建、应用和重置
* refactor: 修复错误的保存逻辑,将t2i注册时打印路由信息部分移到基类实现
* remove:移除了路由注册时的打印
* chore: format code
* fix: update input variant from solo to outlined for better UI consistency
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-07 00:14:28 +08:00
Soulter
35eda37e83
Merge remote-tracking branch 'origin/releases/v3.5.27'
2025-09-04 15:30:15 +08:00
Soulter
2a7308363e
fix: 下载 WebUI 时,明确版本号
2025-09-04 13:54:16 +08:00
Soulter
8f4625f53b
Merge remote-tracking branch 'origin/master' into releases/4.0.0
2025-08-31 20:37:53 +08:00
Soulter
b1e4bff3ec
feat: 支持升级的同时更新到指定版本的 WebUI
2025-08-31 19:55:46 +08:00
Soulter
d2d5ef1c5c
feat: add custom T2I template editor ( #2581 )
2025-08-31 11:11:55 +08:00
Soulter
aa6f73574d
feat: 多 t2i 服务的随机负载均衡 ( #2529 )
2025-08-22 16:43:59 +08:00
Soulter
ac71d9f034
perf: 使用 run_coroutine_threadsafe
...
Co-authored-by: Raven95676 <raven95676@gmail.com >
2025-08-18 19:32:35 +08:00
Soulter
64bcbc9fc0
refactor: 重构 SharedPreference 类并采用数据库存储替换 json 存储 ( #2482 )
2025-08-18 19:12:26 +08:00
Soulter
1b37530c96
Merge remote-tracking branch 'origin/master' into releases/4.0.0
2025-08-02 20:14:18 +08:00
Soulter
842c3c8ea9
Refactor: using sqlmodel(sqlchemy+pydantic) as ORM framework and switch to async-based sqlite operation ( #2294 )
...
* stage
* stage
* refactor: using sqlchemy as ORM framework, switch to async-based sqlite operation
- using sqlmodel as ORM(based on sqlchemy and pydantic)
- add Persona, Preference, PlatformMessageHistory table
* fix: conversation
* fix: remove redundant explicit session.commit, and fix some type error
* fix: conversation context issue
* chore: remove comments
* chore: remove exclude_content param
2025-08-02 15:44:00 +08:00
Gao Jinzhe
140ddc70e6
feat: 使用会话锁保证分段回复时的消息发送顺序 ( #2130 )
...
* 优化分段消息发送逻辑,为分段消息添加消息队列
* 删除了不必要的代码
* style: code quality
* 将消息队列机制重构为会话锁机制
* perf: narrow the lock scope
* refactor: replace get_lock with async context manager for session locks
* refactor: optimize session lock management with defaultdict
---------
Co-authored-by: Soulter <905617992@qq.com >
Co-authored-by: Raven95676 <Raven95676@gmail.com >
2025-07-23 00:37:29 +08:00