Commit Graph

629 Commits

Author SHA1 Message Date
yanjunpu
2e8664c1dc fix(music): scope and rank manual search results 2026-09-09 03:57:20 +08:00
jxxghp
a69c9073cb feat(transfer): implement recovery commands for discarding corrupt tasks 2026-09-08 23:15:38 +08:00
jxxghp
64543a3765 Merge branch 'v3' into codex/music-album-batch-transfer 2026-09-08 22:29:45 +08:00
yanjunpu
13f0ac4faa fix(transfer): reidentify selected music history batches 2026-09-08 22:17:45 +08:00
yanjunpu
83a0e21035 Merge remote-tracking branch 'origin/v3' into codex/manual-source-classification 2026-09-08 22:10:15 +08:00
jxxghp
f9f2601144 fix(transfer): deduplicate recovery failures and system alerts 2026-09-08 14:28:40 +08:00
jxxghp
a2f1407c95 Merge pull request #6601 from dogodefi/codex/music-release-preferences
feat(music): add MusicBrainz release preferences
2026-09-08 14:27:06 +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
bf11461d11 docs(architecture): sync dependency edge metrics 2026-09-08 09:39:46 +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
1f728996eb feat(music): add release region and script preferences 2026-09-08 05:20:02 +08:00
yanjunpu
9985e22e82 fix(download): apply effective music category paths 2026-09-08 02:56:14 +08:00
yanjunpu
78b678a5df fix(classification): add safe music category defaults 2026-09-08 02:24:49 +08:00
yanjunpu
f0198c22e1 fix(download): harden source organization planning 2026-09-08 00:10:41 +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
7c270737f0 fix(download): satisfy source classification gates 2026-09-07 23:47:01 +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
4a66d43366 fix(types): 补齐模块基类注解,消除新模块的类型门禁失败
Architecture Contract Gate 的 mypy ratchet 报出新模块两条错误,根因都在基类:

- ConfigReloadMixin.__init_subclass__ 缺注解,导致所有继承它的模块在类型化
  上下文中被判 no-untyped-call
- _ModuleBase.init_setting 的返回注解为 Tuple[...],与其文档说明的
  「不实现该方法或返回 None 代表不使用开关」矛盾,子类如实声明 Optional
  就会被判 override 不兼容

两处均为纯注解修正,无行为变化。全量 mypy 错误由 9,496 降至 9,441(净减 55,
未新增任何错误),出错文件 514 → 513;同步固化 mypy 低水位与架构清单中的计数。
2026-09-07 14:33:01 +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
jxxghp
44c41ec476 fix(config): separate auto-update and dev tracking settings for clarity 2026-09-07 13:35:52 +08:00
jxxghp
8167922949 docs(architecture): sync ruff metric 2026-09-07 12:02:48 +08:00
jxxghp
373c398a7b chore(architecture): refresh host dependency baseline 2026-09-07 11:35:41 +08:00
jxxghp
c56734a826 fix(docker): apply release updates before supervisor restart 2026-09-07 08:28:14 +08:00
yanjunpu
2361470af4 feat(download): classify existing source locations 2026-09-07 00:33:44 +08:00
jxxghp
e3a5e8a3e9 docs(architecture): sync mypy debt metric 2026-09-06 22:59:15 +08:00
jxxghp
d5605bb0a1 fix(scheduler): gate release update checks 2026-09-06 21:50:40 +08:00
jxxghp
e6f531d47f refactor: manage Docker processes with supervisor 2026-09-06 21:21:06 +08:00
jxxghp
801fe5a34f chore(architecture): sync mypy baseline 2026-09-06 10:29:28 +08:00
jxxghp
365a00cc4a chore(architecture): refresh dependency baseline 2026-09-06 10:20:55 +08:00
jxxghp
49414ffad2 test: 清理重复单元测试并记录审计依据 2026-09-06 07:58:07 +08:00
jxxghp
be41517520 fix: 防止音乐署名清理截断真实曲名 2026-09-06 04:55:08 +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
41d46d1b5c fix: 无损合并旧分类枚举并隔离迁移校验失败 2026-09-05 23:08:25 +08:00
jxxghp
b432354592 fix(update): use managed progress execution 2026-09-05 22:28:15 +08:00
jxxghp
cb2ad2a13a chore(architecture): sync update dependency baseline 2026-09-05 21:48:16 +08:00
jxxghp
e28f4a11cd feat(update): add interactive channel upgrade flow 2026-09-05 21:35:30 +08:00
jxxghp
b4be185e44 fix(subscribe): tolerate partial site search failures 2026-09-05 20:03:09 +08:00
jxxghp
821d7301de fix(subscribe): synchronize queue contracts 2026-09-05 18:29:07 +08:00
jxxghp
54cc3d368d refactor(subscribe): isolate queued search execution 2026-09-05 18:09:25 +08:00
jxxghp
55b7633c3f chore(architecture): refresh subscription dependency baseline 2026-09-05 17:34:19 +08:00
jxxghp
7251400237 fix(api): 修复音乐详情响应校验 2026-09-05 16:42:15 +08:00
jxxghp
e656793aa5 refactor(api): split management endpoint routers 2026-09-05 16:05:27 +08:00
jxxghp
c67622f1ad docs(architecture): refresh API dependency baseline 2026-09-05 15:27:12 +08:00