jxxghp
|
16f7d65640
|
refactor: complete chain entrypoint slicing
|
2026-08-22 22:31:24 +08:00 |
|
jxxghp
|
b3573e930a
|
refactor: extract direct batch download candidates
|
2026-08-22 21:55:16 +08:00 |
|
jxxghp
|
2d5b46004f
|
refactor: isolate batch download preparation
|
2026-08-22 21:43:17 +08:00 |
|
jxxghp
|
33ca1f824f
|
refactor: extract download success settlement
|
2026-08-22 20:46:48 +08:00 |
|
jxxghp
|
1bb6e36e8c
|
refactor: complete runtime configuration migration
|
2026-08-22 19:07:07 +08:00 |
|
jxxghp
|
5d9c6c8b19
|
refactor: expand runtime contracts and debt ratchets
|
2026-08-22 08:25:36 +08:00 |
|
jxxghp
|
820f7e8850
|
refactor: make download and transfer events durable
|
2026-08-22 08:03:00 +08:00 |
|
jxxghp
|
8472bcff43
|
refactor: 收口 V3 分层架构与插件兼容边界
|
2026-08-18 13:22:02 +08:00 |
|
jxxghp
|
5128ae9e1e
|
refactor: 推进后端分层架构治理
|
2026-08-18 00:29:14 +08:00 |
|
jxxghp
|
2bb090d2be
|
fix(download): 下载失败冷却日志补充失败原因和重试时间
将 _active_download_failure_fingerprints 返回类型从 Set[str] 改为 Dict[str, DownloadFailure],
__is_context_in_failure_cooldown 从失败记录中提取 error_message 和 next_retry_at,
日志输出格式改为「近期添加下载失败(失败原因:xxx),暂时跳过该资源,将于 yyyy-MM-dd HH:mm:ss 后重试」。
|
2026-08-17 13:24:22 +08:00 |
|
jxxghp
|
240a4dffe6
|
refactor(schemas): 统一 message/notification 命名边界,旧名收敛至兼容映射表
- notification 域:渠道能力(MessageChannel→NotificationChannel、ChannelCapability* 迁入 notification.py)
- message 域:消息收发(Notification→Message、NotificationType→MessageType、CommingMessage→IncomingMessage、NotificationHistoryItem→MessageHistoryItem、NotificationClear*→MessageClear*)
- Agent 工具契约:send_notification_message→send_message、notification_callback→message_callback
- 源码不保留旧名物理别名,旧导入经 app/runtime/compat/manifest.py SYMBOL_ALIASES 惰性解析
- API 路径与持久化键冻结不变,前端零改动
- 新增兼容守护测试与 docs/rules/07 命名边界规范
|
2026-08-16 19:32:20 +08:00 |
|
jxxghp
|
4345fcfa22
|
refactor(chain): chain 与 module 仅经 run_module 契约互联,实现模块内容封闭
- mTorrent 字幕链接解析下沉为 IndexerModule.site_subtitle_links,subtitle 模块自行跳过 API 站点
- TMDB/MusicBrainz 识别缓存管理改为模块方法(tmdb_cache_*/music_cache_*)经 run_module 分发
- WechatClawBot 客户端查找/临时客户端/缓存迁移内聚为 wechatclawbot_* 模块方法,
chain 移除 WechatClawBot 类与 ModuleManager 内省
- LISTENBRAINZ_* 常量迁至 schemas/types.py,模块与链层再导入保持兼容
- TMDbException 升为 schemas/exception.py 跨层契约,vendored 异常保持类身份一致
- 架构守护测试新增 test_chain_does_not_import_module_internals(共 18 项)
- 文档同步:chain->module 仅允许 run_module 分发,直接导入禁止
|
2026-08-16 05:25:28 +08:00 |
|
jxxghp
|
02f0dd0b9a
|
refactor(architecture): 修复模块依赖违规并强化架构守护
- 字幕编排上移 DownloadChain.download_site_subtitles,SubtitleModule 仅保留站点链接解析
- TransferChain.recommend_name 上移 TV episodes_info 获取,filemanager 模块不再导入 TmdbChain
- endpoint 穿透修复:WXBizMsgCrypt3 迁至 adapters/external/wechat_crypt.py;
music/tmdb 缓存管理、listenbrainz 常量、TMDbException、WechatClawBot 辅助统一经 chain 包装
- RuleParser 与 builtin_rules 合并为 application/filter_rules.py;
fsproxy/fsworker 迁至 adapters/system/
- chain/__init__.py 删除 qbittorrentapi/transmission_rpc 导入,消除后端协议类型泄漏
- 架构守护测试新增三项检查:模块间隔离、入口层穿透、下载器 SDK 泄漏
- 文档同步:05-architecture.md 记录 DB/Oper 聚合例外与迁移文件位置,AGENTS.md 更新所有权表
|
2026-08-16 04:59:17 +08:00 |
|
jxxghp
|
96118e73e7
|
refactor(string): split utilities by responsibility
|
2026-08-15 08:03:55 +08:00 |
|
Aqr-K
|
8a11214a43
|
refactor(db): 修复异步连接池无界增长,并完成 SQLAlchemy 2.0 迁移与分层归位 (#6320)
|
2026-08-15 06:58:38 +08:00 |
|
jxxghp
|
369d7d6448
|
refactor: reorganize backend module boundaries
|
2026-08-14 19:53:33 +08:00 |
|
jxxghp
|
7b3444c366
|
refactor backend module architecture
|
2026-08-14 15:45:38 +08:00 |
|
jxxghp
|
ca32922a7f
|
refactor(media): unify media identity and chain responsibilities
|
2026-08-12 18:31:09 +08:00 |
|
jxxghp
|
8bf2f601a6
|
refactor(media): unify source identity and music browsing
|
2026-08-12 12:56:40 +08:00 |
|
jxxghp
|
97dba2a8ae
|
feat: unify media recognition and music lifecycle
|
2026-08-12 06:51:58 +08:00 |
|
jxxghp
|
393a4ca4e2
|
feat(music): complete album subscription workflow
|
2026-08-09 20:43:33 +08:00 |
|
jxxghp
|
15c73240ac
|
fix(download): apply custom words to torrent episodes (#6234)
|
2026-08-09 16:32:12 +08:00 |
|
jxxghp
|
7797d34c48
|
feat: 识别文件类型:音乐
|
2026-08-08 23:38:34 +08:00 |
|
jxxghp
|
05d15a04f5
|
feat(v3): add music automation workflow
|
2026-08-07 21:50:22 +08:00 |
|
jxxghp
|
a700ba9379
|
feat(download): persist poster and backdrop images (#6232)
|
2026-08-03 21:38:26 +08:00 |
|
jxxghp
|
36dd381260
|
feat(download): expose source site for active tasks (#6231)
|
2026-08-03 18:40:08 +08:00 |
|
mustangpt
|
51d2ed1200
|
feat: support YemaPT Open API (#6227)
|
2026-08-03 07:01:21 +08:00 |
|
jxxghp
|
ff9ba79b60
|
Codex/fix season subscription poster (#6185)
|
2026-07-25 08:07:08 +08:00 |
|
jxxghp
|
3dde94be0f
|
feat: support SunnyPT API indexer
|
2026-07-23 14:04:07 +08:00 |
|
jxxghp
|
3b709b7f2e
|
feat: unify media source identity flow (#6129)
|
2026-07-21 20:20:09 +08:00 |
|
jxxghp
|
e3f80af74f
|
feat: expand metadata sources and media server sync (#6129)
|
2026-07-21 11:34:18 +08:00 |
|
InfinityPacer
|
5588e37c6d
|
fix: preserve season zero semantics (#6150)
|
2026-07-20 06:55:23 +08:00 |
|
InfinityPacer
|
428c19b6ba
|
fix(download): restore classification for configured roots (#6135)
|
2026-07-18 09:35:25 +08:00 |
|
jxxghp
|
09bb32f681
|
fix: cool down failed subscription resources
|
2026-07-07 17:07:13 +08:00 |
|
InfinityPacer
|
95b6adbeee
|
fix(security): restrict download save paths (#6054)
|
2026-07-05 09:31:01 +08:00 |
|
Pollo3470
|
302d8bbf5c
|
fix(transfer): 修复订阅自定义识别词在整理时失效 (#6018)
|
2026-06-29 15:49:02 +08:00 |
|
InfinityPacer
|
36fb82b7aa
|
feat(subscribe): record episode download facts (#6015)
|
2026-06-29 06:43:51 +08:00 |
|
jxxghp
|
e1ba9a2c97
|
feat: conditionally save message history based on save_history flag
|
2026-06-17 21:00:40 +08:00 |
|
jxxghp
|
bef2a81296
|
fix downloader task status queries
|
2026-06-14 18:23:18 +08:00 |
|
jxxghp
|
13f55f4b1d
|
fix: update media download directory resolution to return storage information
|
2026-06-10 18:51:52 +08:00 |
|
jxxghp
|
486c5294ba
|
fix: enhance error handling and logging for subtitle download process
|
2026-06-10 18:40:32 +08:00 |
|
jxxghp
|
cba52c57e6
|
修复 RAR 字幕包下载识别
|
2026-06-10 08:46:10 +08:00 |
|
jxxghp
|
829d7944b0
|
fix: create temp directory for subtitle API downloads
|
2026-06-10 07:07:33 +08:00 |
|
jxxghp
|
e3c5a94c52
|
feat: add subtitle search functionality and related data handling
|
2026-06-09 06:46:26 +08:00 |
|
InfinityPacer
|
e43adf51af
|
revert: absolute numbered season pack locating (#5869)
|
2026-06-01 21:09:23 +08:00 |
|
jxxghp
|
d353e7b208
|
fix: 订阅下载失败时尝试后续候选
|
2026-06-01 18:47:04 +08:00 |
|
InfinityPacer
|
b7c78da214
|
fix(subscribe): handle absolute numbered season packs (#5866)
|
2026-06-01 11:18:51 +08:00 |
|
InfinityPacer
|
b45956f850
|
fix(subscribe): require complete coverage for full best versions (#5857)
|
2026-05-29 14:10:29 +08:00 |
|
InfinityPacer
|
23d6ba0466
|
fix(subscribe): stop best-version per-episode redownload loop (#5781)
|
2026-05-18 06:56:29 +08:00 |
|
jxxghp
|
e168e31a8f
|
fix: offload subtitle download after add task
|
2026-05-17 08:26:13 +08:00 |
|