feat(installed): running-game detection + Stop, and a patient launch#143
Merged
Conversation
Two Installed Apps improvements requested from real use: 1. Detect a running game + stop it. A new poll (reusing the existing rich process list — title_id/app_id/kind, same data the Processes screen uses) marks the running title with a "Playing" badge and turns its Play button into "Close game" (confirmed; appKill by app id, processKill(pid) fallback). Read-only detection — it never touches a running/starting game; stopping is always explicit. 2. Patient launch. Pressing Play now holds a "Starting…" state and watches (read-only) for the title to actually appear before declaring it playing — first/cold launches can be slow. Play is disabled during this window so a second click can't fire a launch into a still-starting game (which is how it gets knocked back down). A slow start shows a calm "give it a moment" note, never an error, and never a kill. Degrades gracefully: if the process list can't report a title (older payload/FW), cards just show Play as before — nothing breaks. Client-only; processList/appKill/processKill already existed. +4 helper tests; 743 green; new strings added to en.ts + allowlist. HW: launch verified on a real PS5 (Phat, FW 5.10) — eboot.bin came up after appLaunch ok. Release 3.3.22.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two Installed Apps improvements from real-world use.
1. Detect a running game + Stop it
A poll (3s, only while the screen is open) reuses the existing rich process list (
process_list_get— title_id/app_id/kind, the same data the Processes screen shows) to find running games. The running title gets a "Playing" badge and its Play button becomes "Close game" (confirmed;appKillby app id,processKill(pid)fallback). Detection is read-only — it never touches a running or starting game; stopping is always explicit + confirmed.2. Patient launch
Pressing Play holds a "Starting…" state and watches (read-only) for the title to actually appear in the process list before declaring it playing — first/cold launches can be slow. Play is disabled during this window so a second click can't fire a launch into a still-starting game (which is how it gets knocked back down). A slow start shows a calm "give it a moment" note — never an error, never a kill.
Safety / degradation
If the process list can't report a title (older payload/FW), the map is just empty → cards show plain "Play" as before. Nothing breaks, nothing is ever auto-stopped.
Scope / tests
processList/appKill/processKillalready existed as commands.fetchRunningGameshelper (dedupes a title's many processes, prefers a real app id, excludes self/payload/system) + 4 unit tests. 743 client tests green, typecheck/lint clean, i18n gate green (new strings in en.ts + allowlist).eboot.bincame up afterappLaunch. (The rich title_id detection path is Tauri-direct, so it's exercised by the shipped Processes screen rather than a standalone curl.)Release 3.3.22.