Commit Graph
784 Commits
Author SHA1 Message Date
rootandClaude Opus 5.5 88f98386e8 merge: fix/m-search-filter
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 16:01:46 +08:00
rootandClaude Opus 5.5 8306dfb544 merge: fix/n-site-challenge
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:56:35 +08:00
rootandClaude Opus 5.5 965c68405e test(web): 剧集组组件测试按 lint 规范传 children
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:50:25 +08:00
rootandClaude Opus 5.5 3c5ab75d75 docs(search): 运行手册补按作品归属判定、季集维度、原盘补判与失败不缓存
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:49:37 +08:00
rootandClaude Opus 5.5 22f0f2b06a docs: 剧集组运行手册与 MoviePilot 对照
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:49:17 +08:00
rootandClaude Opus 5.5 9c4268ad22 fix(web): 订阅选季「全部季」与轨道间距
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:49:17 +08:00
rootandClaude Opus 5.5 9d7e20067b feat(search): 按作品搜资源时判定每条结果是否属于这部作品
对照 MP TorrentHelper.match_torrent:已识别到同一本地作品(或同一 TMDB 身份)的属于、识别到别的作品的不属于;
未识别的先排除音乐 / 游戏 / 软件 / 书分类,再核对类型、年份(剧集按各季首播年份 ±1)、季集范围(TMDB 季列表,
单季集号可按全部季总集数的绝对集号),最后按解析出的中 / 英文名、标题非英文词、副标题非英文词比对作品名、原名、别名。
不属于的不参与筛选与分面,响应里单独给出(unmatched / unmatchedTotal,只在第一页,最多 200 条),
页面在列表最后折叠为「另有 N 条可能不是这部作品」,展开后仍可下载。关键词搜索不做这一步。
用「药屋少女的呢喃」109 条真实结果做样本:只有《迷宫饭》片尾曲专辑和标题写成 S01-S24 的一条被判为不属于。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:48:46 +08:00
rootandClaude Opus 5.5 7d5ba35280 feat(web): 作品页与订阅选季的剧集组轨道和季卡片
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:45:12 +08:00
rootandClaude Opus 5.5 265340751c feat(剧集组): 作品切换季集结构,单元按 TMDB 原季集原地迁移,季表 / 刷新 / 刮削按组
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:45:12 +08:00
rootandClaude Opus 5.5 3f6d8e410f feat(集数映射): 作品季集结构字段(迁移 0075)、剧集组接口契约与按 TMDB 默认季集换算
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:45:12 +08:00
rootandClaude Opus 5.5 5434ae8ee8 feat(tmdb): 剧集组列表与详情适配(组序号即季号,保留 TMDB 原季集号)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:45:12 +08:00
rootandClaude Opus 5.5 6da0a65ad7 docs(runbook): 站点搜索页人机验证与失败样本
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:43:41 +08:00
rootandClaude Opus 5.5 ec8b224482 feat(web): 站点页技术信息里显示最近的失败页面样本
站点概览「站点」一栏的技术信息里列出最近 5 份失败样本(搜索 / 列表 / 详情 · 人机验证 / 页面结构无法识别 ·
HTTP 状态),展开看脱敏地址、错误、命中规则、关键响应头和页面正文,可下载文本;没有样本不显示。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:43:15 +08:00
rootandClaude Opus 5.5 bd475a4ce1 fix(cloudflare): 页面请求返回 200 的挑战 / 人机验证门页也进入 A→B 级联
- handle 对页面请求(GET + Accept text/html)的 2xx 响应也做挑战判定(短页、无站点内容才看正文),
  过挑战 → cf_clearance 回带重试 → 浏览器代抓的级联照常触发
- 没处理掉时返回的挑战响应带 x-umt-challenge(needs_human / failed / throttled / no_browser / no_account),
  适配器据此区分「需要你在原站视图里过一次验证」与「已自动尝试,没有成功」等文案
- 测试:200 门页过挑战后重试成功、200 挑战页走浏览器代抓、转人工时搜索报 challenge 并留脱敏样本

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:41:00 +08:00
rootandClaude Opus 5.5 0088c1c9e7 feat(sites): 站点请求失败留样(site_failure_sample,每站最近 5 份)
- 迁移 0077 新表 site_failure_sample:类型(parse_error / challenge)、请求类型、脱敏 URL、状态码、
  关键响应头、错误文案、命中规则、脱敏页面开头(≤ 64 KB);样本几十 KB,不放进每条请求都读的 site.config
- 适配器 onFailureSample 回调接到 runtime.siteAdapter,异步写入并删到最近 5 份,写失败只记日志
- GET /sites/{id}/failure-samples(不带正文)与 /failure-samples/{sampleId}(带正文)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:41:00 +08:00
rootandClaude Opus 5.5 f6d976a963 feat(search): 筛选选项只列结果里有的值,季集合并成一个维度放最前
对照 MP useTorrentFilter:分面选项按实际结果生成,计数为 0 的不再列出(已选的值仍列出,可删除);
新增季集维度 seasonEpisode(MP season_episode 写法 `S01` / `S01-S02` / `S02 E14` / `S01 E25-E48`),
整季在前、单集在后、季号新的在前,在筛选条最前。旧的季 / 集维度保留(旧链接仍生效,以标签列出)。
搜索结果页与站点资源 Tab 共用这套口径。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:39:32 +08:00
rootandClaude Opus 5.5 18ee466664 fix(parser): 原盘判定参考副标题线索与 PCM 音轨
标题写成 `Bluray H.264` 这类压制字样、但副标题写「自购自抓自扫」「BDMV」「原盘」「DIY」
「Blu-ray Disc」的,或带 LPCM / PCM 音轨又没有 x264 / x265 / BDRip / 压制说法的,判为原盘。
只在来源是 BluRay(或没写来源但有分辨率)时补判;「原盘压制」「自压」、WEB-DL、Remux、单个视频文件不受影响。
用「药屋少女的呢喃」真实搜索结果补正例与反例。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:36:15 +08:00
rootandClaude Opus 5.5 1779e1a0f2 fix(adapters): 识别 200 状态的挑战 / 人机验证页,解析失败前兜底,失败页面留样
- detectChallenge 支持页面类请求(GET + Accept text/html)的 2xx 响应:正文只先读 256 KB,
  短页且没有种子表 / 用户信息块时,认 Cloudflare 挑战标题 / 脚本与 Turnstile / hCaptcha / reCAPTCHA 门页;
  带登录表单的页面不算门页。非页面请求不读正文
- siteFetch 用上面的判定;挑战错误附脱敏页面样本,文案带级联结果(x-umt-challenge)
- spider 适配器:认不出列表 / 详情时先看是不是人机验证页,是就报 challenge(「搜索页需要人机验证」),
  不再报改版;parse_error / challenge 都经 deps.onFailureSample 交出脱敏样本(前 64 KB,去掉个人信息块、
  passkey / authkey / uid / 用户名 / Cookie / 邮箱)
- classifyChallengePage 也认门页(浏览器过挑战时不再把门页当已通过)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:35:31 +08:00
rootandClaude Opus 5.5 1845d47d3f feat(search): 按作品搜资源时中文作品名在前、原名第二
国内站点按中文名收录、副标题也多写中文名,查询词改为作品名(中文)优先、原名第二;
作品名不含中日韩文字时仍原名在前。仍最多 2 个、按归一化去重,拉丁名在电影上带年份。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:34:33 +08:00
rootandClaude Opus 5.5 6e71df2769 fix(search): 站点搜索失败、超时、被拦截的结果不再写缓存
之前失败结果也缓存 30 秒,只在一轮全部站点失败时才撤销;某站一次失败后,
后续几次搜索都复用同一个失败。现在只缓存成功结果,失败 / 超时 / 跳过下次直接重试。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:33:58 +08:00
rootandClaude Opus 5.5 4fa001750b chore(release): v0.3.29
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:39:07 +08:00
rootandClaude Opus 5.5 8d2fcdc7a4 merge: ui/l-files-organize
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:27:08 +08:00
rootandClaude Opus 5.5 1360120e75 merge: ui/j-download-dialog
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:22:37 +08:00
rootandClaude Opus 5.5 d1575b6e21 merge: ui/k-release-results
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:16:57 +08:00
rootandClaude Opus 5.5 6e645bce8f feat(下载对话框): 学 MoviePilot 重做手动下载对话框
- 标题区:海报、作品名 (年份)、站点;资源行显示原始标题、促销、H&R、做种 / 下载、大小、发布时间
- 下载器与保存目录并排下拉,缺省「自动」,下方写明「将保存到」的实际路径;保留「自定义路径」
- 作品身份折叠区:类型 + TMDB 编号(可搜索作品),未识别时默认展开,指定后随下载绑定
- 已有版本先显示一行摘要,选一次性洗版才展开勾选列表
- 搜索、工作台、原站视图三处调用方补传资源字段

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:10:03 +08:00
rootandClaude Opus 5.5 4bb19433ad feat(手动下载): 保存目录选项接口与下载前指定作品
- GET /download-save-paths:按下载器列出默认保存目录与路径映射的下载器侧目录,并给出「自动」会用的下载器(站点指定 > 默认 > 第一个)
- POST /acquisition-plans 新增 identity(本地作品或 TMDB 外部身份):转调 /source-releases/{id}/identity 建 / 绑作品并加人工锁,再按该作品下载
- 测试 harness 支持装配 agent 模块;pg 测试覆盖保存目录选项与指定身份下载

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:10:03 +08:00
rootandClaude Opus 5.5 e41a5d1f16 feat(organize): 整理记录默认按作品分组,行内显示整理方式标签与分类
学 MP 历史记录页:整理方式改为中性小标签(移动 / 复制 / 硬链接 / 原地入库),标题下显示分类(二级分类,没有时退回作品类型)。
列表缺省按作品分组:一季多集收成一组并缺省折叠,组头显示海报、作品、季集范围(S01E01–E10)、分类、条数与非成功状态;只有一条的作品和未识别记录不画组头。切换后本浏览器记住,URL ?group=entity|none 优先。
DataTable 分组追加可选项 meta / defaultCollapsed / flat(不改既有调用的表现)。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:10:02 +08:00
rootandClaude Opus 5.5 67f05895d3 feat(files): 行尾悬停露出常用操作图标,面包屑带登记目录类型
学 MP 文件管理:鼠标悬停或键盘焦点所在行在行尾浮出 2–3 个图标按钮(未入库视频 / 目录:整理、识别、刮削;已入库:打开作品、刷新元数据、重命名;其余:重命名、移动到),带 tooltip 与 aria-label,被状态阻止的灰显写原因;浮出时让出修改时间列;焦点行可 Tab 进入、Esc 回列表;窄屏仍只用 ⋯ 菜单。
面包屑前加「下载目录 / 媒体库」说明段。顺带修正 Shift+F10 菜单定位按行键找行时被 CSS.escape 改坏的问题。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:06:27 +08:00
rootandClaude Opus 5.5 39ec8185e9 feat(web): 资源搜索结果改版(规格标签、促销前置、数字对齐、按作品分组、规则判定)
参考 MP 资源卡片:促销放在标题前(免费用 success,其余折扣中性加粗,带剩余时间);
规格拆成中性小标签(季集 → 分辨率 → 来源 → 编码 → HDR → 音频 → 语言 → 制作组);
站点 / 大小 / 做种·下载 / 发布时间宽屏定宽对齐、窄屏折行,做种加粗、为 0 时弱化;
结果涉及多部作品时按作品分组(组头 = 作品名 + 年份 + 库存状态),只有一部时不重复作品名;
每行显示服务端规则判定(命中第 N 档 / 不满足 / 与库里版本比较)。保留工作台、委托智能体、下载。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:04:37 +08:00
rootandClaude Opus 5.5 d98899a5f8 feat(organize): 整理记录列表带出二级分类
列表与详情的 media.category 取自冻结计划里的 classification.category,供整理记录行显示分类(对照 MP 历史记录页);不需要迁移。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 11:59:15 +08:00
rootandClaude Opus 5.5 a7d20ca370 feat(search): 资源搜索结果附带规则判定
关联到本地作品的资源按作品收录版本的评估口径(硬条件 + 规则组链 + 阶梯,同自动获取的
evaluateCandidate)给出 ruleVerdict:命中第几档 / 不满足哪些维度 / 与库里当前版本相比高几档。
只调用 acquisition-organize 导出的 loadRuleCatalog、slotSpecWithRules、parsedOf、contextOf、
currentFacts;现有版本 pri 按 rulePriOfAsset 同口径在 search 模块里组合。一页最多判定 100 条、
20 个作品,收录版本 / 订阅 / 资源行 / 规则目录批量查一次;没关联作品或没有规则时为 null。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 11:59:07 +08:00
rootandClaude Opus 5.5 fb6c76875c chore(release): v0.3.28
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-04 00:10:13 +08:00
rootandClaude Opus 5.5 1aebb519ef merge: fix/f-acquisition
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:58:00 +08:00
rootandClaude Opus 5.5 ee503dd1ea merge: fix/i-scrape
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:50:29 +08:00
rootandClaude Opus 5.5 19d6de9891 fix(acquisition): 同一作品并发评估时只建一个新作品订阅
新作品收录在事务里按作品加咨询锁并复查已有订阅;否则后建的订阅收录版本同名冲突、没有版本,
现在会被补建出一个多余的默认版本。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:43:57 +08:00
rootandClaude Opus 5.5 385933968f merge: fix/h-visibility
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:41:48 +08:00
rootandClaude Opus 5.5 d129a96110 fix(organize): 跨卷 Move 删源前全量校验、计划期 sha256 缓存、补全元数据带超时
- 跨卷移动删源前一律全量 sha256(不再抽样);
- 计划期同尺寸目标的全量 sha256 按 (路径, 大小, 修改时间, inode) 缓存,向导预览 / 复核 / 执行不重复算;
- metadata.resolve_organize 传 3 分钟超时的 signal;
- 季号推断已由解析器统一推定(seasonInferred),补回归用例。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:37:28 +08:00
rootandClaude Opus 5.5 4b49be7228 fix(files): 回收站清除先删文件再删行,顺带清过期的无登记 replaced-* 目录
- purge 先删文件、成功后再删行,删文件失败时行留着下次再清,不再留下没有登记的孤儿文件;
- 清过期项时扫各可写库根 .umt-trash/replaced-*,过期且没有任何回收站登记的整个删掉(替换旧文件登记回收站失败时留下的)。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:37:18 +08:00
rootandClaude Opus 5.5 c532060c83 feat(organize): 文件级标题粗核,混合包里明显不是本作品的视频降为待确认
- 同一批视频里文件名标题与作品标题 / 原名 / 别名明显不符(没有足够共同词)的排除为 title_mismatch,不按本作品命名入库;
- 只在同批至少一个文件对得上作品时才判断,剧集只看带 SxxEyy 的文件,用户逐文件指定过的不核;
- title_mismatch 算「本该入库却被排除」:记录部分完成、开待处理、Move 不移除下载任务。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:33:41 +08:00
rootandClaude Opus 5.5 b491f21769 merge: fix/g-identity
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:32:36 +08:00
rootandClaude Opus 5.5 0bbf5885aa fix(acquisition): 评估路径补建收录版本时锁订阅行;规则 API 测试按新建订阅自带默认版本更新
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:32:10 +08:00
rootandClaude Opus 5.5 17aa9304c0 test(identity): 识别准确度与失败可见性回归测试
bgm 核对、缓存相容、分组键、组内相容、季表、快照失败事项、复查耗尽事项、详情失败不写负缓存、
改映射后旧别名不再召回、合并作品迁移单元。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:20 +08:00
rootandClaude Opus 5.5 92bce3b601 fix(identity): 改 TMDB 映射删旧作品的 tmdb 别名;合并作品时内容单元迁到目标作品(M3)
改映射:没锁的 tmdb 来源作品别名删除,人工 / 站点别名保留,刷新后按新详情重新登记。
合并:被合并作品的单元改归目标作品(单元级别名一并改),与目标同季同集的按重复单元合并、
所有引用改指向保留的那条;目标是电影时源单元退役。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:20 +08:00
rootandClaude Opus 5.5 1959e62f3f feat(sources): 站点快照连续失败 3 次开站点不可达事项,按站点去重,恢复后自动关闭(M9)
连续失败次数记在 site.snapshot_cursor.failStreak;凭据失效仍走原有登录失效事项。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:20 +08:00
rootandClaude Opus 5.5 074dab04ca fix(identity): 季表只计 TMDB / 人工来源或已确认的季,资源懒建的临时季不算(M2)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:20 +08:00
rootandClaude Opus 5.5 fa18015354 fix(identity): 合并事项按年份与类型分组,组内不相容的资源不随组锁定;复查耗尽 / 相关无结果的资源开待处理(H3、M4、M5)
分组键 = 归一化标题 + 年份 + 剧集线索(解析有才带);选择后组内年份 / 类型与所选作品不相容的
资源不指定、留在事项里(事项保持打开,代表资源换成留下的那条)。
TMDB 查询失败复查耗尽的资源不论是否命中本地作品都开 identity_unresolved;命中本地作品却无结果的
资源带站点 ID 也开(升级链推迟中仍不开),不再静默留池。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:12 +08:00
rootandClaude Opus 5.5 dca3012227 fix(identity): 识别缓存不把一次指定扩散给不相容的同名资源,召回详情失败不写负缓存(H2、M8)
回填只认用户本人的指定,资源没有年份、或作品年份 / 类型与资源不相容时不回填;
读缓存时核对条目与资源的年份(±1,剧集允许更晚)与类型,不相容按未命中处理,
命中后的唯一候选仍经 resolveIdentity 按资源年份 / 类型打分。
TMDB 召回中有候选拉详情失败时,这一轮无匹配不算结论,不写负缓存。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:31:06 +08:00
rootandClaude Opus 5.5 4132324935 fix(identity): bgm 按标题搜索的结果先与资源名称核对,唯一高分才采用(H1)
搜索结果按名称 / 中文名 / 别名做相似度核对,搜索结果没别名时为前几个条目拉详情再核对;
拿不准就不走 bgm 投影。投影出的 TMDB 结果再与资源自己的年份 / 续作序号 / 名称核对,
名称对不上且 bgm 条目只是相似的降为歧义。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:30:57 +08:00
rootandClaude Opus 5.5 9ae287beb2 test: volume_state_unknown 原因文案改为「下载目录读不到容量」后同步测试期望
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:30:18 +08:00
rootandClaude Opus 5.5 b40716d74f fix(organize): 不是视频的文件移入回收站并开待处理,不留在媒体库
- 收尾判定 NOT_VIDEO 后,已拷 / 搬进库的新文件和它的附属文件移入回收站(登记 trash_item),开待处理;
- 附属文件结果改为跳过 main_failed(不再写成功却不登记);
- 已结束记录重放时补做,可重入;原地入库不动原文件,洗版替换照旧回滚。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 23:28:35 +08:00