jxxghp
|
e274672a6a
|
refactor: unify subscription deletion transactions
|
2026-08-24 02:38:18 +08:00 |
|
InfinityPacer
|
45b41a5caa
|
fix(subscription): preserve batch search execution (#6419)
|
2026-08-23 19:35:54 +08:00 |
|
jxxghp
|
ca66b39b7e
|
feat: make subscription notifications durable
|
2026-08-23 02:35:16 +08:00 |
|
jxxghp
|
903bc090ed
|
feat: make subscribe completion durable
|
2026-08-23 00:59:17 +08:00 |
|
jxxghp
|
a59f1b928a
|
feat: make subscribe reports durable
|
2026-08-23 00:25:23 +08:00 |
|
jxxghp
|
16f7d65640
|
refactor: complete chain entrypoint slicing
|
2026-08-22 22:31:24 +08:00 |
|
jxxghp
|
b45597866b
|
refactor: split subscription creation stages
|
2026-08-22 21:07:18 +08:00 |
|
jxxghp
|
c8e2ba0ea7
|
refactor: isolate subscription media server aggregation
|
2026-08-22 19:34:19 +08:00 |
|
jxxghp
|
1bb6e36e8c
|
refactor: complete runtime configuration migration
|
2026-08-22 19:07:07 +08:00 |
|
jxxghp
|
7b6353337d
|
fix(ci): keep subscribe match complexity within ratchet
|
2026-08-22 12:07:22 +08:00 |
|
jxxghp
|
2d982f08fa
|
fix(search): disambiguate yearless same-title resources
|
2026-08-22 11:35:01 +08:00 |
|
jxxghp
|
508bf0bc38
|
fix(ci): restore lint and architecture gates
|
2026-08-22 10:23:18 +08:00 |
|
InfinityPacer
|
f7b7201fba
|
fix(subscribe): fail closed on lock timeout (#6384)
|
2026-08-22 09:47:39 +08:00 |
|
jxxghp
|
dce7372b81
|
feat: persist subscription side-effect outbox
|
2026-08-21 21:50:18 +08:00 |
|
jxxghp
|
7de72e0e83
|
refactor: own subscription create transactions
|
2026-08-21 20:37:31 +08:00 |
|
jxxghp
|
c2a27f7c71
|
refactor: 收口订阅与插件应用边界
|
2026-08-18 13:54:17 +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
|
54f093a099
|
Merge remote-tracking branch 'origin/v3' into v3
# Conflicts:
# app/api/endpoints/agent.py
# app/api/endpoints/anthropic.py
# app/api/endpoints/openai.py
# app/chain/__init__.py
# app/chain/message.py
# app/chain/site.py
# app/chain/subscribe.py
# app/chain/transfer.py
# app/modules/discord/__init__.py
# app/modules/qqbot/__init__.py
# app/modules/slack/__init__.py
# app/modules/telegram/__init__.py
# app/modules/wechat/__init__.py
# app/runtime/extensions/module_manager.py
# app/runtime/extensions/service_registry.py
# tests/test_agent_interaction.py
# tests/test_slash_command_interactions.py
# tests/test_web_agent_stream.py
|
2026-08-16 19:44:43 +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
|
7e851dbfa7
|
refactor(chain): 处理链功能域 mixin 化,清理未使用导入并根治兼容层循环导入
- ChainBase 拆分为 RecognitionMixin/MessageProcessingMixin/NotificationMixin
- TransferChain 拆分为 7 个功能 mixin(_mixins.py),SubscribeChain 音乐订阅域拆出 _music.py
- 斜杠命令交互四件套收敛为 InteractionChainMixin 委托,会话管理器移至 application 层,chain 层不再 re-export
- 模块基础类收敛到 app/modules/_base(notification/mediaserver 语义重命名)
- 清理 app/chain/__init__.py 24 个未使用导入,修正 49 处测试 patch 目标到实际命名空间
- 兼容层 legacy 符号不再并入 __all__,根治 schemas 初始化反向拉起 application.transfer 的循环导入
- 修复 bangumi 集数为字符串时 set_bangumi_info 抛 TypeError
- 新增重复代码等架构门禁测试;capability 清单校验排除下划线内部目录
|
2026-08-16 16:30:16 +08:00 |
|
jxxghp
|
dd38c16400
|
refactor(messaging): 拆分用户交互模块到 application/messaging 层
- 新增 application/messaging 交互层:router.py 统一会话优先级与回调分发,
site/subscribe/skill/media/plugin 各交互状态与视图从 Chain 迁出
- MessageChain 改为通过 InteractionRouter 派发文本会话与按钮回调,
新增结构化 callback_data 通道(兼容 CALLBACK: 文本前缀)
- Transfer 失败重试/AI 接管回调归入 TransferChain
- MediaInteractionChain 拆出为 app/chain/interaction.py(旧路径保留兼容别名)
- WebAgent Endpoint 去重,统一使用 agent.py 回调协议函数
- 删除 app/chain/skills.py(交互逻辑并入 SkillInteractionHandler)
- 同步更新架构文档与测试,全量 4476 通过
|
2026-08-15 16:36:39 +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
|
d0edcfa7bb
|
feat(music): 音乐订阅刷新与识别缓存
|
2026-08-11 11:39:08 +08:00 |
|
Yang Feng
|
16840c6767
|
fix(subscribe): 修复 RSS 媒体 ID 误识别跳过 (#6266)
|
2026-08-10 17:55:46 +08:00 |
|
jxxghp
|
75e56d8e9a
|
feat(music): add audio quality workflow
|
2026-08-10 10:23:02 +08:00 |
|
jxxghp
|
1fc255b8a7
|
fix(music): complete subscription lifecycle
|
2026-08-10 07:21:06 +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
|
60aa762ca1
|
feat: 音乐识别与刮削统一入口整合
- 音乐识别统一走 recognize_media,移除 MusicChain.recognize/async_recognize 及 /music/search 独立端点
- 音乐刮削收拢到 MediaChain.scrape_music_metadata,消除 MusicChain 对 MediaChain 的嵌套引用
- MetaInfo/MetaInfoPath 增加 force_video 参数,影视附加音轨保留季集归属
- 整理、订阅、搜索、API 层音乐识别入口全部统一
|
2026-08-09 10:06:54 +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 |
|
InfinityPacer
|
7c3f9629bf
|
fix(subscribe): scope duplicate checks by episode group (#6219)
|
2026-08-01 18:40:29 +08:00 |
|
jxxghp
|
8d099b9581
|
fix(subscribe): preserve source identity when adding subscriptions
|
2026-07-25 08:51:30 +08:00 |
|
jxxghp
|
ff9ba79b60
|
Codex/fix season subscription poster (#6185)
|
2026-07-25 08:07:08 +08:00 |
|
jxxghp
|
3b709b7f2e
|
feat: unify media source identity flow (#6129)
|
2026-07-21 20:20:09 +08:00 |
|
InfinityPacer
|
d9a42c672a
|
fix(subscribe): refine TV wash priority lifecycle (#6153)
|
2026-07-20 14:02:19 +08:00 |
|
kuke2733
|
229824a417
|
feat(subscribe): merge mediaserver library entries into files info (#6131)
|
2026-07-16 17:36:56 +08:00 |
|
InfinityPacer
|
30b932e07e
|
fix(subscribe): preserve confirmed episode floor (#6102)
|
2026-07-12 07:18:29 +08:00 |
|
jxxghp
|
136c1baed3
|
fix: keep new subscribe state during guard
|
2026-07-06 23:10:25 +08:00 |
|
jxxghp
|
992031ef95
|
Revert "fix: trigger initial subscribe search"
This reverts commit 76803ae7a3.
|
2026-07-06 19:15:16 +08:00 |
|
jxxghp
|
76803ae7a3
|
fix: trigger initial subscribe search
|
2026-07-06 19:02:01 +08:00 |
|
InfinityPacer
|
2f0c1252da
|
feat(subscribe): expose cached site candidates (#6062)
|
2026-07-06 06:54:19 +08:00 |
|
InfinityPacer
|
ec07379a67
|
fix(subscribe): record movie completion priority (#6033)
|
2026-07-01 06:01:32 +08:00 |
|
Pollo3470
|
302d8bbf5c
|
fix(transfer): 修复订阅自定义识别词在整理时失效 (#6018)
|
2026-06-29 15:49:02 +08:00 |
|