Refine 'Ghost Steam' strategy utility functions#14
Conversation
…nner - Create src/utils.rs with download_windows_steam_client and get_proton_runner. - Implement robust Proton version extraction and discovery. - Expose utils module in src/lib.rs. - Add unit tests for version extraction. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
- Added src/launch.rs with install_ghost_steam_in_prefix function. - Enabled 'process' feature for tokio in Cargo.toml. - Exposed launch module in src/lib.rs. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Update spawn_game_process to handle Ghost Steam lifecycle (interactive first run, silent standard run). - Add 5-second wait for Steam Pipe initialization. - Inject 'Steam Runtime (Windows)' virtual app (ID 0) into library. - Implement prefix selection modal for ID 0 management. - Update UI to use async game process spawning. - Set SteamAppId environment variable. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Added CredentialManager in src/utils.rs (harvest_credentials, inject_credentials). - Integrated credential syncing into game launch flow and prefix management. - Enabled silent login for Ghost Steam when credentials are cached. - Automated credential harvesting after game exit and management sessions. - Added secrets directory to configuration management. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Added absolute_path helper in src/config.rs. - Updated src/launch.rs and src/steam_client.rs to ensure all paths (WINEPREFIX, STEAM_COMPAT_DATA_PATH, etc.) are absolute. - Fixed command construction for Ghost Steam and game launching. - Improved Proton runner discovery in src/utils.rs to use absolute paths. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Improved absolute_path in src/config.rs to strip '.' components using path components. - Added unit tests for path normalization. - Ensured all Proton/Wine environment variables and arguments use clean absolute paths. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
…ugging - Added use_steam_runtime field to UserAppConfig in models.rs. - Updated Game Properties UI in ui.rs with a toggle for Steam Runtime. - Updated spawn_game_process in steam_client.rs to honor the toggle. - Temporarily disabled silent install flag and added debug logging in launch.rs to troubleshoot installation issues. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Updated install_ghost_steam_in_prefix to manually delete Proton's built-in Steam stubs (steam.exe, lsteamclient.dll, etc.). - Implemented manual extraction of real Steam client from SteamSetup.exe using the zip crate. - Added WINEDLLOVERRIDES environment variable to all Proton/Wine commands to ensure native Steam libraries are loaded. - Cleaned up unused imports and variables in launch.rs. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
…verrides - Reverted install_ghost_steam_in_prefix to execute SteamSetup.exe via Proton. - Implemented sanitize_prefix to delete Proton's built-in Steam stubs before installation. - Expanded WINEDLLOVERRIDES to include steamclient=n across all Proton/Wine commands. - Ensured absolute paths are used for installer execution and environment variables. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Updated install_ghost_steam_in_prefix to use the actual wine binary inside the Proton directory. - Cleared Proton-specific environment variables (SteamAppId, etc.) during installation to ensure a "Vanilla" prefix. - Retained stub sanitization and WINEDLLOVERRIDES for native library prioritization. - Ensured absolute paths are used for prefix and installer. Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
This change implements the "Ghost Steam" refinement by providing utility functions to cache the Windows Steam installer globally and discover the highest version of Proton on the system.
Key changes:
download_windows_steam_client: Downloads SteamSetup.exe to./config/SteamFlow/runtimes/if missing or empty.get_proton_runner: Searches standard Steam paths and custom folders for Proton, selecting the highest version found.PR created automatically by Jules for task 8887294531132727845 started by @weter11