jxxghp
17a866f47b
fix(transfer): restore AI takeover for failed transfers
2026-10-22 09:43:03 +08:00
DDSRem
2de976f6b3
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
...
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
e51fd44964
fix(agent): resolve alternative QQ and Feishu user bindings
...
Keep strict binding lookup as the default and explicitly match alternative channel identifiers for the Agent API gateway. Reject ambiguous active-user matches and cover single-field bindings with database-backed tests.
Refs #6905
2026-10-07 09:16:33 +08:00
jxxghp
6b8f5f90df
fix(agent): type and cover encoded api bodies
2026-10-02 23:12:48 +08:00
q10710
37d9680674
fix(agent): restore JSON-encoded string bodies in api argument canonicalization
2026-10-02 22:19:07 +08:00
jxxghp
dc0ad842fb
fix(agent): make API input errors actionable
2026-09-30 19:16:35 +08:00
jxxghp
b6f3d37bd1
fix(agent): preserve bound subscription owner for channel users
2026-09-30 17:49:45 +08:00
jxxghp
4f72b77ef0
fix(agent): constrain API request body shapes
2026-09-23 14:24:06 +08:00
jxxghp
d665426157
fix(agent): constrain API body input to JSON values
2026-09-15 18:15:31 +08:00
jxxghp
71fffde878
feat(agent): 完善系统设置机器可读合同
2026-09-15 13:11:29 +08:00
Aqr-K
57fb96fc3c
feat(plugin): 分身后缀可留空自动分配,并支持按后缀恢复已停用的分身 ( #6673 )
2026-09-14 07:00:31 +08:00
Aqr-K
5fd04505c1
feat(plugin): 分身彻底清理,并按包含性校验收口插件数据目录解析 ( #6671 )
2026-09-13 21:05:04 +08:00
Aqr-K
d44480d739
Merge pull request #6666 from Aqr-K/feat/plugin-instance-target-enablement
...
feat(plugin): 插件实例默认调用目标与启停,未指定实例时不再兜底取第一个
2026-09-13 16:37:27 +08:00
Aqr-K
e47d7defe7
feat(plugin): 插件本体与分身可各自设置独立日志等级
...
全局日志等级是一个开关,调试单个插件时只能整体下调。一旦下调,被调试插件那几行
日志会淹没在其他几十个插件与宿主自身的 DEBUG 输出里,找不出来;不下调又什么都
看不见。插件实例数量只会继续增长,这个矛盾不会自己消失。
因此把等级下放到实例:plugininstance 行加 log_level / log_expires_at 两列,本体与
分身共用同一张表、同一套语义。等级落在实例自己那一行而不是另起一张按实例 ID 索引
的表——它和业务参数一样是用户按实例设置的东西,同一个生命周期,实例被删时应当随行
一起消失。清除覆盖后若本体行只剩一对身份列,整行按 carries_only_identity 回收,与
清空业务参数同一规则。
覆盖带失效时间,因为它是调试设置不是长期配置:开了 DEBUG 忘记关,下次谁也想不起
某个插件为什么一直在刷日志。过期判定在读取时惰性执行并就地清理,不另起后台线程去
扫一张最多几十条的表。expires_at 在写入侧先归一到 UTC 再分发给缓存与落盘两处:客户端
提交的时间可能不带时区,两处各按进程时区折算一次,就会与读取口返回的 UTC 值差出一个
时区,表现为「提交的失效时刻和读回来的对不上」。
运行期用 ContextVar 在宿主自己控制的四类调用点绑定当前实例——构造与 init_plugin、
事件处理器、定时服务回调、插件声明的 HTTP 端点——而不是沿用 logger() 已有的栈帧内省。
内省认的是栈顶的模块与类,插件通过宿主公共方法转发调用时栈顶是宿主而不是发起调用的
插件,会把日志记到错误的来源上;分身更甚:分身共享源码,类的 __qualname__ 保持源类名
不变,内省根本分不出是哪一个分身在打日志。内省结果继续只用于文件路由,不参与等级判定。
等级过滤必须排在全局等级判定之前。官方现状是先按全局等级短路、之后才做内省,先短路
就会把实例调低的等级挡在门外,后面再怎么识别来源都看不到这条日志。
回调在注册时被捕获、稍后才由调度器或 FastAPI 调用,那时已经不在任何绑定作用域内,
故这两处改用 wrap_for_plugin_instance 把绑定包进回调自身;同一实例重复包装直接返回
原对象,避免插件缓存声明时包装链随重载次数无限增长。
进程内覆盖表按实例 ID 常驻,删分身时必须一并清掉:只删库里那一行的话,同一进程内用
相同后缀重建的分身会继承上一个分身的等级,界面显示「跟随全局」而实际仍按旧等级输出。
进程重启后反向从库预热缓存。
迁移链在 F1 之后追加:c4e1a7b9d2f6(3.0.35)-> 487f7e681955(3.0.36 加两列)。
顺带补了 agent 策略里缺失的 media.classification.policy.get 的 template 字段说明:
少了它,api_mcp_schema.json 与技能文档的两个生成脚本都跑不起来。
2026-09-12 19:05:05 -04:00
jxxghp
06ed22c584
feat(agent): improve browser-assisted site cookie login
2026-09-11 14:31:01 +08:00
jxxghp
ad73a14502
test(api): refresh generated contract baselines
2026-09-11 10:39:28 +08:00
jxxghp
0f8aa4dfa9
fix(agent): return operation input contracts on errors
2026-09-11 08:07:54 +08:00
jxxghp
3a22cb0118
Revert "fix(agent): surface common API field contracts"
...
This reverts commit bdeef730b9 .
2026-09-11 07:54:02 +08:00
jxxghp
bdeef730b9
fix(agent): surface common API field contracts
2026-09-11 07:50:13 +08:00
jxxghp
c5d5698e04
feat(agent): complete moviepilot api contracts
2026-09-11 07:21:05 +08:00
jxxghp
f383a8a5a3
feat(agent): 接入媒体自动分类策略 API
2026-09-10 22:36:50 +08:00
jxxghp
f00853de2a
feat(api): expose frontend-safe management capabilities
2026-09-05 15:11:02 +08:00
jxxghp
adae5bd878
fix(api): restore full plugin catalog by default
2026-09-04 10:47:02 +08:00
jxxghp
71147c1d96
feat(classification): support multi-source media rules
2026-09-03 11:51:18 +08:00
jxxghp
449ef4b8df
fix(agent): show API parameters in verbose mode
2026-09-01 11:57:36 +08:00
jxxghp
2f7f2da300
fix(agent): preserve collection totals in truncated results
2026-09-01 10:49:22 +08:00
jxxghp
a73714e5e7
feat(agent): add compatible collection pagination
2026-09-01 07:43:55 +08:00
jxxghp
6d4d7331d1
refactor: complete agent skill API contracts
2026-09-01 01:19:45 +08:00
jxxghp
0cfc62005a
fix(ci): silence pylint false positives for lazy facades
2026-08-31 17:07:16 +08:00
jxxghp
fdba2c7d64
refactor(agent): unify tools behind API gateway and provider skills
2026-08-31 16:57:54 +08:00