jxxghp
c765604b36
feat(notification): add DingTalk robot channel
2026-08-22 12:02:24 +08:00
jxxghp
1a7c3cfff8
feat(media): add native IMDb source module
2026-08-22 11:22:59 +08:00
jxxghp
7b9499fc5b
feat(plugin): add virtual plugin instances
2026-08-22 09:40:38 +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
InfinityPacer
5b367011c5
refactor(agent): 按需加载 Agent 运行时 ( #6336 )
2026-08-16 19:25:24 +08:00
jxxghp
441ec9475e
refactor(api): LLM 提供商管理端点收敛为通用 manage 接口,端点层零特色
...
- schemas 新增 LlmProviderAction 公共动作词汇表
- LLMProviderManager 新增 provider_manage 统一入口,默认值填充、
API Key 豁免判断、密钥脱敏与错误归因改写全部下沉封闭,
不再硬编码 chatgpt/github-copilot 等产品名
- endpoint 收敛为 POST /llm/manage(ManageRequest 透传);
OAuth 回跳地址由端点按具名回调路由统一构造后注入动作参数,
/provider-auth/callback/{provider_id} 因浏览器回跳协议约束保留具名路由
- 新增 14 项 provider_manage 契约守护测试,
替换原针对端点函数的两个旧测试文件
2026-08-16 07:50:16 +08:00
jxxghp
a6dbd799d5
refactor(api): 渠道与存储管理端点通用化,端点层零目标特色
...
- schemas 新增公共 ManageRequest(target+action+params) 与 StorageAction 词汇表
- endpoint 层收敛为 POST /notification/manage、/storage/manage 两个通用接口,
不再定义任何渠道/存储特定的名称、参数与响应字段,前端上送参数原样透传
- chain 层 manage_channel/manage_storage 接受字符串标识纯透明转发,
StorageChain 移除全部特色管理方法
- FileManagerModule 新增 storage_manage 统一入口,模块返回归一化为
{success, message, data};wechatclawbot channel_manage 同步归一化,
路由标识兼容枚举名/值/对象
- dashboard 与 agentopsassistant 的用量查询改走 manage_storage(usage)
- 新增 10 项存储契约守护测试,通知侧补充 3 项链透传与字符串路由测试,
API 守护测试对 ManageRequest 开放映射按设计豁免
2026-08-16 07:18:49 +08:00
jxxghp
5b0c631f80
refactor(notification): 建立通知渠道通用管理契约 channel_manage
...
- schemas 层新增 NotificationAction 公共动作词汇表(状态/二维码/退出/连通性/缓存迁移)
- 模块实现统一 channel_manage(channel, action, **params),按渠道名路由,
非本渠道返回 None;动作语义、表单参数解释与临时参数初始化封闭在模块内
- NotificationChain 收敛为单一 manage_channel 纯透明转发,
chain 层不再出现任何渠道名与模块特色
- endpoint 路由路径保持前端兼容,内部统一走通用接口
- 新增 6 项契约守护测试,文档记录通用模式:新渠道接入无需改 chain
2026-08-16 06:35:46 +08:00
jxxghp
4345fcfa22
refactor(chain): chain 与 module 仅经 run_module 契约互联,实现模块内容封闭
...
- mTorrent 字幕链接解析下沉为 IndexerModule.site_subtitle_links,subtitle 模块自行跳过 API 站点
- TMDB/MusicBrainz 识别缓存管理改为模块方法(tmdb_cache_*/music_cache_*)经 run_module 分发
- WechatClawBot 客户端查找/临时客户端/缓存迁移内聚为 wechatclawbot_* 模块方法,
chain 移除 WechatClawBot 类与 ModuleManager 内省
- LISTENBRAINZ_* 常量迁至 schemas/types.py,模块与链层再导入保持兼容
- TMDbException 升为 schemas/exception.py 跨层契约,vendored 异常保持类身份一致
- 架构守护测试新增 test_chain_does_not_import_module_internals(共 18 项)
- 文档同步:chain->module 仅允许 run_module 分发,直接导入禁止
2026-08-16 05:25:28 +08:00
jxxghp
eebd81a0e4
feat(media): support iqiyi discover source
2026-08-13 15:34:58 +08:00
jxxghp
b4863a6550
feat(media): support extensible media sources
2026-08-13 13:26:17 +08:00
jxxghp
ca32922a7f
refactor(media): unify media identity and chain responsibilities
2026-08-12 18:31:09 +08:00
jxxghp
8bf2f601a6
refactor(media): unify source identity and music browsing
2026-08-12 12:56:40 +08:00
jxxghp
a1dd259143
feat(media): refine primary-source recognition
2026-08-12 08:33:10 +08:00
jxxghp
97dba2a8ae
feat: unify media recognition and music lifecycle
2026-08-12 06:51:58 +08:00
jxxghp
3f1b0cdb05
feat(music): 支持多源识别与元数据刮削
2026-08-11 23:34:00 +08:00
jxxghp
97a5197e63
feat(recognize): 影视与音乐统一插件辅助识别链路
...
- 音乐并入 select_recognize_source 统一选择流程,支持插件优先/原生优先,按 MusicNameRecognize 事件与远端身份谓词区分
- 新增 MediaRecognize 链式事件,与 MusicMediaRecognize 对称,统一为 _supplement_media_recognize 补充识别
- 插件回写统一要求 source 与远端身份,采信后统一上报共享识别
- 插件优先模式下辅助识别未取得身份时保留原生兜底结果
2026-08-11 13:23:37 +08:00
jxxghp
75e56d8e9a
feat(music): add audio quality workflow
2026-08-10 10:23:02 +08:00
jxxghp
b3b376f2b1
feat(agent): complete music workflow support
2026-08-10 08:11:54 +08:00
jxxghp
aa4023e0a5
feat(music): scrape lyrics during library import
2026-08-09 22:22:31 +08:00
okatu-loli
7650ec5cef
feat(storages): 新增 AList 存储类型
2026-08-09 14:48:18 +08:00
jxxghp
60aa762ca1
feat: 音乐识别与刮削统一入口整合
...
- 音乐识别统一走 recognize_media,移除 MusicChain.recognize/async_recognize 及 /music/search 独立端点
- 音乐刮削收拢到 MediaChain.scrape_music_metadata,消除 MusicChain 对 MediaChain 的嵌套引用
- MetaInfo/MetaInfoPath 增加 force_video 参数,影视附加音轨保留季集归属
- 整理、订阅、搜索、API 层音乐识别入口全部统一
2026-08-09 10:06:54 +08:00
jxxghp
415ccda6a2
feat(v3): enhance music server integration with Navidrome support
2026-08-08 12:57:09 +08:00
jxxghp
05d15a04f5
feat(v3): add music automation workflow
2026-08-07 21:50:22 +08:00
jxxghp
a23fce1491
feat: 统计共享媒体识别命中次数
2026-07-30 17:50:16 +08:00
jxxghp
c976741574
feat(transfer): control mounted directory cleanup
2026-07-30 17:45:13 +08:00
jxxghp
e3f80af74f
feat: expand metadata sources and media server sync ( #6129 )
2026-07-21 11:34:18 +08:00
jxxghp
b51971ee7d
feat: add agent MCP support
2026-07-08 08:44:33 +08:00
jxxghp
4233ebfba6
Persist notification clear markers
2026-06-24 16:58:08 +08:00
InfinityPacer
93056ed1ff
feat(plugin): add pre-reset plugin data event ( #5957 )
2026-06-17 06:34:15 +08:00
jxxghp
e8ae686d4f
feat: add WebAgent support for streaming and notifications
2026-06-16 19:21:31 +08:00
jxxghp
bef2a81296
fix downloader task status queries
2026-06-14 18:23:18 +08:00
InfinityPacer
69a064e986
feat(subscribe): 新增订阅总集数刷新与完成检查链式事件 ( #5860 )
2026-05-30 08:26:47 +08:00
jxxghp
a725789045
feat: add agent token provider events
2026-05-25 07:32:36 +08:00
InfinityPacer
9e0846961f
feat(filemanager): add TransferRenameBuild chain event and fix TemplateContextBuilder concurrency ( #5792 )
2026-05-20 09:41:42 +08:00
jxxghp and Claude Opus 4.7
34ff80e26c
feat: optimize scraping for multi-server compatibility
...
- Add studio, country, runtime tags to NFO generation
- Fix Fanart naming: showbackground→fanart (recognized by Jellyfin/Emby)
- Add image alias system: backdrop↔fanart, thumb↔landscape
- Merge image sources from all modules instead of first-wins
- Add CLEARART and LANDSCAPE scraping metadata types
- Extend season scraping with backdrop and landscape support
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 12:36:47 +08:00
Album
9e9c398177
feat: 新增集数定位模板生成接口 ( #5785 )
2026-05-19 07:18:28 +08:00
jxxghp
624862dfc6
feat(notification): add Feishu notification channel support
2026-05-12 21:40:55 +08:00
jxxghp
6db1dd2067
feat: add ZSpace media server support with authentication and item management
2026-05-11 18:09:38 +08:00
jxxghp
68706d3d5b
feat: add standalone wechat clawbot notifications
2026-05-10 21:47:35 +08:00
DDSRem and Claude Opus 4.6
4d9f17b083
feat(transfer): 新增 TransferOverwriteCheck 事件支持插件介入覆盖判断
...
允许插件在覆盖模式判断前提供目标文件的真实大小或直接给出覆盖决策,
解决 .strm 等本地大小不准的场景下 size 模式失效的问题。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 17:28:24 +08:00
jxxghp
1f526adbe7
feat: add NotificationType for Agent messages
2026-04-02 19:13:05 +08:00
Attente
48b59df11b
refactor(media): 引入配置化刮削策略
2026-03-19 21:25:57 +08:00
PKC278
b50a3b9aae
feat: 工具输入输出统一为movie或tv
2026-03-18 17:07:03 +08:00
EkkoG
65c18b1d52
feat(qqbot): implement QQ Bot notification module with API and WebSocket support
...
- Added QQ Bot notification module to facilitate proactive message sending and message reception via Gateway.
- Implemented API functions for sending C2C and group messages.
- Established WebSocket client for real-time message handling.
- Updated requirements to include websocket-client dependency.
- Enhanced schemas to support QQ channel capabilities and notification configurations.
2026-03-07 23:21:07 +08:00
doumao
296261da8a
feat: 完成绿联影视接入并补齐扫描模式与统计展示
2026-02-28 21:58:35 +08:00
DDSRem and Claude Opus 4.6
c35faf5356
feat(downloader): add rTorrent downloader support
...
Implement rTorrent downloader module via XML-RPC protocol, supporting both HTTP (nginx/ruTorrent proxy) and SCGI connection modes. Add RtorrentModule implementing _ModuleBase and _DownloaderBase interfaces with no extra dependencies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 13:12:22 +08:00
jxxghp
7218d10e1b
feat(transfer): 拆分字幕和音频整理事件
2026-01-26 19:33:50 +08:00
jxxghp
e1b3e6ef01
fix:只有媒体文件整完成才触发事件,以保持与历史一致
2026-01-21 20:07:18 +08:00