Commit Graph
131 Commits
Author SHA1 Message Date
rootandClaude Opus 5.5 501b4eb403 docs: 待办收尾,补测试与代码布局约定
- 待办:任务恢复边界、注册断言、测试装配去重、大文件拆分、MP 对照 6.4 已完成并移除;
  BrowserService 类拆分与超长函数写明暂缓原因;真实环境验收列出所需条件;
  continuous-series 偶发超时改为观察项(已核实不是业务竞争)
- CLAUDE.md:test/support、contracts api/ 与整理服务的文件布局、起子进程的测试进串行组
- lessons 第 26 条:检查命令不接管道

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 17:40:43 +08:00
rootandClaude 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
rootandClaude 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
rootandClaude Opus 5.5 11ca2f01ff chore: 一键检查、发布脚本与开发环境约定
- deno task test:all(scripts/test-all.sh):逐包跑完再汇总,连不上测试库直接失败,
  web 用 Node 跑 vitest;deno task ci 改用它
- deno task release(scripts/release.sh):工作区不干净、CHANGELOG 无本版条目即拒绝;
  打 tag、构建、只替换 app、核对健康接口版本
- deno task dev:up:起开发库并迁移到最新;开发 API 端口改 4390(4380 留给本机部署版)
- CLAUDE.md:命令、提交与发布约定、文档放哪

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 16:08:09 +08:00
rootandClaude 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
rootandClaude 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
rootandClaude 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 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
rootandClaude 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 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
rootandClaude 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
rootandClaude 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
rootandClaude 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
rootandClaude 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
rootandClaude 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
rootandClaude 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
rootandClaude 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
rootandClaude Fable 5.1 cdff88dcc9 docs(plan): uniform inspection cards (FIX-9)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 19:18:04 +08:00
rootandClaude 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
root 6f5371be2d Merge branch 'meta2'
Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	CHANGELOG.md
2026-09-30 18:40:42 +08:00
rootandClaude Opus 5.5 9489e40e0c feat(identity): source-aware short-drama enrichment with snippet mode and hit rate (META-2)
- classify enrich sources: encyclopedia, platform pages (hongguo, kuaikaw, video
  platforms), douban (search snippet only) and other sites' search snippets
  (snippet mode, pages never opened); one extractor per source, fields carry
  source kind and confidence, merged by noisy-OR across hosts
- new cast field (applied as MediaCredit with placeholder ids)
- robots.txt check (cached per host 1 day) and login-wall/captcha give-up
- per-enrichment source attempts + GET /identity/enrich-stats, 30-day hit-rate
  table under settings -> metadata -> identity
- setting identity.enrichSnippetAllSites (default on); default domains add
  baike.com and kuaikaw.cn
- replay fixtures from the real run on the 4 user-library short dramas
  (sanitized Brave responses, hongguo page, robots.txt)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 18:40:19 +08:00
rootandClaude Fable 5.1 afe30a2255 Merge branch 'md2'
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 18:04:39 +08:00
rootandClaude Opus 5.5 f9901b514b feat(metadata): overview falls back to Chinese variants only (MD-2)
- adapters: overviewLanguages() limits overview/tagline chain to Chinese
  variants (zh-CN→zh-SG→zh-TW→zh-HK); titles keep full chain; season
  supplement fetch skips languages useless for overview
- setting metadata.overviewNonChineseFallback (default off) + UI switch
- media detail shows "暂无简介" for empty entity/episode overview
- scripts/overview-recompute.ts: recompute stored non-Chinese overviews
  from kv_cache only (no TMDB requests), dry-run by default, --apply
- tests: chain unit tests, Heart Signal (103147) fixture, server
  recompute test, MP differential for episode overview
- runbook + CHANGELOG

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 18:04:23 +08:00
rootandClaude Fable 5.1 0023872b9b docs: agent report anti-sample and AG-5 plan
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 17:45:41 +08:00
rootandClaude Fable 5.1 081db4651c docs(plan): overview language fallback (MD-2) and loose-ends decisions
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 17:41:14 +08:00
rootandClaude Fable 5.1 d251098471 docs(lessons): restore deno.lock before image builds
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 03:34:49 +08:00
rootandClaude Opus 5.5 9ea0d6bed1 docs(browser): BR-4 runbook for browser identity, UA priority, migration, CF cookies, egress
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 03:17:13 +08:00
rootandClaude Fable 5.1 6663afce7e docs(plan): BR-4 go-ahead
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 02:13:22 +08:00
rootandClaude Fable 5.1 f3ea127f22 docs(plan): no ffmpeg for file previews (user decision)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 01:54:46 +08:00
root 7a24d23bbf Merge branch 'ia2'
Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	CHANGELOG.md
#	docs/plan/00-first-version-plan.md
#	packages/agent/src/system-prompt.ts
2026-09-30 00:30:42 +08:00
rootandClaude Opus 5.5 1493cd1bb1 docs: IA-2 nav regroup and site types
Glossary: site types, acquisition modes, the 获取 group name
(ACQUIRE_GROUP_TITLE). Runbook sites.md, CHANGELOG [Unreleased], plan
status.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 00:29:56 +08:00
rootandClaude Fable 5.1 c0522f2531 docs(plan): fold download plans into download panel (DL-3)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 00:26:38 +08:00
rootandClaude Fable 5.1 79202efdb5 docs(design): browser UA research and BR-4 decisions
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 00:25:47 +08:00
rootandClaude Fable 5.1 3051575989 docs(plan): browser UA/fingerprint research item (BR-4)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-30 00:18:03 +08:00
root 51db3afd0b Merge branch 'fix7'
Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	docs/plan/00-first-version-plan.md
2026-09-30 00:00:29 +08:00
rootandClaude Opus 5.5 842a77af4f docs(plan): FIX-7 落地状态与根因
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 00:00:03 +08:00
rootandClaude Fable 5.1 f0e1c77e35 docs(plan): nav regroup and site types (IA-2)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 23:45:08 +08:00
rootandClaude Fable 5.1 68f53390f6 docs(plan): v0.3.0 verification findings (FIX-7)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 23:21:05 +08:00
rootandClaude Fable 5.1 0055db6cf9 Merge branch 'agui3'
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 22:43:07 +08:00
rootandClaude Opus 5.5 3079464925 docs(plan): AGUI-3 落地状态、偏离报告之处与术语
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-29 22:41:47 +08:00
root 8315ece4d1 Merge branch 'dl2'
Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	apps/web/app/routes/console/downloads.tsx
#	docs/plan/00-first-version-plan.md
2026-09-29 21:45:15 +08:00
rootandClaude Opus 5.5 3b340745bf feat(downloads): live speeds and active/completed split on the download panel (DL-2)
- GET /download-tasks/board?state=active|completed: per-torrent dl/up speed,
  ETA, seeds/leechs, downloader total speed (transfer/info), counts for both
  groups, latest organize result (status, reason code, open decision)
- live qB data cached per instance for 2 s with in-flight coalescing
- panel: total speed line, 进行中 / 已完成 segments remembered locally,
  4 s polling while the page is visible, mobile layout, "—" for zero speed

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-29 21:44:34 +08:00
rootandClaude Opus 5.5 289e8b297a feat(files): wide file manager layout and basic previews (FM-2)
- Files page uses a wide layout (route handle layout:"wide"): no max width,
  full-height directory tree docked next to the sidebar, resizable
  (200-520px, remembered, double-click resets) and collapsible; mobile keeps
  the tree in a drawer.
- GET /files/preview (admin console session only, same path guards as
  download): text/NFO with encoding detection (BOM/UTF-16/UTF-8/GB18030/Big5),
  subtitles first 200 cues (SRT/VTT/ASS/SSA, PGS timings), .torrent file
  list/trackers (passkey masked)/infohash, image dimensions. Reads at most
  1 MiB of text; .torrent capped at 4 MiB.
- Download also allows text files, .torrent and avif/gif.
- Research notes in docs/design/file-preview-research.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-29 21:44:13 +08:00
rootandClaude Fable 5.1 3add4bab41 docs(plan): worker lanes decision (WK-1)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 21:27:19 +08:00
rootandClaude Fable 5.1 3c8df16077 docs(plan): file manager wide layout and preview research (FM-2)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 21:15:32 +08:00
rootandClaude Fable 5.1 8086250ec2 docs(plan): download panel speeds and unfinished-first view (DL-2)
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 21:14:04 +08:00
rootandClaude Fable 5.1 021306bbfa docs(plan): LIBV-1 follow-up from screenshot review
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-09-29 21:03:21 +08:00
root 3f1ff01689 Merge branch 'libv1'
Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	docs/plan/00-first-version-plan.md
2026-09-29 21:03:08 +08:00
rootandClaude Opus 5.5 bf9e73e86e feat(library): show stored versions per episode and movie (LIBV-1)
- domain versionSpecOf: file name + ffprobe + ingest quality -> version spec;
  summarizeVersions; matchVersions (satisfied / missing / upgradeable, single target)
- GET /library/{id}/versions: per-season/episode versions, summaries, matches[]
- organize writes full spec into media_asset.delivery (specVersion 1)
- scripts/asset-spec-backfill.ts: dry-run by default, --probe local only, --apply
- web: season summary line, one-line spec per episode, N versions expand,
  tech info details (TODO: DEAI-2 TechInfo), movie versions panel

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-29 21:02:37 +08:00