53 Commits

Author SHA1 Message Date
Aqr-K
f84894faee fix(events): release handler ownership before notifying completion (#7206) 2026-10-27 05:43:57 +08:00
Aqr-K
ae4833e261 fix(publish): pin plugin reads and writes to one commit (#7204) 2026-10-27 05:43:16 +08:00
Aqr-K
b94b1c1496 fix(media): invalidate album cache when CUE content changes (#7203) 2026-10-27 05:42:40 +08:00
Aqr-K
71c2e9e3df fix(storage): retain history until target cleanup is confirmed (#7202) 2026-10-27 05:42:07 +08:00
Derrors
72d940b835 fix(storage): detect nested 115 changes with stale directory times
115 子项变化不保证推进祖先目录时间。禁用该存储的目录时间剪枝,沿用现有快照遍历、深度、分页及限流。补充 API 边界与真实轮询器回归,验证空基线、旧时间移入和重复派发。
2026-10-26 21:59:07 +08:00
jxxghp
8f21e12d75 fix(search): release unused site request reservations 2026-10-26 09:23:29 +08:00
jxxghp
251513f580 fix(search): honor the actual site rate limit when deferring
Refs #7187
2026-10-26 09:02:20 +08:00
jxxghp
046d4758e6 fix(search): persist processed candidates across queue resumes
Refs #7183
2026-10-26 08:50:04 +08:00
jxxghp
e1b0d5b4bf fix(indexer): identify HDDolby API connection failures (#7164) 2026-10-23 21:04:49 +08:00
jxxghp
cc3845621f fix(db): invalidate SQLite connections after I/O errors (#7161) 2026-10-23 19:42:31 +08:00
jxxghp
5fc4f2efd8 fix(music): match verified bilingual artist and title aliases 2026-10-22 18:21:12 +08:00
jxxghp
9d534d1954 fix(search): restore complete packs before initial parts 2026-10-22 07:37:31 +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
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
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
9bcebc2c52 fix(community): prewarm and refresh medal snapshots in background 2026-10-18 10:37:19 +08:00
DDSRem
2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
00645938d2 fix: isolate durable notification recovery 2026-10-17 13:11:15 +08:00
jxxghp
a92c4b597f ci: expand app coverage and async blocking gates 2026-10-17 06:52:51 +08:00
jxxghp
2149eb2a60 fix(download): provide fallback category for music torrents
Use the music media type as the downloader category only when music has no library classification. Preserve configured categories and qBittorrent automatic-management settings, with SDK-boundary regression coverage.

Refs #7028
2026-10-16 15:13:03 +08:00
jxxghp
4955b7b9ea fix: harden backend isolation and execution safety 2026-10-16 09:11:28 +08:00
jxxghp
43d50c387f fix(feishu): recover expired streaming cards with bounded retries
Reopen closed CardKit streams once and preserve monotonic sequences across recovery and finalization. Back off failed updates per card while retaining unsent Agent text.

Refs #6984
2026-10-14 12:54:29 +08:00
jxxghp
c4cd6c8ac4 fix(download): confirm tracker forms and blacklist invalid torrents 2026-10-13 21:54:37 +08:00
jxxghp
8cbba9916e fix(subscribe): prefer complete packs for initial TV downloads 2026-10-13 21:16:22 +08:00
jxxghp
6f9c0756c1 fix(download): reuse torrent content before resolving tickets (#6967) 2026-10-12 13:34:41 +08:00
jxxghp
dd90883c5d fix(torrent): respect tracker rate limits and quota cooldowns
Recognize explicit JSON rate limits before torrent parsing and short retries. Preserve per-call quota errors through download preparation so subscription cooldowns cover the tracker window.

Refs #6950
2026-10-10 23:34:35 +08:00
jxxghp
e9f0c693e2 fix(torrent): retry transient downloads and shorten empty-content cooldown 2026-10-10 00:05:22 +08:00
freeman
ed0460fc8b fix(smb): keep remote snapshots complete and recoverable 2026-09-30 21:19:41 +08:00
InfinityPacer
5d6e4b38b2 ci: split architecture gate into parallel jobs and drop duplicate event policy run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 19:28:13 +08:00
InfinityPacer
ec1c1ddcb4 ci: share architecture scans and stop rerunning gate tests in coverage shards
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:57:20 +08:00
InfinityPacer
99c6e0ba6e docs(workflow): distinguish contributor and maintainer execution (#6633) 2026-09-09 21:46:46 +08:00
jxxghp
cde05f4afc ci: reuse verified PR checks and balance coverage shards 2026-09-09 19:33:54 +08:00
jxxghp
49414ffad2 test: 清理重复单元测试并记录审计依据 2026-09-06 07:58:07 +08:00
jxxghp
ec1a878a32 fix(agent): auto-load gateway skill before API calls 2026-08-31 18:42:25 +08:00
InfinityPacer
45d069d9ec fix(ci): align release image tags and coverage gates
* ci: defer coverage from pull requests

* ci: parallelize coverage shards

* fix(ci): restore atomic latest image promotion

* docs: align coverage gate description

* fix(ci): align release image tags with upstream

* fix(ci): sanitize coverage artifact names

* fix(ci): refresh coverage ratchet baseline
2026-08-31 13:21:08 +08:00
jxxghp
265d3c6d1a fix(quality): close coverage ratchet 2026-08-26 22:10:23 +08:00
InfinityPacer
c727d9c9f1 test: 隔离单测中的站点原生资源 (#6452)
* test: isolate native site resources

* refactor(test): retain sites stub helper contract

* fix(test): preserve sites stub probe imports

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-08-25 16:26:46 +08:00
InfinityPacer
941c167084 docs(testing): scope local full-suite requirements (#6390) 2026-08-22 13:17:00 +08:00
jxxghp
0959831bae fix(ci): gate pylint on changed files 2026-08-21 19:50:06 +08:00
jxxghp
6c7c54d2c1 ci: enforce backend architecture contracts 2026-08-21 19:33:11 +08:00
InfinityPacer
638ea6f01e perf: 并行化后端单测并拆分覆盖率任务 (#6369) 2026-08-20 20:01:36 +08:00
InfinityPacer
23f5d59c74 feat: 使用 uv 锁定主程序依赖并强化插件恢复边界 (#6364) 2026-08-20 12:17:19 +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
InfinityPacer
36297572fb docs(agent): make repository workflow rules adaptive (#6281) 2026-08-13 04:01:00 +08:00
jxxghp
ca32922a7f refactor(media): unify media identity and chain responsibilities 2026-08-12 18:31:09 +08:00
jxxghp
0252b27b72 ci(v3): publish isolated docker images 2026-08-07 22:14:34 +08:00