Summary
Idle-source adapters perform reactive state updates and notifyChanged() calls for every configured activity event, including high-frequency mousemove and scroll events.
Equivalent behavior exists across React, Vue, Svelte, Solid, and Angular. With subscribers or the inspector enabled, normal pointer movement can cause dozens or hundreds of source resolutions/serializations per second.
Proposed fix
- Update a mutable last-activity timestamp cheaply for raw activity events.
- Emit/reactively render only on meaningful
active → idle and idle → active transitions, or on a bounded cadence.
- Replace the permanent five-second interval with a timeout scheduled for the idle deadline.
- Optionally expose elapsed-time updates at no more than 1 Hz.
Acceptance criteria
Summary
Idle-source adapters perform reactive state updates and
notifyChanged()calls for every configured activity event, including high-frequencymousemoveandscrollevents.Equivalent behavior exists across React, Vue, Svelte, Solid, and Angular. With subscribers or the inspector enabled, normal pointer movement can cause dozens or hundreds of source resolutions/serializations per second.
Proposed fix
active → idleandidle → activetransitions, or on a bounded cadence.Acceptance criteria