root and Claude Opus 5.5
1ade49fe8e
chore(release): v0.3.41
...
智能体抽屉读 ?open= 上下文、回复链接用抽屉地址;抽屉打开不亮焦点框;语句统计重复 key。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-08 14:39:24 +08:00
root and Claude Opus 5.5
dd0f6e2c09
chore(release): v0.3.40
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-08 12:51:57 +08:00
root and Claude Opus 5.5
8ff1817845
fix(sources): 快照开始前收尾本站遗留的运行中记录;v0.3.39
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-08 03:39:00 +08:00
root and Claude Opus 5.5
47ca8886b1
chore(release): v0.3.38
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-08 02:43:14 +08:00
root and Claude Opus 5.5
d842bb7fb4
chore(release): v0.3.37
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-07 02:52:37 +08:00
root and Claude Opus 5.5
88c1e3aedb
chore(release): v0.3.36
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-07 01:02:45 +08:00
root and Claude Opus 5.5
3f5227654e
chore(release): v0.3.35
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 23:40:41 +08:00
root and Claude Opus 5.5
55733cded0
chore(release): v0.3.34
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 21:02:24 +08:00
root and Claude Opus 5.5
384ea3d8d6
chore(release): v0.3.33
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 20:09:55 +08:00
root and Claude Opus 5.5
0f656f0f58
chore(release): v0.3.32
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 18:58:53 +08:00
root and Claude Opus 5.5
81405f1e94
chore(release): v0.3.31
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 17:22:49 +08:00
root and Claude Opus 5.5
731336ccb1
chore(release): v0.3.30
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 16:14:15 +08:00
root and Claude 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
root and Claude 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
root and Claude 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
root and Claude Opus 5.5
0085e45ca7
chore(release): v0.3.27
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 21:49:03 +08:00
root and Claude Opus 5.5
15d7f2ec2f
merge: fix/b-download
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 21:23:04 +08:00
root and Claude Opus 5.5
2159765949
fix(download): 已入库任务不被 qB 中间态改回(H2)
...
importing / imported 只由整理侧推进:checkingResumeData / queuedDL / checkingUP / moving 等中间态只更新原始字段,不改回 queued / downloading / completed,completed_at 不重写;这期间也不做无进展判定。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 21:20:08 +08:00
root and Claude Opus 5.5
70935f4c17
整理:被排除的待确认视频不算成功
...
季集待确认 / 没有季目录 / 命名失败而被排除的视频(excluded:episode_unresolved / no_target_dir /
naming_failed)让整理记录从 succeeded 降为 partial;样例、过小、已在库等预期跳过不受影响。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 20:59:06 +08:00
root and Claude Opus 5.5
6b19cede62
chore(release): v0.3.26
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 20:08:42 +08:00
root and Claude Opus 5.5
691671a1d2
feat(identity): 识别接入集数解析——映射规则表、规范季集写回解析结果、待确认不建单元并开待处理、规则失效停用、按作品重算
...
迁移 0066_episode_mapping。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 18:03:32 +08:00
root and Claude Opus 5.5
c30a758a74
feat(subtitles): 字幕库验证码由智能体视觉接管;字幕站原站视图下载当前字幕
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 11:43:08 +08:00
root and Claude Opus 5.5
227f7ea4f9
chore(release): v0.3.24
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 02:42:05 +08:00
root and Claude Opus 5.5
92d456d123
chore(release): v0.3.23
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 02:06:23 +08:00
root and Claude Opus 5.5
1a76d2d700
chore(release): v0.3.22
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 01:30:32 +08:00
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
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
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
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
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
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
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
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 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 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
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
395417f298
chore(release): v0.3.3
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:10:41 +08:00
root and Claude Fable 5.1
04460fa98e
chore(release): v0.3.2
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 03:29:04 +08:00
root and Claude Fable 5.1
9296161683
chore(release): v0.3.1
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 01:26:48 +08:00
root and Claude Fable 5.1
8c50e4672f
chore(release): v0.3.0
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-29 22:55:20 +08:00
root and Claude Opus 5.5
51e0032d14
feat(parser): site category prefix, RSS embedded description and subtitle titles (ID-2)
...
Strip [电视剧]/[动漫]/[音乐]… prefixes into parsed.category instead of titleCn,
split RSS-embedded site descriptions into the subtitle, take the first Chinese
name of the subtitle as titleCn and the rest as altTitles, and stop reading
'Travis - 12 Memories' as episode 12. PARSER_VERSION 2.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-29 17:41:22 +08:00
root and Claude Fable 5.1
a662a4d2fd
chore(release): v0.2.4
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-29 03:27:14 +08:00
root and Claude Fable 5.1
bfe07c3114
chore(release): v0.2.3
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-29 02:40:38 +08:00
root and Claude Opus 5.5
b4c9b1ead2
fix(system): retired heartbeat rows no longer alarm on status page
...
- GET /system/health splits processes into current instances (hosts with
a beat in the last 10 min, newest per host+kind, not stopped) and
retiredProcesses[]; 45s stale and level only consider current ones
- heartbeat writer marks stopped_at on graceful exit (migration 0043),
upsert clears it; pure api role now stops its writer on SIGTERM
- scheduled job system.heartbeat_cleanup (maintain, 1h) deletes rows
without a beat for 24h and samples older than 7 days
- status page: per-role alarms ("io worker 45 秒没有心跳"), collapsible
retired instances; glossary/runbook updated
- bump all members to 0.2.2, CHANGELOG [0.2.2]
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-28 23:31:21 +08:00
root and Claude Opus 5.5
f7c75ad781
feat(domain): naming template engine (Jinja safe subset, MP variables, path layout)
...
- naming/engine: lexer/parser/AST/render for {{ }} / if-elif-else / whitelisted filters
(default pad pad2 upper lower trim replace truncate date join); rejects for/set/attribute/
subscript/call/~/% with line:col errors and 'did you mean' hints
- naming/variables: variable table aligned with MoviePilot names plus ours (cut, airDate,
issue, slotName, libraryRoot ...); buildNamingVars from parsed release + entity + units
- naming/layout: split by literal '/', segment roles (category/root/season/sub/file),
value escaping, reserved names, 255-byte segments, validateNamingTemplate
- naming/defaults: MP default movie/tv + our variety template, v1 syntax upgrade,
entity > root > global override resolution, builtin preview samples
- path/binding: resolveTargetDirectory keeps bound dirs, only unbound segments render;
renderMediaFileName = last segment of the full template; DEFAULT_TEMPLATES = MP v2
- differential: 34 cases vs MP (21 identical, 13 documented deviations)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-28 15:24:32 +08:00
root and Claude Sonnet 5
623aa0d3b7
chore(release): v0.2.0 version and changelog
...
Co-Authored-By: Claude Sonnet 5 <[email protected] >
2026-09-28 13:53:33 +08:00
root and Claude Opus 5.5
36aa99b8aa
feat(files): W5-A2 move/copy via planImport, organize overrides, delete records, download
...
- /files/move|copy go through planImport's new `transfer` variant (keep names, directory
expanded to per-file plan) → organization_record + verifyAndImport/executeRecord: per-file
ledger resumable, fsproxy, cross-volume directory move = per-file copy→verify→delete then
remove empty source dirs; shared plan store + plan_stale; asset_location follows per file,
path_binding revised when a whole directory moved (finalizeTransfer); request waits up to
FILES_TRANSFER_WAIT_SEC, else executed.pending
- /files/organize per-item overrides take effect: season/episodes (domain planOrganize
overrides), contentUnitId coverage, targetDir (no binding), operation, slotId (satisfied
after verify); warnings only for inapplicable overrides
- delete/trash/restore write organization_record (action trash|delete|restore, file-level
results; migration 0026)
- GET /files/download (admin session, nfo/subtitle/image, size cap, streamed, audited)
- GET /files/records?ids|planIds for the organize page
- fs race errors map to 503/404/403/400 instead of 500
- runbook updated
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-27 23:53:50 +08:00
root and Claude Opus 5.5
1dd460d359
feat(db,contracts): W5-C subscription units migration 0025, contracts and mapping
...
- subscription: status pending (TMDB not ready: searchable/evaluable, not completable),
last_searched_at / next_search_at
- content_unit (season): episode_total ledger with source / lock / timestamp
- acquisition_plan: unit_keys (Slot × unit reservation) and file_selection; drop the
one-in-flight-per-slot unique index (checked under slot row lock per unit instead)
- new tables slot_deferral, slot_unit (per-unit quality ledger), subscription_history
- contracts: SubscriptionParams, SubscriptionHistory, SlotDeferral, SlotUnit, SubscriptionProgress,
EpisodeTotalSet, CandidateEvaluation pri/trace/unitKeys and decision deferred;
endpoints subscriptions.search/progress/setEpisodeTotal and subscription-history
- mapping: evaluation messages via describeViolation, pri/trace passthrough
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-27 23:33:56 +08:00