Add per-activity-type readiness gate; implement for Steam (#76) #77
No reviewers
Labels
No labels
bug
duplicate
enhancement
future
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
albert/shepherd-launcher!77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "u/albert/76/steam-readiness"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Introduces a generalized per-activity-kind readiness signal that gates
whether a kind's entries can be shown or launched, mirroring the existing
internet-status pattern (host detection -> engine state -> evaluate_entry
-> UI), and implements it for Steam so games stay hidden until the
preloaded client finishes its initial load.
evaluate_entry (covers both list_entries and request_launch)
readiness watcher started from preload_steam, with a 120s fallback so a
missed signal never hides games forever
KindReadinessChanged and re-broadcast state
!enabled entries, so tiles reappear when ready)
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016PHMm1qE3mZUkriB8dsNUW
Fixes #76
Introduces a generalized per-activity-kind readiness signal that gates whether a kind's entries can be shown or launched, mirroring the existing internet-status pattern (host detection -> engine state -> evaluate_entry -> UI), and implements it for Steam so games stay hidden until the preloaded client finishes its initial load. - shepherd-api: ReasonCode::NotReady { kind } - shepherd-host-api: HostEvent::KindReadinessChanged { kind, ready } - shepherd-core: kind_readiness map + set_kind_readiness; gate in evaluate_entry (covers both list_entries and request_launch) - shepherd-host-linux: steam_webhelper_running() /proc detection and a readiness watcher started from preload_steam, with a 120s fallback so a missed signal never hides games forever - shepherdd: seed Steam not-ready before the first snapshot; apply KindReadinessChanged and re-broadcast state - shepherd-launcher-ui: NotReady reason string (grid already hides !enabled entries, so tiles reappear when ready) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016PHMm1qE3mZUkriB8dsNUWTested both with and without active network connection -- Steam activities correctly do not appear until Steam itself has loaded, allowing for near-instant activity launch once they actually appear