Files
xiaobai-review/xiaobai-datahub/admin
ab98f63692 fix(HEL-540): 星港中枢返工——去除每帧DOM重建、修复事件风暴节流
- 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>
2026-09-13 12:50:11 +08:00
..