jxxghp
52fd495d38
refactor: normalize downloader file contracts
2026-08-24 02:10:04 +08:00
OneMoon
7205f8d9e2
fix(search): include plugin resources without indexers ( #6399 )
2026-08-23 09:21:04 +08:00
jxxghp
1bb6e36e8c
refactor: complete runtime configuration migration
2026-08-22 19:07:07 +08:00
jxxghp
5d9c6c8b19
refactor: expand runtime contracts and debt ratchets
2026-08-22 08:25:36 +08:00
jxxghp
820f7e8850
refactor: make download and transfer events durable
2026-08-22 08:03:00 +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
3e417c1ac5
refactor(chain): _mixins.py 更名 _transfer.py,统一功能域 mixin 命名
...
TransferChain 的 7 个功能域 mixin 集合文件按域更名 _transfer.py,
与 _recognition/_messaging/_interaction/_music 的单域命名约定对齐;
同步更新 transfer.py 导入、9 个测试文件 patch 目标与架构文档。
另含 chain 基类导入排序优化与未使用导入清理(copy/datetime 已随
dispatch 方法迁入 _messaging.py)。
2026-08-16 17:25:49 +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
jxxghp
6504cb36f5
fix(recognize): 修复识别测试仅传数据源时被成对身份校验误拒,名称识别与临时识别词恢复生效
...
- 8bf2f601 引入的显式身份成对校验把'仅传 media_source'也视为显式身份,识别测试恒传数据源导致直接返回未识别
- 成对约束仅在显式传 media_id 时生效;仅传数据源时保留为请求级识别源约束,按名称在指定数据源内识别
- 字符串来源经 normalize_media_source 规范,meta 自带同源身份(如 {tmdbid=})时优先按身份识别
- 新增 tests/test_recognize_source_selection.py 覆盖 source-only、同源身份采纳与成对拒绝场景
2026-08-16 05:36:40 +08:00
jxxghp
02f0dd0b9a
refactor(architecture): 修复模块依赖违规并强化架构守护
...
- 字幕编排上移 DownloadChain.download_site_subtitles,SubtitleModule 仅保留站点链接解析
- TransferChain.recommend_name 上移 TV episodes_info 获取,filemanager 模块不再导入 TmdbChain
- endpoint 穿透修复:WXBizMsgCrypt3 迁至 adapters/external/wechat_crypt.py;
music/tmdb 缓存管理、listenbrainz 常量、TMDbException、WechatClawBot 辅助统一经 chain 包装
- RuleParser 与 builtin_rules 合并为 application/filter_rules.py;
fsproxy/fsworker 迁至 adapters/system/
- chain/__init__.py 删除 qbittorrentapi/transmission_rpc 导入,消除后端协议类型泄漏
- 架构守护测试新增三项检查:模块间隔离、入口层穿透、下载器 SDK 泄漏
- 文档同步:05-architecture.md 记录 DB/Oper 聚合例外与迁移文件位置,AGENTS.md 更新所有权表
2026-08-16 04:59:17 +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
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
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
a322c4c375
feat(media): 媒体信息补充 TVDB slug 字段,修复 TheTvDb 数字 ID 链接 404
...
TVDB 已弃用数字 ID 直达 URL,仅 slug 形式可访问。详情接口在电视剧有 TVDB ID 时通过轻量 get_series 接口获取 slug,并随 MediaInfo 合并下发。Closes jxxghp/MoviePilot-Frontend#643
2026-08-10 21:41:04 +08:00
jxxghp
29f1eb4313
feat: 统一音乐识别与影视共享上报,优化相关参数处理
2026-08-09 13:23:26 +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
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
fb32c59713
feat: add AniList rankings and discovery
2026-07-22 12:53:58 +08:00
jxxghp
3b709b7f2e
feat: unify media source identity flow ( #6129 )
2026-07-21 20:20:09 +08:00
jxxghp
e3f80af74f
feat: expand metadata sources and media server sync ( #6129 )
2026-07-21 11:34:18 +08:00
jxxghp
7d2a730b0c
feat(web-agent): enhance message handling with edit capabilities and button descriptions
2026-06-26 13:44:49 +08:00
jxxghp
5e1bdfe725
fix: exclude notification history flag from event payload
2026-06-17 21:36:59 +08:00
jxxghp
e1ba9a2c97
feat: conditionally save message history based on save_history flag
2026-06-17 21:00:40 +08:00
jxxghp
d4b6d3f332
refactor: remove persist_output_message functionality and related database save logic
2026-06-17 16:14:35 +08:00
jxxghp
6a635ac720
feat: enhance agent download task controls
2026-06-15 13:51:35 +08:00
jxxghp
bef2a81296
fix downloader task status queries
2026-06-14 18:23:18 +08:00
jxxghp
e3c5a94c52
feat: add subtitle search functionality and related data handling
2026-06-09 06:46:26 +08:00
jxxghp
0e5c592862
refactor: centralize MoviePilot server helper
2026-05-27 12:56:45 +08:00
jxxghp
ac3432c54f
feat: support TMDB episode group (g=) in explicit media tags and custom identifiers
...
- Add episode_group (g=) parameter parsing to explicit media tags in both Python and Rust metainfo parsers
- Propagate episode_group through MetaInfo, MetaBase, MediaInfo, and context models
- Update SKILL.md and update_custom_identifiers.py docs to describe episode group usage
- Add tests for episode_group recognition in metainfo and chain recognition logic
2026-05-24 23:32:27 +08:00
jxxghp
a74f04a149
fix: simplify message typing lifecycle
2026-05-23 00:11:56 +08:00
jxxghp
71dc9df7ff
fix: ignore expected module rate limits
2026-05-20 09:38:37 +08:00
jxxghp
7866aee1de
fix: stop torrent search paging after short pages
2026-05-19 17:54:39 +08:00
jxxghp
3ee601574c
fix: reduce low-risk pylint issues
2026-05-17 08:01:39 +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
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
album
05b34b9c26
feat(transfer): 增加手动整理预览模式(preview mode)
...
- ManualTransferItem/TransferTask 增加 preview 字段,支持同一接口双模式
- /api/v1/transfer/manual 透传 preview,预览时返回结构化结果不落盘
- ChainBase.transfer 增加 preview 参数并透传到 run_module
- TransferChain.do_transfer 预览分支复用完整命名/覆盖判定逻辑(dry-run)
- TransferChain.do_transfer 预览结束后显式 finish_task/fail_task,避免任务残留 running 状态导致重复预览失败
- TransHandler.transfer_media 预览分支跳过实际 copy/move/link/delete,仅返回目标路径
- FileManagerModule.transfer 透传 preview 参数
- 修复 /manual 失败分支 dict 类型导致 Response.message 校验错误
- 兼容性:preview 字段有默认值,旧客户端不传参时行为不变
2026-05-12 10:14:58 +08:00
jxxghp
1d97f2e043
fix: align media recognition fallback and shared reporting
...
Route title and path lookups through the fallback-aware entrypoints so auxiliary matches can reuse pre-assist keywords without forcing image fetches in lightweight flows. Also reduce noisy agent shutdown logging during cleanup.
2026-05-10 07:54:55 +08:00
jxxghp
893b8eba86
fix: remove unnecessary reporting for cache misses in media recognition
2026-05-09 12:01:14 +08:00
jxxghp
4ef8b0ba99
fix: 修复订阅刷新共享识别缓存回填异常
2026-05-09 11:25:45 +08:00