吉鑫升andClaude Opus 4.8 6aff165d09 fix(db): 路由跨 loop 的 DB 访问回引擎主 loop,消除 asyncmy "attached to a different loop"
会商/定时任务/沙箱工具等在 worker 线程的临时 loop 上用 asyncio.run 跑全局引擎连接池的
DB 操作,连接被绑定到随即关闭的临时 loop;池子回收/释放该连接时 asyncmy
_terminate_graceful_close 在错误的 loop 上触发 future,持续刷
"got Future attached to a different loop"。

- engine.py: 新增 run_db_blocking(fire_and_forget_db_write 的带返回值版本)。离开主 loop
  时用 run_coroutine_threadsafe 把协程送回主 loop 执行、阻塞调用线程拿结果;仅在无主 loop
  或正同步处于主 loop 内(送回会死锁)时退回临时 loop。
- thread_paths / prompt / skill_tools: 三处同步→异步阻塞读桥(任务owner解析/常驻技能/
  技能可见性)改走 run_db_blocking,删除各自重复的 _run_coro_blocking。
- llm/tool metrics 中间件: fire-and-forget 写改走 fire_and_forget_db_write。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 15:57:04 +08:00
2026-06-12 18:09:07 +08:00
2026-06-08 22:52:18 +08:00
2026-06-01 14:16:13 +08:00
2026-05-31 16:48:43 +08:00
2026-05-22 20:40:36 +08:00
2026-05-28 17:14:01 +08:00
2026-06-11 17:11:28 +08:00
2026-06-05 20:06:55 +08:00
2026-06-12 18:09:07 +08:00
2026-06-03 09:54:11 +08:00
2026-05-28 17:14:01 +08:00
2026-05-28 17:14:01 +08:00
2026-05-22 20:40:36 +08:00
S
Description
deerflow-code
238 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 39.2%
TypeScript 35.9%
HTML 22.2%
CSS 1.5%
JavaScript 0.9%
Other 0.2%