- syncUI 不再在幕次未变化时每帧调用 renderCabin,也不再每帧无条件 Detail.reopen; 仅在幕次切换(数据驱动的 idx 变化)时重建 #cabin,同幕内容更新交给既有的 Views.onChange(真实数据变化时才刷新),彻底避免正在点击/输入/聚焦的节点被 60fps 循环整体替换。 - reserveGlobalSlot 排队延迟起点改为基于「倒数第 GLOBAL_CAP 个已排队起点」 递增计算,而不是只锚定队首,修复事件风暴下多簇延迟起点挤在同一时间段、 导致任意1秒窗口新起簇数远超3的问题。 自测(本地 127.0.0.1,真实 Hub 后端 + Playwright/Chromium 真实鼠标事件): - python -m pytest xiaobai-datahub/tests:133/133 通过 - node --check xiaobai-datahub/admin/app.js:通过 - git diff --check:无尾随空白 - 控制舱按钮连续 8 次真实点击:0 次失败(此前 0 次命中) - 数据源“探测一次”连续 6 次点击:产生 6 次真实 POST(此前 0 个) - 盘后发布日期输入 20991231:保持 2 秒以上未被重置,值仍为 20991231 - 10 个并发 pollSources() 事件风暴复测:共 29 簇,任意滚动1秒窗口最大新起簇数 = 3(此前最多 20) Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>