7d44808a5ea9635c701e04471a9584ce5c38b1be
Step 4 of game detection. One std-thread worker owns the SteamProbe cache + Debouncer across ticks, polls the OS adapters every 3s off the async runtime, and publishes the stable detected game on a tokio watch channel only when it changes. Manual override + process map are live-updatable via shared handles; a cancellable sleep honors stop promptly; drop stops it. The per-tick decision (match + resolve + debounce) is the pure poll_once, unit-tested with synthetic Steam/process inputs (debounce, process-only match, immediate manual override). +4 tests (397 lib). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>