openclaw/apps
liuhao1024 fd4f5b3f59
fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480) (#92778)
* fix(macos): defer isOverflowing mutation to break SwiftUI render loop

measuredHeight() mutated model.isOverflowing synchronously during a SwiftUI
view update cycle. The onChange(of: attributed) handler triggered
updateWindowFrame → targetFrame → measuredHeight, which set isOverflowing,
invalidating the view and re-triggering onChange — an infinite render loop
causing 100% CPU pinwheel.

Fix: defer the isOverflowing mutation via DispatchQueue.main.async with an
equality guard to prevent redundant updates. The frame calculation itself
remains synchronous so the window size is correct immediately.

Fixes #43480

* fix(macos): preserve latest overflow measurement

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-14 08:56:25 +08:00
..
android build(deps): bump the android-deps group in /apps/android with 3 updates (#91365) 2026-06-08 15:34:28 -07:00
ios fix(ios): force stale foreground gateway reconnects (#92552) 2026-06-13 20:33:39 +02:00
macos fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480) (#92778) 2026-06-14 08:56:25 +08:00
macos-mlx-tts fix: harden mac app computer use docs 2026-04-28 01:25:31 +01:00
shared/OpenClawKit fix: capture cron wake origin session 2026-06-10 20:52:40 +01:00
swabble chore(deps): bump github.com/apple/swift-testing (#81757) 2026-06-05 14:05:15 -07:00