135 Commits
Author SHA1 Message Date
jxxghp a69c9073cb feat(transfer): implement recovery commands for discarding corrupt tasks 2026-09-08 23:15:38 +08:00
yanjunpu 5a4a5a1188 Merge remote-tracking branch 'origin/v3' into codex/manual-source-classification
# Conflicts:
#	docs/architecture-overview.md
#	docs/architecture/optimization-checklist.md
#	tests/fixtures/architecture/dependency-baseline.json
2026-09-08 13:45:01 +08:00
jxxghp ca627a4f00 fix: release plugin media sources from built-in declarations 2026-09-08 10:00:33 +08:00
jxxghp 8255df4df4 fix(subscribe): remove cumulative search delays and resume pending sites 2026-09-08 08:58:35 +08:00
jxxghp b85aa5e31b feat(subscription): add search_interval and last_search fields for subscription management 2026-09-08 07:12:21 +08:00
yanjunpu e267a18476 Merge remote-tracking branch 'origin/v3' into codex/manual-source-classification
# Conflicts:
#	tests/fixtures/architecture/dependency-baseline.json
2026-09-07 23:50:34 +08:00
yanjunpu 0570eb24fc Merge remote-tracking branch 'origin/v3' into codex/manual-source-classification 2026-09-07 23:27:11 +08:00
jxxghp 7ccb1d9dee feat(classification): provide source-aware condition dictionaries 2026-09-07 23:21:25 +08:00
jxxghp b40eda2617 fix(transfer): preserve durable retry for failed manual history 2026-09-07 23:17:00 +08:00
thsrite d04b721f84 feat(mediaserver): 新增 MediaVault 自建媒体库模块
通过 MediaVault 管理端口的原生接口接入自建媒体库,凭据为管理面板的长效 API Key:

- 媒体库列表、条目分页遍历、条目详情与总数
- 按标题/年份/媒体身份判断电影与剧集存在性,季集齐全度与季集条目 ID
- 数量统计、最近入库、继续观看、封面与背景图直链、播放地址
- 入库后按目标路径命中媒体库并排队后台扫描,未命中时回退全库扫描
- 用 MediaVault 账号完成 MoviePilot 用户认证

MediaVault 无音乐库也不外发 Webhook,get_music 与 webhook_parser 不实现;
图片直链自带 API Key,无需 mediaserver_image_cookies。

同时把 mediavault 接入 mediaserver-operation Agent Skill 的 provider 清单。
2026-09-07 13:49:10 +08:00
yanjunpu 2361470af4 feat(download): classify existing source locations 2026-09-07 00:33:44 +08:00
jxxghp a01a941c11 fix: 对齐音乐备选来源匹配并校验录音版本证据 2026-09-06 04:06:00 +08:00
jxxghp 976cecce8f fix: 对齐音乐候选识别和缓存匹配规则 2026-09-06 02:21:03 +08:00
jxxghp 916619f2e2 fix: 对齐音乐识别词并补齐版本和专辑匹配证据 2026-09-06 01:28:47 +08:00
jxxghp fba0b6ae67 refactor: 统一音乐与影视的识别搜索匹配流程 2026-09-06 00:48:00 +08:00
jxxghp f00853de2a feat(api): expose frontend-safe management capabilities 2026-09-05 15:11:02 +08:00
jxxghp adae5bd878 fix(api): restore full plugin catalog by default 2026-09-04 10:47:02 +08:00
InfinityPacer 68880dbbf1 优化订阅执行治理与规模性能 (#6557)
* feat(subscription): govern concurrent search and match execution

* refactor(subscription): consume complete candidate snapshots

* refactor(subscription): remove download submission ledger

* feat(subscription): stagger fallback searches without site gaps

* refactor(subscription): remove unused retry capability

* test(subscription): verify complete scale execution

* fix(subscription): surface site search failures

* test(subscription): verify site pressure through search

* test(subscription): use static facade imports

* fix(subscription): preserve completed downloads on shutdown

* fix(subscription): classify execution expiry as failure

* fix(subscription): preserve fallback search staggering

* test(subscription): stabilize unfinished wrapper gate

* fix(subscription): settle expired search returns

* style(subscription): normalize governance imports

* fix(subscription): align governance type contracts

* docs(architecture): sync mypy debt metric

* docs(architecture): sync startup module counts
2026-09-03 11:26:24 +08:00
jxxghp c20515971a fix: restore multi-exception syntax 2026-09-02 20:22:57 +08:00
jxxghp e57288b5ea refactor(subscribe): satisfy global governance gates 2026-09-01 17:09:55 +08:00
jxxghp 2f7f2da300 fix(agent): preserve collection totals in truncated results 2026-09-01 10:49:22 +08:00
jxxghp d512f528be refactor(api): make collection pagination explicit 2026-09-01 09:13:56 +08:00
jxxghp a73714e5e7 feat(agent): add compatible collection pagination 2026-09-01 07:43:55 +08:00
jxxghp 6d4d7331d1 refactor: complete agent skill API contracts 2026-09-01 01:19:45 +08:00
jxxghp 632363730a feat(agent): expose self-describing service operations 2026-08-31 20:45:33 +08:00
jxxghp 9371f7d183 fix(agent): initialize service skills with database sessions 2026-08-31 19:40:28 +08:00
jxxghp ec1a878a32 fix(agent): auto-load gateway skill before API calls 2026-08-31 18:42:25 +08:00
jxxghp fdba2c7d64 refactor(agent): unify tools behind API gateway and provider skills 2026-08-31 16:57:54 +08:00
jxxghp 574c50586e feat(music): 完善歌词与专辑目录整理 2026-08-25 21:02:26 +08:00
jxxghp 13c84d3d03 fix(ci): align update contracts 2026-08-24 18:13:03 +08:00
jxxghp 84326e20de feat(system): add staged release updates 2026-08-24 17:58:03 +08:00
jxxghp 9273d68aa7 feat(telegram): support rich Agent messages 2026-08-22 10:11:18 +08:00
0069d04b18 feat(download): 支持未识别资源确认下载 (#6356)
* feat(download): 支持未识别资源确认下载

* feat(download): 音乐与影视统一未识别确认下载逻辑

* fix(download): 修正未识别媒体信息构造的类型标注与合集归一

---------

Co-authored-by: liulang <liulang@25qp.cn>
Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-08-19 13:40:47 +08:00
jxxghp d7e610e656 feat(agent): 新增 apply_patch 多文件补丁编辑工具
参考 Codex apply_patch 设计,支持单次调用对多个文本文件执行新增、
更新和删除:补丁以 *** Begin Patch / *** End Patch 包裹,Update 段
用 @@ 分隔 hunk,上下文行须与当前内容精确一致;先整体校验全部文件
操作,通过后才逐个原子写盘,并以校验期 sha256 防止并发修改。

- 工具描述与系统提示词明确 apply_patch / edit_file / write_file 分工:
  跨多文件或增删文件用 apply_patch,单文件单处替换用 edit_file
- 注册进工具工厂与 ALWAYS_INCLUDE 列表,加入策略 inventory 与
  MCP 隐藏列表,流式回调归类为 file_write
- 同步 create-moviepilot-plugin / publish-moviepilot-plugin /
  create-moviepilot-skill 技能的 allowed-tools 与版本
- 新增 tests/test_agent_apply_patch.py 覆盖解析、多文件应用、
  整体拒绝、权限边界与版本冲突场景
2026-08-17 08:01:59 +08:00
LinFei83 e5f0c53069 MCP get_search_results 增加 include_labels 按需返回种子标签 (#6335)
让 Agent 在筛选命中标签时能按需查看 labels,默认不返回以免拉长上下文。

Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit 6a02e7de21)
2026-08-16 17:38:19 +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 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 f17b0b1bb9 fix(api): restore successful query response semantics 2026-08-13 07:20:49 +08:00
jxxghp baf8850d63 refactor(api): standardize responses and restore media config contracts 2026-08-12 23:15:13 +08:00
jxxghp ca32922a7f refactor(media): unify media identity and chain responsibilities 2026-08-12 18:31:09 +08:00
jxxghp cbb969e0ff fix(music): default Douban explore to categories 2026-08-12 13:13:54 +08:00
jxxghp d1028a6902 feat(music): add TheAudioDB and Douban discovery 2026-08-12 10:50:13 +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 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 36666313b7 feat: 按媒体类型筛选搜索站点 2026-08-09 18:12:29 +08:00
jxxghp 05d15a04f5 feat(v3): add music automation workflow 2026-08-07 21:50:22 +08:00
jxxghp c6bd396794 Improve agent file reading and structured LLM summaries 2026-08-07 13:31:39 +08:00