root and Claude Opus 5.5
cba214e93e
feat(sites): extract douban IDs from list rows (audiences) (ID-3)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:15:20 +08:00
root and Claude Opus 5.5
a6d655d2ce
feat(identity): trust site-provided IMDb/TMDB IDs in scoring (ID-3)
...
MatchOptions.trustedIds: a candidate fetched by a site-given ID is at least
multi_evidence even when titles differ; year/type conflicts stay candidates.
Differential group site-ids-* against MP search/result.py _match_source.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:15:20 +08:00
root
44f7c88be6
Merge branch 'scr2'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# CHANGELOG.md
# apps/server/src/modules/file-manager/routes.ts
2026-10-01 00:09:01 +08:00
root and Claude Opus 5.5
c29e6a12d3
docs(scrape): SCR-2 就地刮削运行手册与 MP 差分表
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:08:17 +08:00
root and Claude Opus 5.5
d8ae5e179c
feat(web): 文件管理「刮削…」对任意目录可用,候选选择与刮削结果(SCR-2)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:08:17 +08:00
root and Claude Opus 5.5
87bf33b42b
feat(scrape): 任意目录就地刮削,按路径识别作品,每次刮削一条记录(SCR-2)
...
- POST /files/scrape 改为对目录 / 视频文件刮削:已登记用作品,否则按路径识别(本地 + TMDB),
认不准返回候选,选定后再提交;未登记直接用 TMDB 字段,addToLibrary 顺手建作品
- 作品详情重新刮削、入库后自动刮削改为对作品目录刮削,同一实现
- 迁移 0058_scrape_record 替代 media_scrape;GET /files/scrape-records
- 与 MP ScrapingChain 的文件布局差分(7 个场景,3 处登记偏离)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:08:17 +08:00
root and Claude Fable 5.1
e7e202fdc2
Merge branch 'his1'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 23:57:39 +08:00
root and Claude Opus 5.5
76433dd43f
docs(organize): MP history comparison and changelog (HIS-1)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 23:57:19 +08:00
root and Claude Opus 5.5
03c651085f
feat(web): organize records page parity with MP history (HIS-1)
...
Poster, source -> target, size, downloader; type/time filters; status
counts; group by work; row menu; batch select, delete and reorganize;
delete confirm dialog with dry-run summary; detail delete and download info.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 23:57:19 +08:00
root and Claude Opus 5.5
51e82f1cd9
feat(organize): record filters, stats and delete with files (HIS-1)
...
List query gains kind/since/organizeOnly and wildcard/hash search; new
GET /organization-records/stats and POST /organization-records/delete
(optional source/library files to trash via files delete). Public record
adds posterPath, sizeBytes and download summary.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 23:57:19 +08:00
root and Claude Fable 5.1
a9e6e6c36a
docs(plan): identification escalation via detail-page IDs (ID-3)
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 23:28:39 +08:00
root and Claude Fable 5.1
f60254e265
docs(plan): SCR-2 scrape in place like MP; HIS-1 organize history parity
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 23:21:35 +08:00
root and Claude Fable 5.1
006549a49f
chore(release): v0.3.6
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 22:53:47 +08:00
root
511ad93077
Merge branch 'search4'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# docs/plan/00-first-version-plan.md
2026-09-30 22:41:26 +08:00
root and Claude Opus 5.5
acab4cc6bb
docs(search): MP facet comparison table and changelog (SEARCH-4)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:40:55 +08:00
root and Claude Opus 5.5
ca17b2329b
fix(web): opaque solid background for floating layers (SEARCH-4)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:40:55 +08:00
root and Claude Opus 5.5
b15c06ad20
feat(web): more-filters panel and MP ordering for quick filters (SEARCH-4)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:40:55 +08:00
root and Claude Opus 5.5
d9cf8f1c3a
feat(search): align quick-filter facets with MP (SEARCH-4)
...
Add audioCodec, subtitle, dub, feature, year, category, size and seeders
facets with disjunctive counts; parser records dub languages (audioLangs).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:40:55 +08:00
root
2e83107f68
Merge branch 'scr1'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# CHANGELOG.md
# docs/plan/00-first-version-plan.md
2026-09-30 22:36:46 +08:00
root and Claude Opus 5.5
0e8bb6967d
docs: 刮削运行手册与 CHANGELOG(SCR-1)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:36:14 +08:00
root and Claude Opus 5.5
df033130f5
feat(web): 刮削设置分区、作品详情刮削状态与文件管理「刮削」(SCR-1)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:36:14 +08:00
root and Claude Opus 5.5
f38eca419e
feat(server): scrapeMedia 刮削任务,入库后自动刮削(SCR-1)
...
- 文件道任务 scrapeMedia:NFO 原子写入、图片经图片缓存下载(并发 4,失败不阻塞 NFO)、只补缺失 / 全部覆盖
- 设置 organize.scrapeAfterImport / scrapeMode / scrapeImages / scrapeEpisodeThumbs
- POST /library/{id}/scrape、详情 scrape 状态;files/scrape writeNfo 与 scrape-batch write 走同一任务
- 迁移 0057_media_scrape、原因码、审计 organize.scrape
- 与 MP 输出的 NFO 差分测试(apps/server/test/scrape)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:36:14 +08:00
root and Claude Opus 5.5
861f799615
feat(domain): 刮削 NFO 生成与目标文件布局(SCR-1)
...
电影 / 剧集 / 季 / 集 NFO(元素与顺序对照 MP TmdbScraper,缺值不写),
poster / fanart / 季海报 / 剧照命名(Emby / Jellyfin / Kodi 兼容)。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:36:14 +08:00
root and Claude Fable 5.1
c3b25be676
docs(plan): align search filters with MP (SEARCH-4)
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 22:12:38 +08:00
root and Claude Fable 5.1
b137f365c5
chore(release): v0.3.5
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 21:39:55 +08:00
root and Claude Fable 5.1
b3775dff1b
docs(plan): scraping not implemented yet (SCR-1)
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 21:28:04 +08:00
root
1ce937345e
Merge branch 'cf2'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# docs/plan/00-first-version-plan.md
2026-09-30 21:27:34 +08:00
root and Claude Opus 5.5
c38ac2a85c
docs: CF-2 出口表、Cloudflare 级联运维与插件点击核验
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:54 +08:00
root and Claude Opus 5.5
f16b97151b
feat(web): 站点显示 Cloudflare 状态(CF-2)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:54 +08:00
root and Claude Opus 5.5
16083942c0
feat(sites): 出口统一与 Cloudflare 过挑战级联(CF-2)
...
- 出口:站点请求不再隐式继承 HTTP(S)_PROXY,没开代理明确直连(创建客户端时临时拿掉代理环境变量,Deno 2.9 语义见 egress.ts),
开了走站点代理;TMDB / Brave / 图片改为显式按环境变量(行为不变)
- CloudflareGate:浏览器代理期直接代抓 → HTTP(可复用时带 cf_clearance)→ 挑战 → 浏览器过挑战(同站 30 分钟一次、单飞)
→ cf_clearance 仅在 UA 跟随浏览器且两端同出口时给 HTTP,重试 1 次记 cfReuse → 仍被挑战则浏览器代抓并进入 6 小时代理期
- 浏览器:solveSiteChallenge(自动放行 ≤15s / 系统发起视觉子流程最多 2 次 / 真验证码转人工待处理)、fetchSiteHtml(profile 锁 + 站点令牌)、
交还后读回 cf_clearance 继续;site.config.cloudflare 状态契约
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:54 +08:00
root and Claude Opus 5.5
6b14b0da45
feat(browser): 插件真实坐标点击与页面内容读取(CF-2)
...
- umt 插件 POST /umt/tabs/{id}/mouse-click:page.mouse.click,跨域 iframe 的 Turnstile 也点得到;click 坐标优先走它,旧镜像退回 elementFromPoint
- 适配器 pageContent(地址 / 标题 / outerHTML / 正文 / navigator.userAgent);setEgress 返回插件出口模式
- mock camofox 增加 Cloudflare 模式(auto / interactive / captcha)与插件鼠标点击
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:53 +08:00
root and Claude Opus 5.5
a11ef16e40
fix(sites): Cloudflare 挑战不算凭据错误(CF-2)
...
- http.ts:cf-mitigated: challenge 或 403/503/429 挑战页 → SiteError(challenge),503 不再算维护、403 不再落到 auth_invalid
- 挑战页分类 classifyChallengePage:自动 / 可点(Turnstile)/ 真验证码
- 刷新登录 / 用户数据遇 Cloudflare 挑战只记 last_error,账号状态不变、不开登录失效事项
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:53 +08:00
root and Claude Fable 5.1
c9f559e702
docs(plan): DET-2 results and follow-ups
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 20:50:19 +08:00
root
389c49dd12
Merge branch 'det2'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# packages/adapters/src/sites/definitions/audiences.json
# scripts/mp-sync/movieclaw-overrides/audiences.json
2026-09-30 20:50:04 +08:00
root and Claude Opus 5.5
92830c3ef3
fix(adapters): 观众详情页按真实页面适配(DET-2)
...
- 促销:详情 h1 是 font.free / font.halfdown 等 + 剩余时间 span[title],新增 umt.detail.promo 覆盖列表促销字段(以前一律判成无促销并覆盖列表的免费)
- 标题去掉 h1 里的「剩余时间:」;发布时间不再取标题区的促销到期时间
- 做种 / 下载 / 完成数、种子 Hash:umt.detail.fields.seeders / leechers / snatched / infoHash
- 副标题去掉评分徽标;标签只取最内层;上传者取 span.torrent-uploader-wrap,标签精确匹配(避开「发布者带宽」)
- 简介:去掉站点声明(page.descriptionStrip)与 MediaInfo 控件(codetop / show / hide),源码换行不再算一行
- 截图排除豆瓣海报与站点横幅
- 列表副标题改取 span.torrent-subtitle-text(以前前面粘着标签文字)
- 脱敏真实样本:详情 2 页进 differential/detail.test.ts,列表 1 页进 MP 差分
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 20:49:29 +08:00
root and Claude Fable 5.1
d403514adc
Merge branch 'hc1'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 20:39:03 +08:00
root and Claude Opus 5.5
b1d30bd6ee
fix(sites): 观众健康检查误报未登录,健康失败原因细分(HC-1)
...
观众 2026 版首页没有 <a href=logout>:退出按钮在 userbar 的 data-uploader-actions JSON
里由脚本渲染,旧登录标志 a[href*="logout"] 永远不命中,健康检查报"未登录"而用户数据正常。
- audiences 定义 loginSuccess 改为 #info_block / usercp.php / logout 任一(0.2.1)
- 健康检查判定细分:登录页 / 权限页 / 疑似人机验证 / 找不到登录标志(带选择器),
原始判定写入 last_health.detail,站点概览技术信息展示
- 首页只是找不到登录标志时,以 24 小时内用户数据解析成功为已登录证据(同 MP)
- 新 SiteError 类 challenge(cf-mitigated: challenge),不算凭据错误;健康状态 challenge
- testkit mock 增加 setHeaderLayout;加观众首页脱敏结构样本的差分测试
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 20:38:48 +08:00
root and Claude Fable 5.1
3bf3e6074c
Merge branch 'cf1'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 20:22:08 +08:00
root and Claude Opus 5.5
2bd5b77b98
docs(design): CF-1 Cloudflare challenge handling research
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 20:21:28 +08:00
root and Claude Fable 5.1
93475f80e6
docs(plan): HC-1, DET-2, CF-1 items
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 20:09:53 +08:00
root and Claude Fable 5.1
322ecb2f8c
docs(lessons): stray dev servers rewrite deno.lock
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 20:00:05 +08:00
root and Claude Fable 5.1
5ddc88d928
chore(release): v0.3.4
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:56:29 +08:00
root and Claude Fable 5.1
fd9df0a68d
Merge branch 'fix9'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:44:35 +08:00
root and Claude Opus 5.5
fe6649f17d
fix(web): 文件管理目录树与主面板共用实底 slab 与表头 token(FIX-9)
...
两块面板垫同一层底色(pg-slab-solid),背后光斑不再让目录树更亮更透;
列表粘性表头改用与卡片同色系的 pg-slab-head,不再是一条纯黑。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:32:32 +08:00
root and Claude Opus 5.5
6f450ed329
fix(web): 运行状态页进程名统一全角括号,io 改称后台任务(FIX-9)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:30:12 +08:00
root and Claude Opus 5.5
3ec2a10993
docs(agent): 巡检 Skill 要求需要批准的检查实际调用一次,补 e16 断言(FIX-9)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:29:54 +08:00
root and Claude Opus 5.5
65a2ed7d49
fix(web): 会话步骤明细里的能力 ID 换成能力标题,与最终汇报一致(FIX-9)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:28:51 +08:00
root and Claude Opus 5.5
c5987a9db3
fix(web): 会话进度行时长从本轮开始算到结论正文,不再显示 0 秒(FIX-9)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:27:43 +08:00
root and Claude Opus 5.5
41a39f3cc8
feat(web): 会话实际结果行只列系统核实的事实,不一致时标记(FIX-9)
...
去掉「说明」「汇总」与「未经核查」;没有动作时一行小字,有动作时列提交的下载与完成的整理并可点到记录,
汇报里的数字与系统记录不一致时行尾加「与汇报不一致」。统计行已有费用时不重复。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:26:28 +08:00
root and Claude Opus 5.5
c67fd96639
feat(web): 计划页智能体巡检卡片统一尺寸,多出内容省略、详情抽屉看全文(FIX-9)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 19:23:30 +08:00