-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: macOS app performs avoidable idle polling and animation wakeups #100451
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maintainerMaintainer-authored PRMaintainer-authored PRmaturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maintainerMaintainer-authored PRMaintainer-authored PRmaturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Type
Fields
Priority
None yet
Bug type
Performance bug (persistent background work without user activity)
Beta release blocker
No
Summary
The signed macOS app performs two avoidable idle loops: Mac node mode rereads gateway config and rechecks every TCC permission once per second, while the menu-bar critter wakes every 350 ms to check animation deadlines.
Steps to reproduce
Expected behavior
After the Mac node connects, its transport should own reconnects and node registration should refresh only when endpoint, config, preference, or permission inputs can change. Between visible status-icon animations, the critter should sleep until its next animation deadline or state change.
Actual behavior
Time Profiler repeatedly captures
MacNodeModeCoordinator.run()rereading the config and queryingPermissionManager.status(). The permission path executes an AppleScript authorization probe against Terminal on every pass. Separately, the status-icon task resumes every 350 ms and entersCritterStatusLabel.tick(_:)even when no work is active.OpenClaw version
2026.6.11 (2606001190)
Operating system
macOS 26.5.2 (25F84), Apple Silicon
Install method
Signed macOS app
Model
N/A (reproduces with no model request)
Provider / routing chain
N/A (macOS app idle paths)
Additional provider/model setup details
No active model request, agent run, or tool call during either capture.
Logs
Screenshots, recordings, and evidence
The sampled process path was
/Applications/OpenClaw.app/Contents/MacOS/OpenClaw. The app was launched with--attach-only; no OpenClaw window or menu was open during the captures.Impact and severity
Additional information
The node session already owns reconnects for its active endpoint, and the endpoint store publishes dynamic endpoint changes. The critter uses Swift concurrency rather than Combine's
TimerPublisherto avoid a macOS 26.2 crash; a deadline-driven task can preserve that crash avoidance and the existing animations.