root and Claude Opus 5.5
feee481915
chore(release): v0.3.21
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:54:04 +08:00
root and Claude Opus 5.5
c29dbb4376
feat(sites): 公开 BT 站详情(简介、文件清单、bgm 条目);修 AniBT 资源 ID 带 - 时判非法
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:43:25 +08:00
root and Claude Opus 5.5
06ba0711e2
chore(release): v0.3.20
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:26:32 +08:00
root and Claude Opus 5.5
1e47c6af1e
style: 整理导入顺序
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:05:53 +08:00
root and Claude Opus 5.5
7c4ad901d9
feat(agent): 用对话起草巡检(schedule.draft_check + 起草巡检 Skill + 计划页入口与对话卡片)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:04:31 +08:00
root and Claude Opus 5.5
8eb8a68295
feat(web): 站点按类型分组、列表模式修样式、下掉自定义 RSS 源与索引器入口;智能体会话分对话 / 自动巡检两栏
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:56:27 +08:00
root and Claude Opus 5.5
8da8679a04
chore(release): v0.3.19
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:49:15 +08:00
root and Claude Opus 5.5
d1f4dec472
test(sites): 憨憨真实详情摘录补下载 / 标题行
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:39:12 +08:00
root and Claude Opus 5.5
653bdcb976
fix(sites): 憨憨详情页按真实结构解析豆瓣块与 MediaInfo
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:29:19 +08:00
root and Claude Opus 5.5
df22200bfd
chore(release): v0.3.18
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:19:24 +08:00
root and Claude Opus 5.5
b42543e6f3
chore(release): v0.3.17
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 22:34:58 +08:00
root and Claude Opus 5.5
ed083fd138
feat(subscriptions): 按 MP 收敛订阅默认值与表单
...
- 定时主动搜索默认关(DEFAULT_SEARCH_INTERVAL_HOURS = 0),新建 / 手动照常各搜一次,之后靠 RSS 与站点快照
- 多版本自动补全系统缺省改为关
- 表单:基础页 = 作品与范围、下载、洗版;收录版本、优先级、自动补全折叠到进阶页「多版本」
- 对照文档 §7.3 记录落实范围
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 22:34:48 +08:00
root and Claude Opus 5.5
709414778e
feat(identity): 豆瓣 / bgm.tv 辅助信息源与发现页
...
- adapters/meta:bgm.tv 官方 API(条目 / 搜索 / 每日放送)与豆瓣移动版接口(条目 / 实时热门)
- 识别升级链:豆瓣条目缓存没有时在线查;AniBT 的 bgm ID、公开 BT 站标题搜 bgm → 名称 + 年份匹配 TMDB(季条目去季名与年份)
- 条目缓存 30 天,查不到 6 小时负缓存;测试进程缺省不出外网
- 发现页:bgm 每日放送、豆瓣热门电影 / 剧集,点条目匹配 TMDB 作品
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 21:30:16 +08:00
root and Claude Opus 5.5
b8876542b8
feat(sites): 内置公开 BT 站 Nyaa / 蜜柑 / AniBT / AnimeGarden / 萌番组
...
- 新专用解析器(spiders/public.ts):RSS / Torznab / JSON API,搜索 + 最新列表 + 按资源 ID 取种子或磁力
- 手写定义(definitions/public.ts,public: true),并入内置定义表;定义视图按 public 标为 public_bt
- 添加站点:公开 BT 站可从内置站一键添加(专用适配器、默认定时抓取、默认不进搜索集合),手填 RSS 保留
- 样例取自 2026-10-02 公开接口,截前两条
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 21:19:19 +08:00
root and Claude Opus 5.5
9cdf492291
fix(sites): OurBits 详情页按 BBCode 解析简介
...
OurBits 的简介在 div.ubbcode 里是未渲染的 BBCode(站点前端脚本渲染),按 HTML 取文本后
[quote] / [img] / [url] 原样留下、换行全被合并。extractDetailPage 遇到 ubbcode 容器且内容带 BBCode 标记时,
改用 pageFromBbcode 取简介 / 截图 / MediaInfo(换行保留),发布者、文件、标签与页面上的外部 ID 照旧。
覆盖层补 fileListPath(viewfilelist.php),与憨憨一样按需取文件列表。脱敏样例 OURBITS_DETAIL_PAGE + 测试。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:59:41 +08:00
root and Claude Opus 5.5
ee128e0b3f
feat(downloads): 下载器单独的水位与保种天数
...
- contracts DownloaderPolicy(存 downloader_instance.settings.policy):硬阈值 / 恢复水位 / 清理目标 / 保种天数,
不填用全局 cache / retention
- volumeThresholds:卷的生效水位 = 各实例「自己的值 ?? 全局」取最小;decideVolume、阈值清理、手动恢复、
首页卷信息、定时清理检查都改用它;cleanupCandidates 保种天数按实例
- 保存时校验合并全局后 恢复 < 硬阈值、清理目标 ≤ 恢复
- 下载器设置表单新增四项(留空用全局)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:51:04 +08:00
root and Claude Opus 5.5
ff79554a09
chore(release): v0.3.16
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:43:06 +08:00
root and Claude Opus 5.5
135c50048f
feat(downloads): 多下载器路由:默认下载器、站点指定下载器、别名
...
照 MP(chain/download/submission.py:明确指定 or 站点下载器 or 默认):
- 迁移 0063:downloader_instance.is_default(至多一个,唯一索引)、site.downloader_instance_id
- pickInstance:明确指定 > 站点指定 > 默认 > 第一个可用;自动下载(gates)与手动下载共用
- 设置:下载器名称改称别名,新增「设为默认下载器」;站点编辑新增「下载器」选择
- 测试 downloader-routing.test.ts
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:32:29 +08:00
root and Claude Opus 5.5
64e1dfb1d2
fix(sites): 按真实列表页修正 OurBits / 彩虹岛 / 憨憨 解析
...
2026-10-02 用真实账号各抓一次列表页与用户页(只读)核对:
- OurBits:标题列嵌套 table.torrentname 有 5 个 td,td:nth-child(n) 先命中嵌套格子,
大小全为 0、发布时间 N/A;改为只匹配行的直接子单元格。副标题原取成标签块,改为标签之后的正文;
新增标签与列表页 IMDb / 豆瓣 ID(label.imdb_rate / douban_rate 的 data 属性)
- 彩虹岛:font.subtitle 去掉前面的 div.tag 与末尾徽标,标签单独取
- 憨憨:新增列表标签(span.tag,不含促销)
- 纯数字 IMDb ID 补成 tt + 7 位(imdbIdOf)
- 用户页核对:下载量为 0 是站点实际显示(VIP),解析正确;上传量四站与页面一致
- 脱敏样例 sites-2026.ts + 定义测试;差分登记 23 条有意偏离(新增 labels、OurBits 副标题)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:16:27 +08:00
root and Claude Opus 5.5
cac1833f53
chore(release): v0.3.15
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 18:35:41 +08:00
root and Claude Opus 5.5
f5bc6e9c40
fix(scrape): 整理后刮削照 MP 对作品目录刮,集只刮本次整理的文件
...
原地入库逐个文件排刮削,单文件刮削只写该集,剧集根目录(tvshow.nfo、海报、季海报)与季目录
(season.nfo)没有元数据。照 MP ScrapingChain.scrape_metadata_event:按作品目录分组,目录元数据照常
初始化,集只刮本次文件;复制 / 移动同样改为只刮本次文件(此前刮整个作品目录)。
- 迁移 0062:scrape_record.videos(null = 目录下全部)
- queueScrape 支持 videos;同目录排队中还没开始的刮削合成一批(有一方刮全部则刮全部)
- 作品详情「重新刮削」与文件管理刮削不变(目录下全部)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 18:20:52 +08:00
root and Claude Opus 5.5
8bec4bad5d
refactor: 拆分大文件(contracts 端点、整理服务、浏览器纯函数、整理弹窗来源)
...
- contracts/src/api.ts 2733 行 → api/*.ts 13 个领域文件 + shared.ts;api.ts 按原顺序合并 Api。
新旧对比:354 个端点内容与顺序一致,分组键与对外导出一致
- acquisition-organize/services/organize.ts 2645 行 → organize-types / -plan / -exec / -finalize / -records,
organize.ts 保留为汇总入口,外部引用不变
- browser/service.ts 类外的纯函数(视图映射、原因文案、坐标换算、图片尺寸、出口代理)移到 session-view.ts,
service.ts 照旧转出
- organize-wizard:来源解析 useResolvedSource 移到 source.ts,FormSelect 移到 form-select.tsx
只挪位置不改逻辑;typecheck、lint、test:all、web build、server 编译与编译产物自检通过。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 17:40:43 +08:00
root and Claude Opus 5.5
b61335eaf6
test: 测试按行为命名、server 测试统一到 test/、PG 测试分组并行
...
- server 的 src/modules/*/__tests__ 挪到 test/<模块>/;e2e 去掉 eN- 前缀,
w5a2 / v2 / search2 / *-dh1 / *-md1 / *-md2、web 的 agui3 / search2、domain 的 id2 / id3 改为按行为命名
- vitest 分三组:unit、pg(真实 PG + 假引擎,文件并行,最多 6 个)、serial(真实引擎 / worker / e2e,串行);
pg 组用例超时放宽到 60s(迁移类用例并行时排队等 schema 锁)。server 测试 615s → 约 350s
- CLAUDE.md 补测试约定;待办补 harness 去重与 continuous-series 偶发超时(疑似 Slot 评估竞争)
- ADR-004 补充:维持 Deno,记录实际只用到 --allow-run 白名单
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 16:54:04 +08:00
root and Claude Opus 5.5
b343dddbf6
docs: 清理过程文档,CHANGELOG 补齐 0.3.8–0.3.14
...
- 删除 docs/plan 下 00–18 的计划、评审、验收、发布记录与升级证据,docs/spikes 与 spikes 验证代码
(保留 spikes/movieclaw-src 本地克隆),以及 4 份一次性审查 / 调研;全部可在 ceb66f8 查到
- MP 对照移到 docs/porting/moviepilot-v3-comparison.md;经验教训改为 docs/plan/lessons.md(补第 25 条)
- docs/plan/README.md:文档放哪、当前状态、待办
- 引用改写:代码注释指向在维护的文档,其余注明已删除与 git 位置;清掉原有 6 个失效链接
- README 开头改为当前状态与入口;CHANGELOG 补齐 0.3.8–0.3.14 与工程变更
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 16:08:09 +08:00
root and Claude Opus 5.5
ceb66f8c77
feat: v0.3.8–v0.3.14 工作区汇总(依赖升级、整理来源、手动入库、原地入库等)
...
生产 v0.3.8~v0.3.13 均由 8013196 加工作区修改构建部署,此前未提交;本提交补齐源码,
并含未部署的 v0.3.14 原地入库。中间各版本源码状态未保存,无法逐版拆分,详见
docs/plan/17-full-upgrade.md 与 docs/plan/18-organize-release.md。
- v0.3.8 全面升级:Deno workspace 依赖、Router 8 / Vite 8、camofox 1.18.0 / Node 24、
PostgreSQL 18.6、备份客户端 18.6、演示 qB 5.2.4
- v0.3.9 媒体整理:分类规则、整理来源与目录快照(0059)、文件管理整理入口
- v0.3.10 手动下载与入库:独立手动下载、详情页资源下载、TMDB / Local 元数据兜底
(metadata.resolve_organize)、正常多版本 / 一次性洗版(0060)
- v0.3.11 搜索详情与桌面黑边修复
- v0.3.12 列表分页、搜索历史、首页概况
- v0.3.13 统一整理弹窗与队列
- v0.3.14 原地入库(0061,未部署)
同批审计修复:
- 刮削入队:确认原记录存在后才删重放产生的新记录;写回 run 关联失败时保持 queued,
由处理器补关联(对齐 MP 先登记、只在入队失败时记失败)
- 识别升级链只在结果更确定时采用,不再用 no_match 顶替原有歧义候选
- bluray_dir 资产以原盘目录本身为刮削根(MP 同做法)
- metadata.resolve_organize 登记到入库排障 Skill 与能力地图
- db/src/types.ts 按迁移重新生成;contracts 整理动作枚举顺序与数据库对齐
- 测试:原地入库用例改为直接查记录表;domain 测试模板补 version
- 前端:通知铃铛弹层与用户菜单统一样式;站点卡片共用卡头、底栏贴底、分页间距
依赖升级证据只提交摘要文件,registry-snapshot.json 移至 .local/(SHA-256 记于文档)。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 15:47:17 +08:00
root and Claude Fable 5.1
8013196e3f
chore(release): v0.3.7
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-10-01 00:28:04 +08:00
root
a9511a75f6
Merge branch 'id3'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# CHANGELOG.md
2026-10-01 00:15:49 +08:00
root and Claude Opus 5.5
3d5a50b30a
feat(identity): escalate ambiguous/no_match via site detail-page IDs (ID-3)
...
Fetch the detail page (cached, rate-limited, per-site hourly cap
identity.detailIdsPerSiteHour) for search results, subscription-related
candidates, pool enrich and manual re-identify; resolve IMDb/TMDB via TMDB,
douban via cached douban subjects (site detail info block / META-2 snippets).
No identity_unresolved decisions for releases with site IDs.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:15:20 +08:00
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
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 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
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
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
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
b137f365c5
chore(release): v0.3.5
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 21:39:55 +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
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
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 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
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 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 Fable 5.1
395417f298
chore(release): v0.3.3
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:10:41 +08:00