Commit Graph

8037 Commits

Author SHA1 Message Date
kami
626e6cb472 fix(storage): refresh 115 upload token when SecurityTokenExpired (#6296) 2026-08-13 15:23:29 +08:00
InfinityPacer
3aed078bbb fix(agent): bind channel admin identity (#6294) 2026-08-13 14:53:59 +08:00
Aqr-K
eeec40cce3 fix(monitor): 消除探测饿死与重试饥饿导致的跨目录连坐 (#6291) 2026-08-13 14:00:50 +08:00
InfinityPacer
f979274c07 feat(agent): 增加最终模型请求预算观测 (#6290) 2026-08-13 13:52:30 +08:00
InfinityPacer
ce3508730b fix(agent): 规范化模型窗口 Profile (#6289) 2026-08-13 13:51:22 +08:00
jxxghp
d0e06e4b85 chore(database): align v3 migration filenames 2026-08-13 13:47:37 +08:00
jxxghp
b4863a6550 feat(media): support extensible media sources 2026-08-13 13:26:17 +08:00
InfinityPacer
f80562915d fix(agent): harden secret confirmation failures (#6287) 2026-08-13 10:55:02 +08:00
InfinityPacer
527ceff5d1 fix(agent): preserve context when summarization fails (#6286) 2026-08-13 10:07:56 +08:00
InfinityPacer
591a1d420d fix(agent): close secret confirmation delivery gaps (#6285) 2026-08-13 08:20:14 +08:00
Aqr-K
a2e70b443d fix(monitor,transfer): 修复 FUSE 挂载无响应导致的监控冻死、整理链锁死与漏件 (#6276)
* wip(v3): 移植监控与整理韧性修复到 v3 基线

包含:监控看门狗隔离/挂载探测、整理队列持久化、文件系统子进程代理、
写入原子化。迁移重挂到 v3 链 8a4c7e1d2f90 -> 7f5c1d2e3a4b -> e3d9f4b7c806。
tmdb 相关测试尚未通过,待定位。

* fix(v3): 修正移植引入的 16 项测试失败

- poller.py:合并时我方保留的行仍用旧变量名 merged_snapshot,而 v3 已统一
  改名为 current_snapshot,导致 NameError 被外层 except 吞掉、快照从未保存
- smb.py:采纳 f-string 拆分写法,恢复 Python 3.11 可解析
- dispatcher 测试:历史查重由 _should_skip_by_history 统一承担,mock 点随之调整
- tmdb 缓存测试:补充 v3 新增的 media_source/media_id 字段
- tmdb 重试测试:为 fake 补充 match_multi/async_match_multi

尚余 3 项与 v3 识别流程的连接失败处理有关,待单独判断。

* fix(v3): 测试适配 v3 的 media_source/media_id 重构

v3 将媒体标识从 tmdbid 统一重构为 media_source + media_id,recognize_media
的 tmdbid 参数已被 **kwargs 静默吞掉——传了也不生效,流程会误降级到名称搜索。
tmdb 重试用例改用新参数后恢复正确路径。

同时修正 fake 的 match_multi 语义:真实实现(tmdbapi.match_multi)吞掉所有
异常并返回 None,连接失败与「未找到」在该路径上本就不可区分,fake 需保持一致。

至此移植引入的 19 项失败全部清零。

---------

Co-authored-by: Aqr-K <Aqr-K@users.noreply.github.com>
2026-08-13 08:19:54 +08:00
InfinityPacer
4d11a38496 fix(agent): propagate task cancellation (#6284) 2026-08-13 08:12:00 +08:00
InfinityPacer
a6e8ba8b57 feat(agent): 敏感设置读取增加宿主二次确认 (#6283)
* feat(agent): require confirmation for secret settings

* fix(agent): preserve history during secret confirmation
2026-08-13 08:10:32 +08:00
jxxghp
949464d064 fix(schemas): normalize legacy media source key for recommend cache 2026-08-13 08:04:15 +08:00
jxxghp
f17b0b1bb9 fix(api): restore successful query response semantics 2026-08-13 07:20:49 +08:00
jxxghp
00607bf5b3 fix(api): restore recommendation response compatibility 2026-08-13 05:03:42 +08:00
DDSRem
e5b52dc0a8 chore: bump moviepilot-rust to 0.2.8 (#6282) 2026-08-13 04:59:10 +08:00
jxxghp
89265831e3 fix(metainfo): reject generic identity tags consistently 2026-08-13 04:38:58 +08:00
InfinityPacer
4ee7ee2589 feat(agent): 建立严格工具身份与调用契约 (#6280) 2026-08-13 04:07:59 +08:00
InfinityPacer
36297572fb docs(agent): make repository workflow rules adaptive (#6281) 2026-08-13 04:01:00 +08:00
jxxghp
baf8850d63 refactor(api): standardize responses and restore media config contracts 2026-08-12 23:15:13 +08:00
InfinityPacer
0ac641c05d fix(database): fail startup on migration errors (#6279) 2026-08-12 21:29:38 +08:00
InfinityPacer
46c2a856c4 fix(database): harden fresh migration chain compatibility (#6278) 2026-08-12 21:29:08 +08:00
InfinityPacer
4fac241658 test(music): isolate external recognition calls (#6277) 2026-08-12 20:01:51 +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
8bf2f601a6 refactor(media): unify source identity and music browsing 2026-08-12 12:56:40 +08:00
jxxghp
9359dcb63d Merge remote-tracking branch 'origin/v3' into v3 2026-08-12 10:55:59 +08:00
jxxghp
7ae3df7570 Merge remote-tracking branch 'origin/v3' into v3 2026-08-12 10:53:15 +08:00
jxxghp
5bb6c40227 Merge remote-tracking branch 'origin/v3' into HEAD 2026-08-12 10:51:37 +08:00
jxxghp
d1028a6902 feat(music): add TheAudioDB and Douban discovery 2026-08-12 10:50:13 +08:00
InfinityPacer
010899f369 feat(agent): add host policy foundation (#6273) 2026-08-12 10:48:14 +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
InfinityPacer
b018646f61 fix(agent): include core settings in AI agent group (#6272) 2026-08-12 00:13:53 +08:00
jxxghp
3f1b0cdb05 feat(music): 支持多源识别与元数据刮削 2026-08-11 23:34:00 +08:00
InfinityPacer
1197ece12b fix(agent): preserve episode lock on unchanged totals (#6271) 2026-08-11 23:17:21 +08:00
jxxghp
d7cf853bc8 fix(search): 支持单次搜索启用多个媒体数据源,合并显示所有源结果 (#6270)
- 新增 is_media_source_enabled/is_media_source_selected,请求级 source 支持逗号分隔多数据源,缺省回退全局 SEARCH_SOURCE 配置
- 四个媒体模块的搜索/人物/合集方法统一接入多源判断
- 补充多数据源搜索相关测试
2026-08-11 21:06:52 +08:00
jxxghp
9221f6e74a fix(agent): 工具回调消息回填原会话ID,避免群聊@机器人时按钮等交互消息发到私聊 (#6267) 2026-08-11 19:48:43 +08:00
jxxghp
2f3bd95819 fix tests 2026-08-11 19:37:21 +08:00
jxxghp
7597c21872 feat(music): 自动整理时媒体类型判别 2026-08-11 19:08:05 +08:00
jxxghp
166d995f81 fix(locale): 补充音乐识别缓存接口的英文与繁体翻译 2026-08-11 13:36:19 +08:00
jxxghp
97a5197e63 feat(recognize): 影视与音乐统一插件辅助识别链路
- 音乐并入 select_recognize_source 统一选择流程,支持插件优先/原生优先,按 MusicNameRecognize 事件与远端身份谓词区分
- 新增 MediaRecognize 链式事件,与 MusicMediaRecognize 对称,统一为 _supplement_media_recognize 补充识别
- 插件回写统一要求 source 与远端身份,采信后统一上报共享识别
- 插件优先模式下辅助识别未取得身份时保留原生兜底结果
2026-08-11 13:23:37 +08:00
jxxghp
a11001cf8b fix(music): 艺术家-年份-专辑三明治结构拆分提取发行年份 2026-08-11 11:55:12 +08:00
jxxghp
d0edcfa7bb feat(music): 音乐订阅刷新与识别缓存 2026-08-11 11:39:08 +08:00
jxxghp
778d185c9d fix(music): 系列专辑弱匹配要求分卷一致避免跨卷误配
- 资源带卷号(Ibiza Lounge Moments, Vol. 1)时候选卷号为其他分卷
  直接排除,修复 Vol.1/Vol.2 被误配到 Vol.3 条目;
  候选无卷号(条目本体不含分卷标记)时仍允许弱匹配
- 补充分卷一致性测试案例
2026-08-11 11:22:57 +08:00
jxxghp
ae2b7810a6 fix(music): 拉丁艺术家-专辑无空格连字符命名拆分修复解析归因
- 首个连字符左侧为艺术家(Gene Clark-White Light、Sophie Zelmani 同名专辑);
  两侧均需含空格才采信,左侧保护 Jay-Z 类连字符艺术家名,
  右侧排除 -ProfessorP 类发布组标签误拆
- 补充拉丁连字符拆分测试案例
2026-08-11 11:09:41 +08:00
jxxghp
9ab326e056 fix(music): 原声带电影名本体检索与合辑前缀拆分修复零命中
- musicbrainz: 原声带描述词(Original Motion Picture Soundtrack)剔除后
  用电影名本体补充检索阶梯,候选比对支持本体与主标题弱匹配;
  后缀定界防止 Ghost 类词内 ost 误剥,本体过短时不作独立检索目标
- musicbrainz: 尾部年份反复剥离,修复场景命名重复携带年份
  (Live At Montreux 2011 2011)阻断精确匹配
- metamusic: Various Artists-Title 全拼合辑前缀拆分,未收录别名变体
  统一归一为 Various Artists
- 补充原声带/重复年份/合辑前缀测试案例
2026-08-11 11:05:36 +08:00
jxxghp
44487f4343 fix(music): 卷号后缀剥离下沉到候选比对修复系列专辑失配
- 检索侧已剥离的 Vol. N 卷号后缀在候选挑选侧同样剥离,
  「好歌茹芸, Vol. 3」本体名与条目「好歌, 茹芸」主标题弱匹配命中
- 检索词元切分补充 ASCII 逗号/分号,避免标点成为逐字检索词元
- 补充卷号弱匹配测试案例
2026-08-11 10:36:32 +08:00
jxxghp
ae393456bd fix(music): 缩写点号还原与包含/演出后缀弱匹配修复失配
- metamusic: 连续单字母空格序列还原为点号缩写(S H E -> S.H.E),
  在场景点分之后执行避免点号再被压平
- metamusic: 规格段残留判定收紧,发布组短词仅在格式词无空格连字符
  形态(FLAC-HHWEB)放行,修复自然语言曲名(Ashielf Alpen)被误剥
- musicbrainz: 专辑候选新增包含关系弱匹配(原声带条目带额外前缀)
  与演出后缀弱匹配(S.H.E十七音乐会 -> 条目「十七」)
- 补充 metamusic 缩写还原与 musicbrainz 弱匹配测试案例
2026-08-11 10:24:45 +08:00