jxxghp
a2117bafc8
fix(compat): preserve legacy plugin imports
2026-08-15 07:15:03 +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
895635c277
fix(db): 假值系统配置落库而非删除记录,布尔开关关闭态可持久化(#6309)
...
SystemConfigOper.set/async_set 原先对假值(False/0/None/空容器)执行删除记录,
读取端以「无记录」表示未配置并回落默认值,导致「挂载盘删除空目录」等布尔开关
关闭后刷新自动弹回开启。现改为假值同样落库更新,显式删除仍走 delete 方法。
2026-08-14 06:59:17 +08:00
InfinityPacer
57e7f86f38
feat(agent): record task run history ( #6305 )
2026-08-13 22:13:36 +08:00
InfinityPacer
e014604b1c
fix: 避免服务重启后重复执行 Agent 定时任务 ( #6302 )
2026-08-13 19:25:11 +08:00
jxxghp
b4863a6550
feat(media): support extensible media sources
2026-08-13 13:26:17 +08:00
Aqr-K
a2e70b443d
fix(monitor,transfer): 修复 FUSE 挂载无响应导致的监控冻死、整理链锁死与漏件 ( #6276 )
...
* wip(v3): 移植监控与整理韧性修复到 v3 基线
包含:监控看门狗隔离/挂载探测、整理队列持久化、文件系统子进程代理、
写入原子化。迁移重挂到 v3 链 8a4c7e1d2f90 -> 7f5c1d2e3a4b -> e3d9f4b7c806。
tmdb 相关测试尚未通过,待定位。
* fix(v3): 修正移植引入的 16 项测试失败
- poller.py:合并时我方保留的行仍用旧变量名 merged_snapshot,而 v3 已统一
改名为 current_snapshot,导致 NameError 被外层 except 吞掉、快照从未保存
- smb.py:采纳 f-string 拆分写法,恢复 Python 3.11 可解析
- dispatcher 测试:历史查重由 _should_skip_by_history 统一承担,mock 点随之调整
- tmdb 缓存测试:补充 v3 新增的 media_source/media_id 字段
- tmdb 重试测试:为 fake 补充 match_multi/async_match_multi
尚余 3 项与 v3 识别流程的连接失败处理有关,待单独判断。
* fix(v3): 测试适配 v3 的 media_source/media_id 重构
v3 将媒体标识从 tmdbid 统一重构为 media_source + media_id,recognize_media
的 tmdbid 参数已被 **kwargs 静默吞掉——传了也不生效,流程会误降级到名称搜索。
tmdb 重试用例改用新参数后恢复正确路径。
同时修正 fake 的 match_multi 语义:真实实现(tmdbapi.match_multi)吞掉所有
异常并返回 None,连接失败与「未找到」在该路径上本就不可区分,fake 需保持一致。
至此移植引入的 19 项失败全部清零。
---------
Co-authored-by: Aqr-K <Aqr-K@users.noreply.github.com >
2026-08-13 08:19:54 +08:00
InfinityPacer
0ac641c05d
fix(database): fail startup on migration errors ( #6279 )
2026-08-12 21:29: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
4a14af706c
feat(dashboard): 媒体统计新增音乐本月新增数量
...
- monthly_media_statistics 纳入音乐整理记录,按曲目计数并按媒体 ID 去重
- Statistic 新增 music_count_month 字段,仪表板统计接口一并返回
2026-08-10 20:33:25 +08:00
jxxghp
d72ed5ed8e
feat(v3): move notification templates into DB migration and support music notifications
2026-08-10 13:23:20 +08:00
jxxghp
75e56d8e9a
feat(music): add audio quality workflow
2026-08-10 10:23:02 +08:00
jxxghp
b3b376f2b1
feat(agent): complete music workflow support
2026-08-10 08:11:54 +08:00
jxxghp
5572b2dc64
fix(music): separate album and recording subscriptions
2026-08-09 23:30:31 +08:00
jxxghp
393a4ca4e2
feat(music): complete album subscription workflow
2026-08-09 20:43:33 +08:00
jxxghp
0c1b9c0416
fix: 订阅年份写库前转为字符串,避免音乐订阅时报类型错误
...
音乐识别链路返回的年份是数字,而订阅表 year 列为字符串,
直接写入会导致 PostgreSQL 严格类型检查失败(expected str, got int)。
在 SubscribeOper 写库前统一做字符串归一化,并补充回归测试。
2026-08-09 11:25:21 +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
52ca375f3d
fix(history): stabilize download history pagination
2026-08-03 08:45:35 +08:00
InfinityPacer
7c3f9629bf
fix(subscribe): scope duplicate checks by episode group ( #6219 )
2026-08-01 18:40:29 +08:00
jxxghp
a23fce1491
feat: 统计共享媒体识别命中次数
2026-07-30 17:50:16 +08:00
jxxghp
cae28d8c03
fix(transfer): 支持显式重新整理历史记录
2026-07-26 08:59:57 +08:00
yubanmeiqin9048
a1a6376adc
feat: add async plugin data interfaces ( #6188 )
2026-07-25 14:24:47 +08:00
jxxghp
297cd04fbc
fix: deduplicate SunnyPT site messages
2026-07-23 14:12:41 +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
jxxghp
31544629b4
Add autonomous Agent task scheduling
2026-07-19 20:19:06 +08:00
InfinityPacer
e015c67689
chore(db): add driver error diagnostics ( #6115 )
2026-07-14 12:31:46 +08:00
jxxghp
09bb32f681
fix: cool down failed subscription resources
2026-07-07 17:07:13 +08:00
InfinityPacer
7f82a9ea4d
fix(security): scope subscriptions to owner ( #6056 )
2026-07-05 09:45:27 +08:00
InfinityPacer
656473f3aa
fix(security): require manage access for workflows ( #6052 )
2026-07-05 09:27:24 +08:00
jxxghp
9b1bdb0cb2
feat(dashboard): add system summary endpoint and monthly media statistics
2026-06-28 17:49:09 +08:00
jxxghp
4233ebfba6
Persist notification clear markers
2026-06-24 16:58:08 +08:00
jxxghp
3e3883a57f
Fix history search case sensitivity
2026-06-23 11:16:12 +08:00
jxxghp
0cd049bfc2
Refactor movie pilot config and test coverage
2026-06-23 10:05:45 +08:00
jxxghp
80d440f6a0
feat: persist agent chat history
2026-06-18 11:45:50 +08:00
jxxghp
d4b6d3f332
refactor: remove persist_output_message functionality and related database save logic
2026-06-17 16:14:35 +08:00
jxxghp
e78efe3e34
feat: implement file upload and callback handling for Web Agent
2026-06-16 22:53:11 +08:00
jxxghp
fc8933c648
feat(workflow): enhance workflow context serialization and execution state management
2026-06-05 00:41:02 +08:00
jxxghp
a2984530f8
feat(workflow): add execution configuration and structured execution state to workflow
2026-06-04 15:57:34 +08:00
jxxghp
9056caae40
feat(workflow): enhance workflow execution and context management
2026-06-04 14:10:06 +08:00
jxxghp
3fa5d31d81
fix: normalize subscribe integer flags before persistence
2026-06-02 23:32:37 +08:00
TimoYoung
22bb15583d
fix(alembic): ConfigParser interpolation breaks migration with special chars in PG password ( #5782 )
2026-05-18 17:09:02 +08:00
jxxghp
3ee601574c
fix: reduce low-risk pylint issues
2026-05-17 08:01:39 +08:00
DDSRem
e5b67438d9
feat: add wildcard glob support to file manager and transfer history search ( #5767 )
2026-05-13 21:08:51 +08:00
jxxghp
0959c4ace4
feat: add full-season pack option for TV best-version subscriptions
...
- Introduce `best_version_full` field to subscribe and subscribehistory models and migration
- Update subscription logic to support only downloading full-season packs when enabled
- Extend CLI, API, and documentation to reflect new option
- Add tests for full-season best-version behavior
2026-05-13 16:53:24 +08:00