The #308 PR introduced a side effect:
When session is stale and Spotify reports no active playback, the native idle-session recovery runs during background playback polling. Since native playback is polled roughly every five seconds, with my change from 308 transfer and activate can repeat every 5–7 seconds while Spotatui remains paused or idle.
After leaving Spotatui open for a prolonged period, this repeated work can delay user actions. In one of my sessions, resuming with Space took 5–7 seconds, while selecting another track with Enter took around a minute.
The automatic restoration itself is useful: it restores the previous native session without requiring the user to open the device selector and manually select Spotatui.
@LargeModGames, how would we prefer to proceed?
- Completely disable automatic idle-session restoration. Polling would remain passive, and users would need to select Spotatui manually when the session becomes stale.
- Keep automatic restoration, but limit it to two attempts per stale-session episode. After that, polling becomes passive until healthy playback or a new native player session rearms recovery.
I have implemented and tested option 2 locally. Startup device and playback restoration still works, while the recurring transfer/activate loop is removed.
The #308 PR introduced a side effect:
When session is stale and Spotify reports no active playback, the native idle-session recovery runs during background playback polling. Since native playback is polled roughly every five seconds, with my change from 308
transferandactivatecan repeat every 5–7 seconds while Spotatui remains paused or idle.After leaving Spotatui open for a prolonged period, this repeated work can delay user actions. In one of my sessions, resuming with Space took 5–7 seconds, while selecting another track with Enter took around a minute.
The automatic restoration itself is useful: it restores the previous native session without requiring the user to open the device selector and manually select Spotatui.
@LargeModGames, how would we prefer to proceed?
I have implemented and tested option 2 locally. Startup device and playback restoration still works, while the recurring transfer/activate loop is removed.