1472 Commits

Author SHA1 Message Date
jxxghp
10e9ade7de fix(site): preserve text category IDs and replay resource configs 2026-10-31 17:25:29 +08:00
LIN student
4dfcac8d04 fix(site): skip search parameters when listing site categories
- 站点分类接口只收集分类配置中的列表分组和字典项;field、delimiter、
  param 等搜索请求参数不再被当成分类逐字符返回,避免响应校验失败导致
  站点分类请求 500。
- 补充带搜索参数和非法分类项的回归测试,并校验结果符合接口响应模型。

Refs #7250

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:02:40 +08:00
ranzhigg
80a76dee56 fix(storage): bind management operations to verified targets 2026-10-30 17:37:14 +08:00
ranzhigg
6f11557eea fix: satisfy authorization PR checks 2026-10-30 16:26:44 +08:00
ranzhigg
914abf6273 fix: tighten API authorization boundaries 2026-10-30 16:14:49 +08:00
Cat
87561a90d1 fix(agent): route agent command receipts to the signed channel user (#7228)
- Agent 代渠道用户调用内部 API 时,把会话渠道与渠道用户写入宿主签发令牌的签名
  声明(agent_channel、agent_channel_user),不再新增可伪造的请求头。
- /commands/run 对 Telegram 等通知渠道只使用与请求渠道一致的签名渠道用户执行命令
  和投递回执;缺少该声明时明确拒绝,不再把 MoviePilot 用户表主键当作渠道 chat id。
  Web、WebAgent 与无渠道调用仍按 MoviePilot 用户 ID 处理。
- 只读公共资料借用宿主身份,不携带渠道发起人声明。
- 同步依赖基线与架构总览中的内部导入边数量。

Refs #7225

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-28 19:05:52 +08:00
jxxghp
d9afaba8dd feat(plugin): expose documentation before installation (#7222) 2026-10-27 21:37:00 +08:00
jxxghp
e9563b0346 perf(api): 合并卡片状态查询并减轻推荐轮询 (#7207) 2026-10-27 06:05:49 +08:00
jxxghp
42edfd1da8 fix(api): bound collection views and query calendar dates (#7200) 2026-10-27 00:40:09 +08:00
jxxghp
1bf496d0f3 fix(api): enforce token authentication for subscription list
Refs #7198
2026-10-26 23:19:31 +08:00
jxxghp
d66b58c475 feat(widget): enrich system and combined media summaries 2026-10-25 14:53:54 +08:00
jxxghp
d5ecf2927c feat(widget): 显示下载上传速度和剩余磁盘空间 (#7177) 2026-10-25 11:28:36 +08:00
jxxghp
86ededa739 feat(widget): 增加当前主登录的只读账号上下文 (#7176) 2026-10-25 06:28:57 +08:00
jxxghp
721c03734a feat(widget): 提供受限凭据和只读快照接口 (#7175)
* feat(widget): add restricted read-only snapshot foundation

* test(widget): 补齐运行时与文档迁移契约
2026-10-25 06:02:47 +08:00
jxxghp
6680e090e6 feat: 自动登记中心推送实例并安全轮换凭据 2026-10-24 09:17:24 +08:00
jxxghp
3ac7526930 feat(notification): relay AppPush through private MoviePilot Server 2026-10-24 07:32:00 +08:00
ranzhigg
e0ff8141f8 fix(transfer): allow safely discarding manual-review tasks (#7154) 2026-10-23 15:18:33 +08:00
Aqr-K
951cdc5b27 fix: arbitrate subscription identity and restore workflow state (#7147)
* fix: arbitrate subscription identity and restore workflow state

* test: preserve legacy empty-owner subscription transactions

* fix: align shared atomic configuration method with lifecycle prerequisite

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 08:14:15 +08:00
Aqr-K
fc0eed08cc fix: preserve directed messaging and channel interaction contracts (#7148)
* fix: retain plugin lifecycle ownership and recover installation state

* fix: preserve directed messaging and channel interaction contracts

* test: cover plugin rollback and uninstall lifecycle boundaries

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 07:49:53 +08:00
Aqr-K
6610a8c008 fix: retain plugin lifecycle ownership and recover installation state (#7146)
* fix: retain plugin lifecycle ownership and recover installation state

* test: cover plugin rollback and uninstall lifecycle boundaries

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 07:44:07 +08:00
Aqr-K
bcbf79f030 fix(media): preserve recognition and rule mutation identities (#7144)
* fix(media): preserve recognition and rule mutation identities

* test: cover typed classification facts with alias policies

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 07:33:27 +08:00
Aqr-K
598d1663b1 fix(download): preserve protocol failures and isolate site updates (#7143)
* fix(download): preserve protocol failures and isolate site updates

* test: cover tracker token lifecycle and record dependency facts

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 07:22:22 +08:00
Aqr-K
f3c1449c8b fix(storage): preserve transfer contents and cleanup identities (#7142) 2026-10-23 06:51:54 +08:00
Aqr-K
5aebc7ac59 fix(auth): preserve administrator and credential consistency (#7141) 2026-10-23 06:50:30 +08:00
jxxghp
17a866f47b fix(transfer): restore AI takeover for failed transfers 2026-10-22 09:43:03 +08:00
jxxghp
6d4ce83837 fix(types): clear host mypy debt and prevent typing regressions
严格检查全部宿主源码,清零类型错误预算并移除按模块类型豁免。
按原因、所属方法、错误码及语法指纹锁定必要兼容例外和站点类型桩,
CI 阻断新增忽略、检查范围退化、本地桩替代真实接口及新的类型错误。

修复空值、异步和供应方类型边界,保持插件与 API 兼容合同,
并补充存储、订阅、通知、Agent 和工作流边界的回归覆盖。
2026-10-21 22:03:18 +08:00
GuanAllen
458329b3f7 fix(indexer): 透传 mTorrent、HDDolby、Yema 的站点分类 (#7080)
* fix(indexer): 站点资源页页码归一化并让 mTorrent/HDDolby/Yema 支持分类透传

站点资源页传 1 起始页码,链路按 0 起始处理,mTorrent 再 +1 后请求 pageNumber=2,
导致单页关键词搜索返回空;同时站点页选择的分类没有透传到专站适配器,
Movie/TV 预置分类互相覆盖,分类筛选不生效。

- site.py: page 传入前归一化为 max(page-1, 0)
- indexer: mTorrent/HDDolby/Yema 专站参数补充 cat
- mtorrent.py: search/async_search/__get_params 支持 cat,显式分类优先
- hddolby.py: search/async_search/__get_params 支持 cat,显式分类优先
- yema.py: search/async_search/_prepare_search_requests 支持 cat,显式分类优先

* fix(indexer): preserve browse paging and support category lists

---------

Co-authored-by: GuanAllen <guanyelin@users.noreply.github.com>
Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-19 18:33:28 +08:00
jxxghp
4f98486e25 fix: restore popular years and safe Transmission selection 2026-10-19 12:17:56 +08:00
Aqr-K
bf4ef4214e perf(mediaserver): add caller-controlled query projections (#7068)
* perf(mediaserver): add caller-controlled query projections

* test(mediaserver): cover query projection option contracts

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-19 08:33:45 +08:00
DDSRem
e1b703aacc refactor(agent): centralize graph resource ownership (#7062) 2026-10-18 21:49:57 +08:00
DDSRem
e0642eafa7 chore(types): reduce v3 host mypy debt (#7057)
* chore(types): clear AniList endpoint mypy debt

* chore(types): clear Douban endpoint mypy debt

* chore(types): clear recommendation endpoint mypy debt

* chore(types): clear subscription notification mypy debt

* chore(types): clear SDK string compatibility mypy debt

* chore(types): ratchet v3 host mypy across remaining files

* chore(types): reduce v3 host mypy debt and retire ledger

* chore(types): reconcile host snapshot with upstream HTTP pool

* test(types): cover host paths exposed by mypy cleanup
2026-10-18 09:37:49 +08:00
DDSRem
2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
2ee564d857 fix(types): narrow subscription share response fields 2026-10-17 16:24:11 +08:00
cosini
e36884766c feat(douban): 新增豆瓣短评与影评接口
* feat(douban): 新增豆瓣短评与影评接口

* fix(douban): satisfy comment endpoint CI gates

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-17 12:31:41 +08:00
jxxghp
ea12cd34a5 fix(types): keep agent dependency cast coverage neutral 2026-10-17 09:11:50 +08:00
jxxghp
d5608b92df style(types): order storage schema imports 2026-10-17 09:11:50 +08:00
jxxghp
79e4088411 fix(api): validate Servarr movie fields before subscribe 2026-10-17 09:11:50 +08:00
jxxghp
1756415745 fix(types): type storage file listing endpoint 2026-10-17 09:11:49 +08:00
jxxghp
154b925d61 fix(types): validate auth exchange annotations 2026-10-17 09:11:49 +08:00
jxxghp
1b5bd8cb8e style(types): remove unused user import 2026-10-17 08:09:19 +08:00
jxxghp
3fd6d8de0b style(types): order site dependency imports 2026-10-17 08:09:19 +08:00
jxxghp
383af82872 fix(compat): preserve avatar payload format 2026-10-17 08:09:19 +08:00
jxxghp
baf4eb8246 fix(types): annotate torrent cache endpoints 2026-10-17 08:09:18 +08:00
jxxghp
294d8a0f78 fix(types): type user config responses 2026-10-17 08:09:18 +08:00
jxxghp
55404be9d0 fix(types): narrow site repository boundaries 2026-10-17 08:09:18 +08:00
jxxghp
4bc71e4db5 fix(types): narrow messaging repository boundary 2026-10-17 08:09:18 +08:00
jxxghp
f58ae3b6ee fix(types): preserve optional workflow plugin filters 2026-10-17 07:17:55 +08:00
jxxghp
68101746ae fix(plugin): recover invalid historical instance rows (#7039)
* fix(plugin): recover invalid historical instance rows

* fix(plugin): keep maintenance on existing startup path

* style(plugin): order maintenance test imports

* chore(architecture): record plugin instance validator edges
2026-10-17 06:34:25 +08:00
jxxghp
9b615a663a refactor(types): describe agent endpoint response payloads 2026-10-17 04:23:50 +08:00
jxxghp
bd29f943f1 refactor(types): declare webhook task completion contract 2026-10-17 03:41:27 +08:00