jxxghp
415335b215
refactor: unify message channel shutdown convergence
2026-08-24 14:08:06 +08:00
jxxghp
af9a141f34
fix: isolate feishu websocket event loops
2026-08-24 12:54:06 +08:00
jxxghp
e1230c0277
refactor: unify message ingress forwarding
2026-08-24 03:01:17 +08:00
jxxghp
ac32adc7b6
refactor: route media and chat module settings through runtime
2026-08-23 03:09:59 +08:00
jxxghp
8472bcff43
refactor: 收口 V3 分层架构与插件兼容边界
2026-08-18 13:22:02 +08:00
jxxghp
5128ae9e1e
refactor: 推进后端分层架构治理
2026-08-18 00:29:14 +08:00
jxxghp
54f093a099
Merge remote-tracking branch 'origin/v3' into v3
...
# Conflicts:
# app/api/endpoints/agent.py
# app/api/endpoints/anthropic.py
# app/api/endpoints/openai.py
# app/chain/__init__.py
# app/chain/message.py
# app/chain/site.py
# app/chain/subscribe.py
# app/chain/transfer.py
# app/modules/discord/__init__.py
# app/modules/qqbot/__init__.py
# app/modules/slack/__init__.py
# app/modules/telegram/__init__.py
# app/modules/wechat/__init__.py
# app/runtime/extensions/module_manager.py
# app/runtime/extensions/service_registry.py
# tests/test_agent_interaction.py
# tests/test_slash_command_interactions.py
# tests/test_web_agent_stream.py
2026-08-16 19:44:43 +08:00
jxxghp
240a4dffe6
refactor(schemas): 统一 message/notification 命名边界,旧名收敛至兼容映射表
...
- notification 域:渠道能力(MessageChannel→NotificationChannel、ChannelCapability* 迁入 notification.py)
- message 域:消息收发(Notification→Message、NotificationType→MessageType、CommingMessage→IncomingMessage、NotificationHistoryItem→MessageHistoryItem、NotificationClear*→MessageClear*)
- Agent 工具契约:send_notification_message→send_message、notification_callback→message_callback
- 源码不保留旧名物理别名,旧导入经 app/runtime/compat/manifest.py SYMBOL_ALIASES 惰性解析
- API 路径与持久化键冻结不变,前端零改动
- 新增兼容守护测试与 docs/rules/07 命名边界规范
2026-08-16 19:32:20 +08:00
jxxghp
6424f76e70
fix(notification): 飞书/QQ/爪爪机器人跳过命令注册,修复 AttributeError
...
通知基类默认命令注册钩子调用 client.register_commands,但飞书 lark_oapi、
QQBot、WechatClawBot 客户端均无命令注册/删除 API(飞书机器人无斜杠命令概念),
启动时 FeishuModule.register_commands 抛 AttributeError。
三个模块覆写 _commands_enabled 返回 False 跳过注册,与企业微信走菜单 API
的钩子模式一致;Telegram/Slack/Discord 客户端具备该 API,不受影响。
2026-08-16 16:56:53 +08:00
jxxghp
7e851dbfa7
refactor(chain): 处理链功能域 mixin 化,清理未使用导入并根治兼容层循环导入
...
- ChainBase 拆分为 RecognitionMixin/MessageProcessingMixin/NotificationMixin
- TransferChain 拆分为 7 个功能 mixin(_mixins.py),SubscribeChain 音乐订阅域拆出 _music.py
- 斜杠命令交互四件套收敛为 InteractionChainMixin 委托,会话管理器移至 application 层,chain 层不再 re-export
- 模块基础类收敛到 app/modules/_base(notification/mediaserver 语义重命名)
- 清理 app/chain/__init__.py 24 个未使用导入,修正 49 处测试 patch 目标到实际命名空间
- 兼容层 legacy 符号不再并入 __all__,根治 schemas 初始化反向拉起 application.transfer 的循环导入
- 修复 bangumi 集数为字符串时 set_bangumi_info 抛 TypeError
- 新增重复代码等架构门禁测试;capability 清单校验排除下划线内部目录
2026-08-16 16:30:16 +08:00
InfinityPacer
24671f8f18
refactor(runtime): lazily activate host modules ( #6331 )
2026-08-16 16:07:38 +08:00
Aqr-K
8a11214a43
refactor(db): 修复异步连接池无界增长,并完成 SQLAlchemy 2.0 迁移与分层归位 ( #6320 )
2026-08-15 06:58:38 +08:00
jxxghp
369d7d6448
refactor: reorganize backend module boundaries
2026-08-14 19:53:33 +08:00
jxxghp
7b3444c366
refactor backend module architecture
2026-08-14 15:45:38 +08:00
jxxghp
87b1caf3ff
fix(agent): grant channel owners admin access
2026-08-14 00:01:37 +08:00
InfinityPacer
3aed078bbb
fix(agent): bind channel admin identity ( #6294 )
2026-08-13 14:53:59 +08:00
InfinityPacer
591a1d420d
fix(agent): close secret confirmation delivery gaps ( #6285 )
2026-08-13 08:20:14 +08:00
jxxghp
85a7f98a94
fix(feishu): 修复群聊@回复发私聊及无目标通知报错 ( #6262 )
...
- 回复类消息携带 original_chat_id 时优先发回原会话,避免群聊@机器人的回复错误发送到私聊窗口
- update_or_post_message 编辑失败回退发新消息时保留原消息/会话上下文
- 无显式目标且未配置默认目标时,回退向最近互动过的会话广播发送(与企业微信策略一致)
- 仍无可用目标时报出含配置指引的明确错误(FEISHU_OPEN_ID/FEISHU_CHAT_ID)
Closes #6262
2026-08-10 18:18:48 +08:00
jxxghp
3e32eab98f
fix(feishu): 媒体列表显示海报 ( #6224 )
2026-08-02 15:49:32 +08:00
InfinityPacer
893269f8c1
fix(modules): serialize configuration reload lifecycle ( #6122 )
2026-07-15 17:28:49 +08:00
InfinityPacer
e02cebe16c
fix(tests): stabilize messaging shutdown ( #5979 )
2026-06-21 07:37:47 +08:00
jxxghp
970f2cf1ca
fix: clean up feishu websocket shutdown
2026-06-20 15:20:15 +08:00
jxxghp
33b18f0899
fix: parse feishu post messages
2026-06-20 13:04:55 +08:00
jxxghp
7af2aa4266
更新 feishu.py
2026-05-24 22:09:29 +08:00
jxxghp
ec588037a0
fix: restrict message commands to channel admins
2026-05-24 08:00:54 +08:00
jxxghp
052e1ca8e4
fix: handle images in Feishu streaming replies
2026-05-22 20:43:54 +08:00
jxxghp
b2a18f9ae4
feat(message-processing-status): unified processing status indicator for Telegram, Slack, Discord, Feishu
...
- Add ChannelCapability.PROCESSING_STATUS and capability detection for supported channels
- Implement mark_message_processing_started/finished in Telegram, Slack, Discord, Feishu modules
- Telegram: manage typing lifecycle with max duration and explicit stop
- Slack: add/remove reaction as processing indicator
- Discord: start/stop typing indicator with async task management
- Feishu: add/remove reaction for processing status
- Refactor message chain to invoke processing status hooks for supported channels
- Ensure processing status is properly finished on sync and async message handling paths
- Add tests for processing status lifecycle and capability detection across channels
2026-05-15 12:45:41 +08:00
jxxghp
f8d096f476
fix: 支持飞书语音消息识别
2026-05-13 12:45:32 +08:00
jxxghp
b24127e66f
fix: map feishu user identity for agent subscribe
2026-05-13 12:14:05 +08:00
jxxghp
669ca713cf
fix(feishu): add configurable margin to card sections and actions for improved layout with images
2026-05-13 11:43:37 +08:00
jxxghp
f2fd28bf4d
fix(feishu): place images at top of interactive cards and remove body padding for better visual layout
2026-05-13 11:31:38 +08:00
jxxghp
3852c0e43e
feat(feishu): support embedding images in interactive cards and sending mixed image+file messages
...
- Enhance Feishu card builder to embed images using remote URLs or uploaded files
- Add logic to send image card first, then file attachment when both image and file are present
- Update card schema to 2.0 and use new button behaviors for callbacks and URLs
- Improve callback data extraction for both new and legacy card actions
- Extend tests to cover image embedding, mixed messages, and new card structure
2026-05-13 11:14:11 +08:00
jxxghp
6fb6996d81
fix: ensure stop_streaming waits for inflight initial flush before final edit; improve message edit/delete return types and logging
...
- Update stop_streaming logic to await inflight initial flush task, preventing duplicate message sends on stream stop
- Change message edit/delete methods to return Optional[bool] for clearer channel mismatch handling
- Refine Feishu logging to include message_id instead of full data object
- Suppress allowed_objects warnings in __init__.py
- Add test to verify stop_streaming waits for inflight flush before final edit
- Update .pylintrc to use 'E' for error enabling
2026-05-13 10:11:31 +08:00
jxxghp
4c16704ca2
feat(feishu): add info logging for successful message and reply responses
2026-05-13 08:53:39 +08:00
jxxghp
f017eaedcc
feat: add logging for Feishu streaming card updates and handle update failures more explicitly
2026-05-13 08:44:57 +08:00
jxxghp
19526146c5
docs: update docstrings for message metadata and reply fields; fix markdown capability check in format instructions; improve streaming card update logic in Feishu
2026-05-13 08:36:27 +08:00
jxxghp
7b4cb2097b
refactor(feishu): promote download helper methods to public, update call sites and tests
2026-05-13 08:19:16 +08:00
jxxghp
b6062a9ce2
fix(feishu): unconditionally inc streaming sequence to prevent locking; send fallback as normal msg
2026-05-13 08:08:59 +08:00
jxxghp
ea8a90aa0a
fix(feishu): handle more IM websocket events
2026-05-13 07:10:44 +08:00
jxxghp
fa939dfbe6
fix(agent): reply Feishu agent streams with cards
2026-05-13 06:56:03 +08:00
jxxghp
77aa65bfdc
fix(agent): route streaming finalization through channel modules
2026-05-13 00:50:53 +08:00
jxxghp
d86d24fc4f
feat(feishu): enhance message handling with file and voice support, add reaction management
2026-05-13 00:34:03 +08:00
jxxghp
0989439d25
feat(feishu): enhance message handling with file and voice support, add reaction management
2026-05-13 00:07:36 +08:00
jxxghp
a46ce24691
feat(venv): add uv compatibility for pip commands and enhance virtual environment setup
2026-05-12 23:01:27 +08:00
jxxghp
57bb67e547
feat(feishu): enhance message target resolution and add user ID type handling
2026-05-12 22:39:10 +08:00
jxxghp
624862dfc6
feat(notification): add Feishu notification channel support
2026-05-12 21:40:55 +08:00