Commit Graph
15 Commits
Author SHA1 Message Date
jxxghp 46c5eec54e refactor: enforce managed event dispatch 2026-08-24 06:29:56 +08:00
jxxghp 7f09927c47 refactor: own shutdown lifecycle boundaries 2026-08-23 20:20:26 +08:00
InfinityPacer e1d7918297 fix(runtime): 收口调度与事件异步任务生命周期 (#6415) 2026-08-23 17:17:59 +08:00
jxxghp 7bc5e01afd refactor: expand async and type safety gates 2026-08-22 13:21:52 +08:00
jxxghp 677f6a66c2 refactor: complete host module and event contracts 2026-08-22 13:21:52 +08:00
jxxghp 820f7e8850 refactor: make download and transfer events durable 2026-08-22 08:03:00 +08:00
jxxghp c5de1c7b1b refactor: make subscription lifecycle events durable 2026-08-22 07:43:41 +08:00
jxxghp bb0964622b fix: preserve legacy event and db dto contracts 2026-08-21 22:33:21 +08:00
jxxghp 43cccb8ff8 feat: add low-cardinality observation port 2026-08-21 22:15:47 +08:00
jxxghp 47f1ff9cb4 feat: propagate request correlation context 2026-08-21 22:08:33 +08:00
jxxghp c0b31bddb6 refactor: register event delivery contracts 2026-08-21 21:29:52 +08:00
jxxghp 27ae1b5290 fix: 插件重载窗口期装饰器包装类方法误判直调导致 missing event TypeError
事件绑定解析在 owner_class 为 None 时仅靠限定名区分自由函数与类方法声明,
装饰器包装的方法限定名含 <locals> 被误判为自由函数 unbound 直调,把 event
吞进 self 触发 TypeError。局部作用域限定名无法区分包装方法与局部自由函数,
按调用约定兜底:签名首参为 self/cls 才视为类方法声明跳过执行。
2026-08-20 08:51:37 +08:00
jxxghp 282b922f1b fix: 修复批量插件重载窗口期残留 handler 直调导致 missing event TypeError
插件重载 stop 阶段清除 sys.modules 缓存后,若广播事件命中注册表中残留的旧类方法声明,
EventBindingResolver.owner_class 因 inspect.getmodule 返回 None 而解析失败,原实现会
直接返回原始函数并绕过实例绑定,旧签名无 event 参数时抛出 TypeError 并刷屏通知。

- binding.py:owner_class 解析失败时区分类方法声明与自由函数;类方法声明记入
  unresolved 诊断并跳过执行,等待重载完成后新 handler 按标识覆盖自愈;
  自由函数保持直调路径不变。
- 收敛 binding-miss 与新路径的未命中记账逻辑到 _record_unresolved,首次未命中才告警。
- 新增回归测试:模块卸载后残留类方法被跳过、自由函数直调不受影响。

Closes #6351
2026-08-18 21:40:13 +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