jxxghp
ec5ff575f0
fix(agent): restore API bodies before direct request dispatch
2026-10-23 07:55:16 +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
d51320103c
fix: make local setup and bundled skill operations recoverable ( #7150 )
...
* fix: make local setup and bundled skill operations recoverable
* test: verify user updates with real transaction runners
2026-10-23 06:49:13 +08:00
jxxghp
5fc4f2efd8
fix(music): match verified bilingual artist and title aliases
2026-10-22 18:21:12 +08:00
InfinityPacer
cba9779a8a
build(docker): refresh system packages against a tracked baseline
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-22 16:36:44 +08:00
jxxghp
17a866f47b
fix(transfer): restore AI takeover for failed transfers
2026-10-22 09:43:03 +08:00
jxxghp
fa67be8e4a
fix(scraping): normalize artwork and reuse downloads for aliases
...
Add independent alias and Fanart 4K switches, identify exact artwork names, preserve episode and season conventions, and detect missing images across case and format variants. Normalize downloaded bytes to JPEG or PNG and reuse one request with storage hard links or local upload copies.
Refs #7128
2026-10-22 09:25:42 +08:00
jxxghp
9d534d1954
fix(search): restore complete packs before initial parts
2026-10-22 07:37:31 +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
jxxghp
85af231b20
feat(config): support deployment secrets without persisting values
2026-10-21 07:03:39 +08:00
jxxghp
6c68225a07
ci(startup): 固定冷导入耗时上限为三秒
2026-10-20 20:44:01 +08:00
jxxghp
43424e592c
fix(subscribe): 全集洗版始终使用洗版规则筛选资源 ( #7111 )
2026-10-20 20:22:18 +08:00
alexcastgonz
14b9ea6d3e
fix(setup): 更新 Google 默认模型并兼容 Gemini 3.8 思考级别 ( #7109 )
...
* fix(setup): 更新 Google 默认模型为 gemini-3.8-flash
安装向导中 Google 的预设模型 gemini-2.5-flash 对新建的 Gemini API 密钥
已返回 404,在模型选择处直接回车会写入无法使用的 LLM_MODEL。改为
Google 文档中推荐给新项目的稳定模型 gemini-3.8-flash。
新增用例校验预设值不再是 Gemini 2.5 系列。
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
* fix(llm): honor Gemini 3.8 minimum thinking level
---------
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com >
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-20 18:41:57 +08:00
JontyLee
d57af7979e
fix(download): 重复接受且零新增交付的种子按资源退避,订阅改试其他资源 ( #7107 )
...
* fix(download): back off resources re-submitted with no new files
A subscription that re-selects an already-held package gets accepted by the
downloader again every search round, so the same resource keeps being
submitted while nothing new can be delivered. Record a resource-scoped
backoff when a reused task contributes no file rows: it suppresses only that
one resource, so candidates keep trying other torrents for the same media and
the subscription is neither completed nor failed. The cooldown ledger is no
longer failure-only, so the skip log reports the recorded reason instead of
claiming the add failed.
* fix(download): keep duplicate backoff stable across selection
---------
Co-authored-by: jianlin6 <jianlin6@jianlin6-MacBookPro.local >
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-20 18:35:14 +08:00
jxxghp
cdb6560b5f
ci: round startup median budgets up to whole seconds
2026-10-20 13:47:44 +08:00
jxxghp
c732844f46
chore(architecture): sync download notification dependencies
2026-10-20 12:18:59 +08:00
jxxghp
80a92ddb29
fix(notification): preserve download template titles
2026-10-20 12:09:05 +08:00
jxxghp
9f03157977
fix(transfer): ignore timestamps in cleanup identity checks
2026-10-19 19:09:12 +08:00
jxxghp
cfec9497f5
fix(feishu): 补充资源选择卡片的站点、大小和做种数 ( #7085 )
...
* fix(feishu): show site size and seeders in torrent cards
* chore(architecture): record Feishu size formatting dependency
2026-10-19 18:47:30 +08:00
jxxghp
c85f9b262f
feat(agent): isolate interactive execution from background services ( #7083 )
2026-10-19 18:12:05 +08:00
JontyLee
0609ac9e01
fix(download): 复用下载器已有任务时不再重复通知与记录文件明细 ( #7078 )
2026-10-19 17:56:58 +08:00
jxxghp
379c26a300
feat(subscribe): record initial and upgrade download provenance ( #7061 )
2026-10-19 16:03:21 +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
jxxghp
05967cdc0f
fix(music): sync local covers during automatic transfers ( #7064 )
2026-10-18 22:04:24 +08:00
DDSRem
e1b703aacc
refactor(agent): centralize graph resource ownership ( #7062 )
2026-10-18 21:49:57 +08:00
jxxghp
f2b0064449
docs: refresh backend architecture overview
2026-10-18 14:41:04 +08:00
jxxghp
2d73cbc43e
docs: drop process records and internal implementation docs
...
Keep only install, usage, development-workflow and architecture-boundary
documents; remove the one-off refactor plans, audits and ledgers that had
already served their purpose.
- delete docs/refactor plus the agent API surface audit generator and its
drift-only tests; the fixed route registry remains the source of truth
- delete internal implementation notes (agent, music, notification, transfer,
subscription activity, docker startup, V3t runtime governance)
- delete site adapter capture/release shims and the ADR records; external
links point at MoviePilot-Site-Collector instead
- keep docs/architecture-overview.md and gate its dependency and event
figures against the generated fixtures
- drop doc-only assertions from the architecture baseline test and retarget
remaining references at code and rule documents
2026-10-18 14:24:49 +08:00
jxxghp
9edb92620e
docs(mcp): rewrite external Agent integration guide
2026-10-18 14:12:01 +08:00
jxxghp
b12c112fe1
chore(types): gate mypy debt as exceptions and require zero new files
...
mypy 门禁此前只表达“只降不增”,没有把存量债务和新增文件分开:拆包迁移按目录前缀
继承额度,同包后来新增的文件可以吸收旧文件剩余额度;本地缺 types-* 桩包时,
import-untyped 与派生的 no-any-return 会被计成债务增长。
调整后口径分三层:mypy.ini 严格清单必须零错误;基线登记文件是存量例外,按文件 +
错误码设上限;基线未登记的新文件必须零诊断。
- 迁移登记改为 Migration(sources, targets),额度只转给逐一登记的接收文件。
- classify_counts 返回 RatchetDiff,新增文件、存量增长、待固化低水位分组输出。
- 缺少 types-* 时直接报环境错误并要求 uv sync --locked,不写入基线。
- 删除 7 个已消耗的迁移组,其旧路径已不在基线中。
验证:tests/test_mypy_gate.py 与 tests/test_architecture_ci.py 26 passed;
changed-file Pylint 10.00/10;Ruff ratchet、结构复杂度、mypy 严格清单与
mypy ratchet(2881 项存量)通过。
2026-10-18 13:46:37 +08:00
jxxghp
9bcebc2c52
fix(community): prewarm and refresh medal snapshots in background
2026-10-18 10:37:19 +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
jxxghp
30378f2fc8
fix(network): recover shared pools after repeated pool timeouts
2026-10-18 09:01:33 +08:00
jxxghp
f1e09b40d0
fix(types): preserve Plex SDK return contracts
2026-10-17 20:14:11 +08:00
jxxghp
16723f03a4
fix(types): preserve Feishu notification identity boundaries
2026-10-17 20:12:48 +08:00
jxxghp
a03e620c27
fix(types): make Emby response contracts explicit
2026-10-17 20:12:48 +08:00
jxxghp
acfe477c66
fix(types): make Discord callbacks and receipts explicit
2026-10-17 20:12:48 +08:00
jxxghp
74489ca32f
fix(types): make ZSpace response contracts explicit
2026-10-17 20:12:48 +08:00
jxxghp
0bde181702
fix(types): make Jellyfin response contracts explicit
2026-10-17 20:12:48 +08:00
jxxghp
bb7f7f7315
fix(types): clarify Ugreen session and media response boundaries
2026-10-17 20:12:48 +08:00
DDSRem
e33ae01aad
ci: gate v3 release on version value changes ( #7052 )
...
Co-authored-by: DDSRem <1448139087@qq.com >
2026-10-17 19:57:48 +08:00
Qinghe Li
85b367527e
fix(scraper): align built-in NFO results with text contract ( #7049 )
...
* fix(scraper): return NFO text from built-in providers
* test: cover type migration boundaries
* fix: silence dynamic import lint diagnostics
* test: keep coverage policy stable for nfo repair
* fix: preserve merged scraper documentation during conflict repair
---------
Co-authored-by: Derrors <derrors@local>
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-17 19:53:06 +08:00
DDSRem
2de976f6b3
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
...
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
c1d7deada8
fix(types): type messaging template and queue boundaries
2026-10-17 18:23:57 +08:00
jxxghp
999906e503
chore(types): gate TMDB and indexer cleanup
2026-10-17 18:02:33 +08:00
jxxghp
49f7d585b8
chore(architecture): restore U115 import edge
2026-10-17 17:45:19 +08:00
jxxghp
d85e9d2275
docs(types): align mypy debt metric
2026-10-17 17:40:43 +08:00