feat(server): update provider CLIs in the background when nothing is running

Adds an update window that stays closed while threads run or wait for input,
for 15 minutes after any client interaction, and while a scheduled task or
usage-limit resume is due within 10 minutes. A new Update automatically
setting (on by default) installs provider CLI updates inside that window.

The provider maintenance runner is now one server-lifetime instance, so RPC
and background updates share the per-installer lock. It was previously built
per WebSocket connection, so two clients' updates never queued.
25b6b08e4bmaria-rcks committed on 10/9/2026, 6:50:22 PMparent9d6b5ea
15 files changedLine totals unavailable