Commit Graph

707 Commits

Author SHA1 Message Date
jxxghp
1d84d17dc4 feat(system): add protocol-aware network checks 2026-09-24 12:25:45 +08:00
jxxghp
5d620b0cbe feat(media): support episode groups in manual scraping 2026-09-24 08:23:35 +08:00
jxxghp
4f72b77ef0 fix(agent): constrain API request body shapes 2026-09-23 14:24:06 +08:00
jxxghp
94f33b26a5 fix(agent): 回传网关 content[].thinking 思考分块 (#6756)
兼容 OpenAI-compatible 网关把思考内容放在响应 content[] 的 thinking
分块中并要求原样回传的协议:LangChain 在还原续轮请求时会整体过滤
thinking/reasoning 分块,导致工具调用后续请求被服务端以 400 拒绝。

兼容层现在会在历史 AIMessage 真实保存过这类分块时按原样回填到
assistant 内容最前(保留 signature),并兼容流式聚合的裸字符串正文、
DeepSeek 消息扁平化路径;未观测到分块时不做任何注入。
2026-09-22 11:46:50 +08:00
moviepilot-codex[bot]
d96f00113c feat: add GitHub Token device authorization 2026-09-21 18:30:15 +08:00
moviepilot-codex[bot]
1d043bb64e fix(agent): isolate memory by user 2026-09-21 08:59:33 +08:00
moviepilot-codex[bot]
9df35e7b83 fix: 修复配置快照、依赖同步和 Agent 上限 2026-09-21 04:26:48 +08:00
jxxghp
82b840ff49 fix(agent): keep API timeout types compatible 2026-09-20 16:08:57 +08:00
cyt-666
6e92a02255 fix: extend search.torrents timeout (#6734) 2026-09-20 15:23:47 +08:00
jxxghp
77e72c05f0 fix(agent): forward reasoning effort for compatible models 2026-09-18 23:20:35 +08:00
jxxghp
3eb339b8e0 feat(agent): unify memory retrieval and activity history 2026-09-16 18:24:30 +08:00
jxxghp
4e9a64c0f0 refactor(application): 按模块子目录统一文件命名 2026-09-15 23:57:06 +08:00
jxxghp
61b0ae951f refactor(application): 拆分消息渠道权限 2026-09-15 23:57:06 +08:00
jxxghp
0fa5224e66 refactor(application): 拆分 Agent 选择交互 2026-09-15 23:57: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
jxxghp
ebddeee23b feat(subscribe): accumulate music album track progress 2026-09-14 19:35:04 +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
jxxghp
c60949ffff Merge branch 'v3' into feat/plugin-instance-config-logging 2026-09-13 14:30:42 +08:00
jxxghp
8072b7d78f Refactor application architecture and compatibility boundaries 2026-09-13 12:53:00 +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
f70d7c1410 feat(agent): stream non-verbose tool progress 2026-09-13 00:22:58 +08:00
jxxghp
ef51cf6da4 fix(agent): honor verbose mode in WebAgent tool display 2026-09-12 23:09:48 +08:00
jxxghp
be2676a6c8 fix(agent): close subagent update type ratchet 2026-09-12 15:08:48 +08:00
jxxghp
1586152c44 feat(agent): support updating subagent tasks 2026-09-12 14:49:47 +08:00
jxxghp
c59a054351 fix(agent): validate browser redirects after actions 2026-09-12 14:08:14 +08:00
jxxghp
551fe76a54 fix(agent): preserve uncertain browser close state 2026-09-12 13:37:34 +08:00
jxxghp
046a8abcad fix(agent): harden browser session recovery 2026-09-12 13:31:23 +08:00
jxxghp
c57605312a fix(agent): close recovery contract CI regressions 2026-09-12 13:09:37 +08:00
jxxghp
67f0fe3d40 fix(agent): make browser observation outcomes explicit 2026-09-12 12:57:51 +08:00
jxxghp
e9e1aa8e0f fix(agent): clarify browser and subagent states 2026-09-12 12:50:22 +08:00
jxxghp
985618f6de fix(agent): improve shell recovery guidance 2026-09-12 12:43:11 +08:00
jxxghp
ebe654290d fix(agent): harden file range and conflict recovery 2026-09-12 12:40:27 +08:00
jxxghp
9b0fff922f fix(agent): align tool and subagent recovery contracts 2026-09-12 12:35:30 +08:00
jxxghp
7389be5694 fix(agent): normalize legacy tool failures 2026-09-12 12:30:37 +08:00
jxxghp
c3eb884d8f fix(agent): guide missing tool and permission failures 2026-09-12 12:25:57 +08:00
jxxghp
a4c17c9aa6 fix(agent): guide recovery after invocation outcomes 2026-09-12 12:21:58 +08:00
jxxghp
1711882e6d fix(agent): expose structured recovery on tool failures 2026-09-12 12:19:36 +08:00
jxxghp
2d6027e393 fix(agent): verify steering boundary in evaluation 2026-09-12 02:36:59 +08:00
jxxghp
9cc2ab08ad fix(agent): accept image content in view_image 2026-09-11 23:34:58 +08:00
jxxghp
d21bd2981b feat(agent): add image viewing tool 2026-09-11 23:17:36 +08:00
jxxghp
8170eadf62 feat(agent): validate delegated read-only subtasks 2026-09-11 21:58:30 +08:00
jxxghp
8fb15324e1 fix(agent): preserve exact identifiers in final reports 2026-09-11 21:39:02 +08:00
jxxghp
643efea1aa fix(agent): preserve WebAgent event timeline 2026-09-11 16:44:05 +08:00
jxxghp
ed6439bf2e fix(architecture): close mypy ratchet regressions 2026-09-11 15:24:46 +08:00
jxxghp
06ed22c584 feat(agent): improve browser-assisted site cookie login 2026-09-11 14:31:01 +08:00
jxxghp
6fe5bb42c2 fix(agent): preserve queued messages and long context 2026-09-11 14:27:27 +08:00
jxxghp
5d3663b42d fix(agent): raise summary trim budget 2026-09-11 11:56:21 +08:00