From 430d085287591592316dea379fbcf984cf69afae Mon Sep 17 00:00:00 2001 From: Omni Date: Thu, 16 Oct 2025 14:44:49 +0100 Subject: [PATCH] Sync from development - prepare for v0.1.6 --- CHANGELOG.md | 29 +- jackify/__init__.py | 2 +- jackify/backend/core/modlist_operations.py | 2 +- jackify/backend/handlers/config_handler.py | 36 +- jackify/backend/handlers/modlist_handler.py | 93 ++-- .../backend/handlers/modlist_install_cli.py | 2 +- jackify/backend/handlers/shortcut_handler.py | 4 +- .../backend/handlers/winetricks_handler.py | 168 ++++++- .../services/automated_prefix_service.py | 124 ++++- jackify/backend/services/modlist_service.py | 4 + .../backend/services/native_steam_service.py | 14 +- .../protontricks_detection_service.py | 2 +- jackify/engine/Wabbajack.CLI.Builder.dll | Bin 13824 -> 13824 bytes jackify/engine/Wabbajack.Common.dll | Bin 202752 -> 202752 bytes jackify/engine/Wabbajack.Compiler.dll | Bin 160256 -> 160256 bytes jackify/engine/Wabbajack.Compression.BSA.dll | Bin 94720 -> 94720 bytes jackify/engine/Wabbajack.Compression.Zip.dll | Bin 18944 -> 18944 bytes jackify/engine/Wabbajack.Configuration.dll | Bin 4608 -> 4608 bytes jackify/engine/Wabbajack.DTOs.dll | Bin 142336 -> 142336 bytes .../engine/Wabbajack.Downloaders.Bethesda.dll | Bin 18432 -> 18432 bytes .../Wabbajack.Downloaders.Dispatcher.dll | Bin 27136 -> 27136 bytes .../engine/Wabbajack.Downloaders.GameFile.dll | Bin 16384 -> 16384 bytes .../Wabbajack.Downloaders.GoogleDrive.dll | Bin 17920 -> 17920 bytes jackify/engine/Wabbajack.Downloaders.Http.dll | Bin 15872 -> 15872 bytes ...ajack.Downloaders.IPS4OAuth2Downloader.dll | Bin 35328 -> 35328 bytes .../Wabbajack.Downloaders.Interfaces.dll | Bin 7168 -> 7168 bytes .../engine/Wabbajack.Downloaders.Manual.dll | Bin 9216 -> 9216 bytes .../Wabbajack.Downloaders.MediaFire.dll | Bin 15872 -> 15872 bytes jackify/engine/Wabbajack.Downloaders.Mega.dll | Bin 16384 -> 16384 bytes .../engine/Wabbajack.Downloaders.ModDB.dll | Bin 19456 -> 19456 bytes .../engine/Wabbajack.Downloaders.Nexus.dll | Bin 21504 -> 21504 bytes ...abbajack.Downloaders.VerificationCache.dll | Bin 13824 -> 13824 bytes .../Wabbajack.Downloaders.WabbajackCDN.dll | Bin 24576 -> 24576 bytes jackify/engine/Wabbajack.FileExtractor.dll | Bin 75264 -> 75264 bytes jackify/engine/Wabbajack.Hashing.PHash.dll | Bin 43520 -> 44544 bytes jackify/engine/Wabbajack.Hashing.xxHash64.dll | Bin 21504 -> 21504 bytes jackify/engine/Wabbajack.IO.Async.dll | Bin 15360 -> 15360 bytes jackify/engine/Wabbajack.Installer.dll | Bin 121344 -> 122368 bytes .../Wabbajack.Networking.BethesdaNet.dll | Bin 39936 -> 39936 bytes .../engine/Wabbajack.Networking.Discord.dll | Bin 14336 -> 14336 bytes .../engine/Wabbajack.Networking.GitHub.dll | Bin 21504 -> 21504 bytes .../Wabbajack.Networking.Http.Interfaces.dll | Bin 5632 -> 5632 bytes jackify/engine/Wabbajack.Networking.Http.dll | Bin 28672 -> 28672 bytes .../engine/Wabbajack.Networking.NexusApi.dll | Bin 62976 -> 62976 bytes ...abbajack.Networking.WabbajackClientApi.dll | Bin 77824 -> 77824 bytes jackify/engine/Wabbajack.Paths.IO.dll | Bin 33280 -> 33280 bytes jackify/engine/Wabbajack.Paths.dll | Bin 17408 -> 17408 bytes jackify/engine/Wabbajack.RateLimiter.dll | Bin 24064 -> 24064 bytes jackify/engine/Wabbajack.Server.Lib.dll | Bin 6656 -> 6656 bytes .../Wabbajack.Services.OSIntegrated.dll | Bin 54784 -> 54784 bytes jackify/engine/Wabbajack.VFS.Interfaces.dll | Bin 5120 -> 5120 bytes jackify/engine/Wabbajack.VFS.dll | Bin 64512 -> 64512 bytes jackify/engine/jackify-engine.deps.json | 450 +++++++++--------- jackify/engine/jackify-engine.dll | Bin 187904 -> 186880 bytes .../frontends/gui/dialogs/update_dialog.py | 26 +- jackify/frontends/gui/main.py | 414 ++++++++++------ .../gui/screens/configure_existing_modlist.py | 1 + .../gui/screens/configure_new_modlist.py | 2 +- .../frontends/gui/screens/install_modlist.py | 18 +- 59 files changed, 939 insertions(+), 452 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a15c01..3817d97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Jackify Changelog +## v0.1.6 - Advanced Proton Management & Lorerim Support +**Release Date:** October 16, 2025 + +### Major New Features +- **Dual Proton Configuration**: Separate Install Proton and Game Proton version selection in Settings + - **Install Proton**: Optimized for modlist installation and texture processing (Experimental/GE-Proton 10+ recommended for performance) + - **Game Proton**: For game shortcuts (supports any Proton 9+ version) + - Independent configuration allows users to optimize for both installation speed and game compatibility + +- **Lorerim Proton Override**: Automatic Proton 9 selection for Lorerim modlist installations + - Priority system: GE-Proton9-27 → Other GE-Proton 9 versions → Valve Proton 9 → user settings fallback + - User notification when override is applied + - Case-insensitive detection for Lorerim modlists + +- **Configurable Component Installation Method**: User-selectable toggle in Settings + - **Optimized Mode** (default): Protontricks for dotnet40 (reliable), winetricks for other components (fast) + - **Legacy Mode**: Protontricks for all components (slower but maximum compatibility) + +### Engine & Technical Improvements +- **jackify-engine v0.3.17**: Latest engine version with performance improvements +- **Windows 10 Prefix Timing**: Improved timing to match legacy script behavior +- **Self-Updater Enhancement**: Fixed auto-restart checkbox functionality +- **ProtontricksHandler**: Updated constructor calls across codebase for consistency + +--- + ## v0.1.5.3 - Critical Bug Fixes **Release Date:** October 2, 2025 @@ -67,7 +93,8 @@ - **ModOrganizer.ini Path Format**: Fixed missing backslash in gamePath format for proper Windows path structure - **SD Card Binary Paths**: Corrected binary paths to use D: drive mapping instead of raw Linux paths for SD card installs - **Proton Fallback Logic**: Enhanced fallback when user-selected Proton version is missing or invalid -- **Settings Persistence**: Improved configuration saving with verification and logging + +#Y- **Settings Persistence**: Improved configuration saving with verification and logging - **System Wine Elimination**: Comprehensive audit ensures Jackify never uses system wine installations - **Winetricks Reliability**: Fixed vcrun2022 installation failures and wine app crashes - **Enderal Registry Injection**: Switched from launch options to registry injection approach diff --git a/jackify/__init__.py b/jackify/__init__.py index ea8d3fb..ab8b42a 100644 --- a/jackify/__init__.py +++ b/jackify/__init__.py @@ -5,4 +5,4 @@ This package provides both CLI and GUI interfaces for managing Wabbajack modlists natively on Linux systems. """ -__version__ = "0.1.5.3" +__version__ = "0.1.6" diff --git a/jackify/backend/core/modlist_operations.py b/jackify/backend/core/modlist_operations.py index 239ed44..6d8b13f 100644 --- a/jackify/backend/core/modlist_operations.py +++ b/jackify/backend/core/modlist_operations.py @@ -156,7 +156,7 @@ class ModlistInstallCLI: from ..models.configuration import SystemInfo self.system_info = SystemInfo(is_steamdeck=steamdeck) - self.protontricks_handler = ProtontricksHandler(steamdeck=self.steamdeck) + self.protontricks_handler = ProtontricksHandler(self.steamdeck) self.shortcut_handler = ShortcutHandler(steamdeck=self.steamdeck) self.context = {} # Use standard logging (no file handler) diff --git a/jackify/backend/handlers/config_handler.py b/jackify/backend/handlers/config_handler.py index 75907af..eeb0b0f 100644 --- a/jackify/backend/handlers/config_handler.py +++ b/jackify/backend/handlers/config_handler.py @@ -38,7 +38,9 @@ class ConfigHandler: "default_download_parent_dir": None, # Parent directory for downloads "modlist_install_base_dir": os.path.expanduser("~/Games"), # Configurable base directory for modlist installations "modlist_downloads_base_dir": os.path.expanduser("~/Games/Modlist_Downloads"), # Configurable base directory for downloads - "jackify_data_dir": None # Configurable Jackify data directory (default: ~/Jackify) + "jackify_data_dir": None, # Configurable Jackify data directory (default: ~/Jackify) + "use_winetricks_for_components": True, # True = use winetricks (faster), False = use protontricks for all (legacy) + "game_proton_path": None # Proton version for game shortcuts (can be any Proton 9+), separate from install proton } # Load configuration if exists @@ -498,20 +500,44 @@ class ConfigHandler: def get_proton_path(self): """ - Retrieve the saved Proton path from configuration + Retrieve the saved Install Proton path from configuration (for jackify-engine) Always reads fresh from disk to pick up changes from Settings dialog Returns: - str: Saved Proton path or 'auto' if not saved + str: Saved Install Proton path or 'auto' if not saved """ try: # Reload config from disk to pick up changes from Settings dialog self._load_config() proton_path = self.settings.get("proton_path", "auto") - logger.debug(f"Retrieved fresh proton_path from config: {proton_path}") + logger.debug(f"Retrieved fresh install proton_path from config: {proton_path}") return proton_path except Exception as e: - logger.error(f"Error retrieving proton_path: {e}") + logger.error(f"Error retrieving install proton_path: {e}") + return "auto" + + def get_game_proton_path(self): + """ + Retrieve the saved Game Proton path from configuration (for game shortcuts) + Falls back to install Proton path if game Proton not set + Always reads fresh from disk to pick up changes from Settings dialog + + Returns: + str: Saved Game Proton path, Install Proton path, or 'auto' if not saved + """ + try: + # Reload config from disk to pick up changes from Settings dialog + self._load_config() + game_proton_path = self.settings.get("game_proton_path") + + # If game proton not set or set to same_as_install, use install proton + if not game_proton_path or game_proton_path == "same_as_install": + game_proton_path = self.settings.get("proton_path", "auto") + + logger.debug(f"Retrieved fresh game proton_path from config: {game_proton_path}") + return game_proton_path + except Exception as e: + logger.error(f"Error retrieving game proton_path: {e}") return "auto" def get_proton_version(self): diff --git a/jackify/backend/handlers/modlist_handler.py b/jackify/backend/handlers/modlist_handler.py index 63f316b..8f7930b 100644 --- a/jackify/backend/handlers/modlist_handler.py +++ b/jackify/backend/handlers/modlist_handler.py @@ -79,6 +79,7 @@ class ModlistHandler: "livingskyrim": ["dotnet40"], "lsiv": ["dotnet40"], "ls4": ["dotnet40"], + "lorerim": ["dotnet40"], "lostlegacy": ["dotnet48"], } @@ -158,7 +159,7 @@ class ModlistHandler: self.stock_game_path = None # Initialize Handlers (should happen regardless of how paths were provided) - self.protontricks_handler = ProtontricksHandler(steamdeck=self.steamdeck, logger=self.logger) + self.protontricks_handler = ProtontricksHandler(self.steamdeck, logger=self.logger) # Initialize winetricks handler for wine component installation from .winetricks_handler import WinetricksHandler self.winetricks_handler = WinetricksHandler(logger=self.logger) @@ -347,7 +348,8 @@ class ModlistHandler: # Store engine_installed flag for conditional path manipulation self.engine_installed = modlist_info.get('engine_installed', False) self.logger.debug(f" Engine Installed: {self.engine_installed}") - + + # Call internal detection methods to populate more state if not self._detect_game_variables(): self.logger.warning("Failed to auto-detect game type after setting context.") @@ -687,39 +689,27 @@ class ModlistHandler: # All modlists now use their own AppID for wine components target_appid = self.appid - # Use winetricks for wine component installation (faster than protontricks) + # Use user's preferred component installation method (respects settings toggle) wineprefix = self.protontricks_handler.get_wine_prefix_path(target_appid) if not wineprefix: - self.logger.error("Failed to get WINEPREFIX path for winetricks.") + self.logger.error("Failed to get WINEPREFIX path for component installation.") print("Error: Could not determine wine prefix location.") return False - # Try winetricks first (preferred method with current fix) - winetricks_success = False + # Use the winetricks handler which respects the user's toggle setting try: - self.logger.info("Attempting Wine component installation using winetricks...") - winetricks_success = self.winetricks_handler.install_wine_components(wineprefix, self.game_var_full, specific_components=components) - if winetricks_success: - self.logger.info("Winetricks installation completed successfully") - except Exception as e: - self.logger.warning(f"Winetricks installation failed with exception: {e}") - winetricks_success = False - - # Fallback to protontricks if winetricks failed - if not winetricks_success: - self.logger.warning("Winetricks failed, falling back to protontricks for Wine component installation...") - try: - protontricks_success = self.protontricks_handler.install_wine_components(target_appid, self.game_var_full, specific_components=components) - if protontricks_success: - self.logger.info("Protontricks fallback installation completed successfully") - else: - self.logger.error("Both winetricks and protontricks failed to install Wine components.") - print("Error: Failed to install necessary Wine components using both winetricks and protontricks.") - return False - except Exception as e: - self.logger.error(f"Protontricks fallback also failed with exception: {e}") - print("Error: Failed to install necessary Wine components using both winetricks and protontricks.") + self.logger.info("Installing Wine components using user's preferred method...") + success = self.winetricks_handler.install_wine_components(wineprefix, self.game_var_full, specific_components=components) + if success: + self.logger.info("Wine component installation completed successfully") + else: + self.logger.error("Wine component installation failed") + print("Error: Failed to install necessary Wine components.") return False + except Exception as e: + self.logger.error(f"Wine component installation failed with exception: {e}") + print("Error: Failed to install necessary Wine components.") + return False self.logger.info("Step 4: Installing Wine components... Done") # Step 5: Ensure permissions of Modlist directory @@ -824,10 +814,10 @@ class ModlistHandler: vanilla_game_dir = None if self.steam_library and self.game_var_full: vanilla_game_dir = str(Path(self.steam_library) / "steamapps" / "common" / self.game_var_full) - - if not self.resolution_handler.update_ini_resolution( - modlist_dir=self.modlist_dir, - game_var=self.game_var_full, + + if not ResolutionHandler.update_ini_resolution( + modlist_dir=self.modlist_dir, + game_var=self.game_var_full, set_res=self.selected_resolution, vanilla_game_dir=vanilla_game_dir ): @@ -930,6 +920,10 @@ class ModlistHandler: # status_callback("Configuration completed successfully!") self.logger.info("Configuration steps completed successfully.") + + # Step 14: Re-enforce Windows 10 mode after modlist-specific configurations (matches legacy script line 1333) + self._re_enforce_windows_10_mode() + return True # Return True on success def _detect_steam_library_info(self) -> bool: @@ -1332,4 +1326,39 @@ class ModlistHandler: self.logger.debug("No special game type detected - standard workflow will be used") return None + def _re_enforce_windows_10_mode(self): + """ + Re-enforce Windows 10 mode after modlist-specific configurations. + This matches the legacy script behavior (line 1333) where Windows 10 mode + is re-applied after modlist-specific steps to ensure consistency. + """ + try: + if not hasattr(self, 'appid') or not self.appid: + self.logger.warning("Cannot re-enforce Windows 10 mode - no AppID available") + return + + from ..handlers.winetricks_handler import WinetricksHandler + from ..handlers.path_handler import PathHandler + + # Get prefix path for the AppID + prefix_path = PathHandler.find_compat_data(str(self.appid)) + if not prefix_path: + self.logger.warning("Cannot re-enforce Windows 10 mode - prefix path not found") + return + + # Get wine binary path + wine_binary = PathHandler.get_wine_binary_for_appid(str(self.appid)) + if not wine_binary: + self.logger.warning("Cannot re-enforce Windows 10 mode - wine binary not found") + return + + # Use winetricks handler to set Windows 10 mode + winetricks_handler = WinetricksHandler() + winetricks_handler._set_windows_10_mode(str(prefix_path), wine_binary) + + self.logger.info("✓ Windows 10 mode re-enforced after modlist-specific configurations") + + except Exception as e: + self.logger.warning(f"Error re-enforcing Windows 10 mode: {e}") + # (Ensure EOF is clean and no extra incorrect methods exist below) \ No newline at end of file diff --git a/jackify/backend/handlers/modlist_install_cli.py b/jackify/backend/handlers/modlist_install_cli.py index cd1dc99..8d56f19 100644 --- a/jackify/backend/handlers/modlist_install_cli.py +++ b/jackify/backend/handlers/modlist_install_cli.py @@ -68,7 +68,7 @@ class ModlistInstallCLI: def __init__(self, menu_handler: MenuHandler, steamdeck: bool = False): self.menu_handler = menu_handler self.steamdeck = steamdeck - self.protontricks_handler = ProtontricksHandler(steamdeck=steamdeck) + self.protontricks_handler = ProtontricksHandler(steamdeck) self.shortcut_handler = ShortcutHandler(steamdeck=steamdeck) self.context = {} # Use standard logging (no file handler) diff --git a/jackify/backend/handlers/shortcut_handler.py b/jackify/backend/handlers/shortcut_handler.py index c444223..370e2c8 100644 --- a/jackify/backend/handlers/shortcut_handler.py +++ b/jackify/backend/handlers/shortcut_handler.py @@ -41,7 +41,7 @@ class ShortcutHandler: self._last_shortcuts_backup = None # Track the last backup path self._safe_shortcuts_backup = None # Track backup made just before restart # Initialize ProtontricksHandler here, passing steamdeck status - self.protontricks_handler = ProtontricksHandler(steamdeck=self.steamdeck) + self.protontricks_handler = ProtontricksHandler(self.steamdeck) def _enable_tab_completion(self): """Enable tab completion for file paths using the shared completer""" @@ -964,7 +964,7 @@ class ShortcutHandler: self.logger.info(f"Attempting to find current AppID for shortcut: '{shortcut_name}' (exe_path: '{exe_path}')") try: from .protontricks_handler import ProtontricksHandler # Local import - pt_handler = ProtontricksHandler(steamdeck=self.steamdeck) + pt_handler = ProtontricksHandler(self.steamdeck) if not pt_handler.detect_protontricks(): self.logger.error("Protontricks not detected") return None diff --git a/jackify/backend/handlers/winetricks_handler.py b/jackify/backend/handlers/winetricks_handler.py index 8000e13..c1bff7a 100644 --- a/jackify/backend/handlers/winetricks_handler.py +++ b/jackify/backend/handlers/winetricks_handler.py @@ -257,10 +257,18 @@ class WinetricksHandler: components_to_install = self._reorder_components_for_installation(all_components) self.logger.info(f"WINEPREFIX: {wineprefix}, Game: {game_var}, Ordered Components: {components_to_install}") - # Hybrid approach: Use protontricks for dotnet40 only, winetricks for everything else - if "dotnet40" in components_to_install: - self.logger.info("dotnet40 detected - using hybrid approach: protontricks for dotnet40, winetricks for others") + # Check user preference for component installation method + from ..handlers.config_handler import ConfigHandler + config_handler = ConfigHandler() + use_winetricks = config_handler.get('use_winetricks_for_components', True) + + # Choose installation method based on user preference and components + if use_winetricks and "dotnet40" in components_to_install: + self.logger.info("Using optimized approach: protontricks for dotnet40 (reliable), winetricks for other components (fast)") return self._install_components_hybrid_approach(components_to_install, wineprefix, game_var) + elif not use_winetricks: + self.logger.info("Using legacy approach: protontricks for all components") + return self._install_components_protontricks_only(components_to_install, wineprefix, game_var) # For non-dotnet40 installations, install all components together (faster) max_attempts = 3 @@ -289,6 +297,8 @@ class WinetricksHandler: self.logger.debug(f"Winetricks output: {result.stdout}") if result.returncode == 0: self.logger.info("Wine Component installation command completed successfully.") + # Set Windows 10 mode after component installation (matches legacy script timing) + self._set_windows_10_mode(wineprefix, env.get('WINE', '')) return True else: # Special handling for dotnet40 verification issue (mimics protontricks behavior) @@ -415,14 +425,8 @@ class WinetricksHandler: self.logger.error("Failed to prepare prefix for dotnet40") return False else: - # For non-dotnet40 components, ensure we're in Windows 10 mode + # For non-dotnet40 components, install in standard mode (Windows 10 will be set after all components) self.logger.debug(f"Installing {component} in standard mode") - try: - subprocess.run([ - self.winetricks_path, '-q', 'win10' - ], env=env, capture_output=True, text=True, timeout=300) - except Exception as e: - self.logger.warning(f"Could not set win10 mode for {component}: {e}") # Install this component max_attempts = 3 @@ -480,6 +484,8 @@ class WinetricksHandler: return False self.logger.info("✓ All components installed successfully using separate sessions") + # Set Windows 10 mode after all component installation (matches legacy script timing) + self._set_windows_10_mode(wineprefix, env.get('WINE', '')) return True def _install_components_hybrid_approach(self, components: list, wineprefix: str, game_var: str) -> bool: @@ -524,6 +530,9 @@ class WinetricksHandler: return self._install_components_with_winetricks(other_components, wineprefix, env) self.logger.info("✓ Hybrid component installation completed successfully") + # Set Windows 10 mode after all component installation (matches legacy script timing) + wine_binary = self._get_wine_binary_for_prefix(wineprefix) + self._set_windows_10_mode(wineprefix, wine_binary) return True def _install_dotnet40_with_protontricks(self, wineprefix: str, game_var: str) -> bool: @@ -562,7 +571,7 @@ class WinetricksHandler: # Determine if we're on Steam Deck (for protontricks handler) steamdeck = os.path.exists('/home/deck') - protontricks_handler = ProtontricksHandler(steamdeck=steamdeck, logger=self.logger) + protontricks_handler = ProtontricksHandler(steamdeck, logger=self.logger) # Detect protontricks availability if not protontricks_handler.detect_protontricks(): @@ -691,6 +700,9 @@ class WinetricksHandler: if result.returncode == 0: self.logger.info(f"✓ Winetricks components installed successfully: {components}") + # Set Windows 10 mode after component installation (matches legacy script timing) + wine_binary = env.get('WINE', '') + self._set_windows_10_mode(env.get('WINEPREFIX', ''), wine_binary) return True else: self.logger.error(f"✗ Winetricks failed (attempt {attempt}): {result.stderr.strip()}") @@ -701,6 +713,140 @@ class WinetricksHandler: self.logger.error(f"Failed to install components with winetricks after {max_attempts} attempts") return False + def _set_windows_10_mode(self, wineprefix: str, wine_binary: str): + """ + Set Windows 10 mode for the prefix after component installation (matches legacy script timing). + This should be called AFTER all Wine components are installed, not before. + """ + try: + env = os.environ.copy() + env['WINEPREFIX'] = wineprefix + env['WINE'] = wine_binary + + self.logger.info("Setting Windows 10 mode after component installation (matching legacy script)") + result = subprocess.run([ + self.winetricks_path, '-q', 'win10' + ], env=env, capture_output=True, text=True, timeout=300) + + if result.returncode == 0: + self.logger.info("✓ Windows 10 mode set successfully") + else: + self.logger.warning(f"Could not set Windows 10 mode: {result.stderr}") + + except Exception as e: + self.logger.warning(f"Error setting Windows 10 mode: {e}") + + def _install_components_protontricks_only(self, components: list, wineprefix: str, game_var: str) -> bool: + """ + Legacy approach: Install all components using protontricks only. + This matches the behavior of the original bash script. + """ + try: + self.logger.info(f"Installing all components with protontricks (legacy method): {components}") + + # Import protontricks handler + from ..handlers.protontricks_handler import ProtontricksHandler + + # Determine if we're on Steam Deck (for protontricks handler) + steamdeck = os.path.exists('/home/deck') + protontricks_handler = ProtontricksHandler(steamdeck, logger=self.logger) + + # Get AppID from wineprefix + appid = self._extract_appid_from_wineprefix(wineprefix) + if not appid: + self.logger.error("Could not extract AppID from wineprefix for protontricks installation") + return False + + self.logger.info(f"Using AppID {appid} for protontricks installation") + + # Detect protontricks availability + if not protontricks_handler.detect_protontricks(): + self.logger.error("Protontricks not available for component installation") + return False + + # Install all components using protontricks + success = protontricks_handler.install_wine_components(appid, game_var, components) + + if success: + self.logger.info("✓ All components installed successfully with protontricks") + # Set Windows 10 mode after component installation + wine_binary = self._get_wine_binary_for_prefix(wineprefix) + self._set_windows_10_mode(wineprefix, wine_binary) + return True + else: + self.logger.error("✗ Component installation failed with protontricks") + return False + + except Exception as e: + self.logger.error(f"Error installing components with protontricks: {e}", exc_info=True) + return False + + def _extract_appid_from_wineprefix(self, wineprefix: str) -> Optional[str]: + """ + Extract AppID from wineprefix path. + + Args: + wineprefix: Wine prefix path + + Returns: + AppID as string, or None if extraction fails + """ + try: + if 'compatdata' in wineprefix: + # Standard Steam compatdata structure + path_parts = Path(wineprefix).parts + for i, part in enumerate(path_parts): + if part == 'compatdata' and i + 1 < len(path_parts): + potential_appid = path_parts[i + 1] + if potential_appid.isdigit(): + return potential_appid + self.logger.error(f"Could not extract AppID from wineprefix path: {wineprefix}") + return None + except Exception as e: + self.logger.error(f"Error extracting AppID from wineprefix: {e}") + return None + + def _get_wine_binary_for_prefix(self, wineprefix: str) -> str: + """ + Get the wine binary path for a given prefix. + + Args: + wineprefix: Wine prefix path + + Returns: + Wine binary path as string + """ + try: + from ..handlers.config_handler import ConfigHandler + from ..handlers.wine_utils import WineUtils + + config = ConfigHandler() + user_proton_path = config.get_proton_path() + + # If user selected a specific Proton, try that first + wine_binary = None + if user_proton_path != 'auto': + if os.path.exists(user_proton_path): + resolved_proton_path = os.path.realpath(user_proton_path) + valve_proton_wine = os.path.join(resolved_proton_path, 'dist', 'bin', 'wine') + ge_proton_wine = os.path.join(resolved_proton_path, 'files', 'bin', 'wine') + + if os.path.exists(valve_proton_wine): + wine_binary = valve_proton_wine + elif os.path.exists(ge_proton_wine): + wine_binary = ge_proton_wine + + # Fall back to auto-detection if user selection failed or is 'auto' + if not wine_binary: + best_proton = WineUtils.select_best_proton() + if best_proton: + wine_binary = WineUtils.find_proton_binary(best_proton['name']) + + return wine_binary if wine_binary else "" + except Exception as e: + self.logger.error(f"Error getting wine binary for prefix: {e}") + return "" + def _cleanup_wine_processes(self): """ Internal method to clean up wine processes during component installation diff --git a/jackify/backend/services/automated_prefix_service.py b/jackify/backend/services/automated_prefix_service.py index d1fa04e..3b5714b 100644 --- a/jackify/backend/services/automated_prefix_service.py +++ b/jackify/backend/services/automated_prefix_service.py @@ -39,14 +39,26 @@ class AutomatedPrefixService: from jackify.shared.timing import get_timestamp return get_timestamp() - def _get_user_proton_version(self): - """Get user's preferred Proton version from config, with fallback to auto-detection""" + def _get_user_proton_version(self, modlist_name: str = None): + """Get user's preferred Proton version from config, with fallback to auto-detection + + Args: + modlist_name: Optional modlist name for special handling (e.g., Lorerim) + """ try: from jackify.backend.handlers.config_handler import ConfigHandler from jackify.backend.handlers.wine_utils import WineUtils + # Check for Lorerim-specific Proton override first + if modlist_name and modlist_name.lower() == 'lorerim': + lorerim_proton = self._get_lorerim_preferred_proton() + if lorerim_proton: + logger.info(f"Lorerim detected: Using {lorerim_proton} instead of user settings") + self._store_proton_override_notification("Lorerim", lorerim_proton) + return lorerim_proton + config_handler = ConfigHandler() - user_proton_path = config_handler.get_proton_path() + user_proton_path = config_handler.get_game_proton_path() if user_proton_path == 'auto': # Use enhanced fallback logic with GE-Proton preference @@ -125,8 +137,8 @@ class AutomatedPrefixService: logger.warning(f"Could not generate STEAM_COMPAT_MOUNTS, using default: {e}") launch_options = "%command%" - # Get user's preferred Proton version - proton_version = self._get_user_proton_version() + # Get user's preferred Proton version (with Lorerim-specific override) + proton_version = self._get_user_proton_version(shortcut_name) # Create shortcut with Proton using native service success, app_id = steam_service.create_shortcut_with_proton( @@ -487,7 +499,7 @@ exit""" try: # Use the existing protontricks handler from jackify.backend.handlers.protontricks_handler import ProtontricksHandler - protontricks_handler = ProtontricksHandler(steamdeck=steamdeck or False) + protontricks_handler = ProtontricksHandler(steamdeck or False) result = protontricks_handler.run_protontricks('-l') if result.returncode == 0: @@ -1556,6 +1568,9 @@ echo Prefix creation complete. if progress_callback: progress_callback(f"{self._get_progress_timestamp()} Steam Configuration complete!") + # Show Proton override notification if applicable + self._show_proton_override_notification(progress_callback) + logger.info(" Simple automated prefix creation workflow completed successfully") return True, prefix_path, actual_appid @@ -1869,6 +1884,11 @@ echo Prefix creation complete. if progress_callback: progress_callback(f"{last_timestamp} Steam integration complete") progress_callback("") # Blank line after Steam integration complete + + # Show Proton override notification if applicable + self._show_proton_override_notification(progress_callback) + + if progress_callback: progress_callback("") # Extra blank line to span across Configuration Summary progress_callback("") # And one more to create space before Prefix Configuration @@ -2705,7 +2725,7 @@ echo Prefix creation complete. from jackify.backend.handlers.wine_utils import WineUtils config = ConfigHandler() - user_proton_path = config.get_proton_path() + user_proton_path = config.get_game_proton_path() # If user selected a specific Proton, try that first if user_proton_path != 'auto': @@ -3005,4 +3025,92 @@ echo Prefix creation complete. logger.debug(f"{config['name']} not found in Steam libraries") logger.info("Game registry injection completed") - + + def _get_lorerim_preferred_proton(self): + """Get Lorerim's preferred Proton 9 version with specific priority order""" + try: + from jackify.backend.handlers.wine_utils import WineUtils + + # Get all available Proton versions + available_versions = WineUtils.scan_all_proton_versions() + + if not available_versions: + logger.warning("No Proton versions found for Lorerim override") + return None + + # Priority order for Lorerim: + # 1. GEProton9-27 (specific version) + # 2. Other GEProton-9 versions (latest first) + # 3. Valve Proton 9 (any version) + + preferred_candidates = [] + + for version in available_versions: + version_name = version['name'] + + # Priority 1: GEProton9-27 specifically + if version_name == 'GE-Proton9-27': + logger.info(f"Lorerim: Found preferred GE-Proton9-27") + return version_name + + # Priority 2: Other GE-Proton 9 versions + elif version_name.startswith('GE-Proton9-'): + preferred_candidates.append(('ge_proton_9', version_name, version)) + + # Priority 3: Valve Proton 9 + elif 'Proton 9' in version_name: + preferred_candidates.append(('valve_proton_9', version_name, version)) + + # Return best candidate if any found + if preferred_candidates: + # Sort by priority (GE-Proton first, then by name for latest) + preferred_candidates.sort(key=lambda x: (x[0], x[1]), reverse=True) + best_candidate = preferred_candidates[0] + logger.info(f"Lorerim: Selected {best_candidate[1]} as best Proton 9 option") + return best_candidate[1] + + logger.warning("Lorerim: No suitable Proton 9 versions found, will use user settings") + return None + + except Exception as e: + logger.error(f"Error detecting Lorerim Proton preference: {e}") + return None + + def _store_proton_override_notification(self, modlist_name: str, proton_version: str): + """Store Proton override information for end-of-install notification""" + try: + # Store override info for later display + if not hasattr(self, '_proton_overrides'): + self._proton_overrides = [] + + self._proton_overrides.append({ + 'modlist': modlist_name, + 'proton_version': proton_version, + 'reason': f'{modlist_name} requires Proton 9 for optimal compatibility' + }) + + logger.debug(f"Stored Proton override notification: {modlist_name} → {proton_version}") + + except Exception as e: + logger.error(f"Failed to store Proton override notification: {e}") + + def _show_proton_override_notification(self, progress_callback=None): + """Display any Proton override notifications to the user""" + try: + if hasattr(self, '_proton_overrides') and self._proton_overrides: + for override in self._proton_overrides: + notification_msg = f"PROTON OVERRIDE: {override['modlist']} configured to use {override['proton_version']} for optimal compatibility" + + if progress_callback: + progress_callback("") + progress_callback(f"{self._get_progress_timestamp()} {notification_msg}") + + logger.info(notification_msg) + + # Clear notifications after display + self._proton_overrides = [] + + except Exception as e: + logger.error(f"Failed to show Proton override notification: {e}") + + diff --git a/jackify/backend/services/modlist_service.py b/jackify/backend/services/modlist_service.py index 765cc9f..f7c0381 100644 --- a/jackify/backend/services/modlist_service.py +++ b/jackify/backend/services/modlist_service.py @@ -631,6 +631,10 @@ class ModlistService: 'skip_confirmation': True, # Service layer should be non-interactive 'manual_steps_completed': False } + + # DEBUG: Log what resolution we're passing + logger.info(f"DEBUG: config_context resolution = {config_context['resolution']}") + logger.info(f"DEBUG: context.resolution = {getattr(context, 'resolution', 'NOT_SET')}") # Run the complete configuration phase success = modlist_menu.run_modlist_configuration_phase(config_context) diff --git a/jackify/backend/services/native_steam_service.py b/jackify/backend/services/native_steam_service.py index 8120062..68b51e7 100644 --- a/jackify/backend/services/native_steam_service.py +++ b/jackify/backend/services/native_steam_service.py @@ -345,16 +345,22 @@ class NativeSteamService: def set_proton_version(self, app_id: int, proton_version: str = "proton_experimental") -> bool: """ Set the Proton version for a specific app using ONLY config.vdf like steam-conductor does. - + Args: - app_id: The unsigned AppID + app_id: The unsigned AppID proton_version: The Proton version to set - + Returns: True if successful """ + # Ensure Steam user detection is completed first + if not self.steam_path: + if not self.find_steam_user(): + logger.error("Cannot set Proton version: Steam user detection failed") + return False + logger.info(f"Setting Proton version '{proton_version}' for AppID {app_id} using STL-compatible format") - + try: # Step 1: Write to the main config.vdf for CompatToolMapping config_path = self.steam_path / "config" / "config.vdf" diff --git a/jackify/backend/services/protontricks_detection_service.py b/jackify/backend/services/protontricks_detection_service.py index 3c85ade..54ad05a 100644 --- a/jackify/backend/services/protontricks_detection_service.py +++ b/jackify/backend/services/protontricks_detection_service.py @@ -39,7 +39,7 @@ class ProtontricksDetectionService: def _get_protontricks_handler(self) -> ProtontricksHandler: """Get or create ProtontricksHandler instance""" if self._protontricks_handler is None: - self._protontricks_handler = ProtontricksHandler(steamdeck=self.steamdeck) + self._protontricks_handler = ProtontricksHandler(self.steamdeck) return self._protontricks_handler def detect_protontricks(self, use_cache: bool = True) -> Tuple[bool, str, str]: diff --git a/jackify/engine/Wabbajack.CLI.Builder.dll b/jackify/engine/Wabbajack.CLI.Builder.dll index 5112bb1d722f9f8a3e095322d2dfc793b6f29332..2743521927beff3838527605450fb5e9395abb37 100644 GIT binary patch delta 303 zcmZq3X~>z-!IJlJ;g5|yMv{zzllMy|G74^1lv>Rr@OahypQm2yIW9kIu!2Xhd(q}Q zYF(@r=6VJU3?_^W`UZN&dWPoOMybi>X%-g7X2xbI1_mbPmT49ysc9xjX32?WNy&x= zrWPqF$)*OTljrG7V>v!0uy?YBZh*kIUq$!kiupLqJXjVRHT}=L$uo2d6rh3(kx)UP zYTozJ7Sf!v3*VHPEvVb9p_j(QDagRg00M%WryHa*GMaDxZy3!OY|fy~V8oEhkj!At zkj7vEgvJbJV4T8W0E8w$aZ9j_2~brUke>vUPi9C2l1V_?5U9o!s4E2slYuNCZ}M7W UQ&w{ZJqCk`ic*^yP5v_i04gS0+5i9m delta 303 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 IS*=6&zfRJP(*OVf delta 9906 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 G$OHg)Kyfwz delta 492 zcmZp8!rAbIb3zBpRkDtTLNmDmCuY4h=_^k8(r|nO;nSOZMn&}xZFqkkh=o{!6>lvD9 zr&uPLB&H;%7#O4(8z-ljnIv198kw4#nHi@fnI@a2BpIceo0uj7-NC}hFx@YV$z;24 z7*n_~i%`#^*6AxUnF0hnb({E9TTXZ{o;j;DS9k8A=^R;1Sqf0m(~qH|Aob@Kmd#b0 zBCxyE`~vUxNm)#P7&!$Pn898Y*gidnDV~whZ2R|ICV$3YGX`yj6b4I%BnA_PL?9~} zhz)=+jlmcQK|C{{Ofpb~DT5IZn*;e~K$#Sv4pX4GDVSx%kP4JB0rCjXg&H7zHQq|7WQw$N&RNwIM8K287sT6}Z@B#s9*Lf}2hM zE87ah)f%TCdoAU^;DK$|ozsf(+cRt!^%O14^$ZvoOc)vT4fKrl49&HTQj^WoEG&%8 zjLlLE3{1=|(=1F<(@c`gk`v96k_`<^EmBgFO$|)9pNnPu#lf=5(PrWFGii(g0?BF_ z_1RgE93~}Z=`>B5lQLZ=ov}gzDrx`|1*%t6JFQZ&P^{tx_qM}tw;xGoJjKK*$iNJC zwBYvXS&Ze3jON?y8PXUmfY6x142)A441mxCC~gUsF#)Pd z1M-uA^2rQ|Kr#tP8v@ms0(GSTVKR^fM2^7=@~FEm@qQv8|WG98JcOQSSFbyrX;5r z7^E2+C#RU1BwLyqnVOrK8K)$fCYz=t8Ks(=m?j!+KNrjRi-W~1{PE1`XVMr01hlUx zYOXrp;?(V^q8xM4>)mvnbjAt=sA$t^s3=gq`bjDLmoB|BY zU`GpVpPt27&d6xCoj-@Mm@(LlL7O3k!IB|~!Gs|Z$Vvuc10YOeFa|;p&kQJ&3{+vt zUwPm7RF}AW+?^+CgzrD7AC1_CP`+=iDpU3 zh6bh)uar1w7MkWB9)L*Os delta 307 zcmZpe!q_l{aY6^n^OVWoH})85F$zrHucgW;u=%OhdtL$EugXnLtywPni$8r@B)}K2 z`H95_Rtqyd0|o{YMh1NYJ!3sXGwl@1B$LFHk z0#!3I>)-EU(6{oA%I@iyJjL-BrvL*p0|*Fgp6*o6$Y{2i-=&x_*o;A&A%($`A&J3+ zArZ(*24VvsOk*$xLJ-dkD3c6SVai|x#O6T08Bit#sKXQ}ZVF}@F{A=zOn|&Z2BXPW XT}@fd81xtnHVe9aVBGxQoskIuK`d9u diff --git a/jackify/engine/Wabbajack.Configuration.dll b/jackify/engine/Wabbajack.Configuration.dll index 33fd275a855c7da8d377647efadb8e59f7fabba0..b7a2a3731b315893112dd2529cdc4582e9ab1497 100644 GIT binary patch delta 303 zcmZorX;7Ka!IELL@aM)JJ7z|~&8L|enFPMu=;!TFkaXW{V)iz5>VbyIcUTX&nClrZ zFqkkh=o{!6>lvDB8>J?jr&(ASn;Dy>7#NtCTc%lS>KByo_wfeqj|AI%C?xyNy zyxDw(eHRm_AOkblG{Mc&x$+qq%{R02q%#JaGiWmyF{CmiGng}^F<1bhF@qTxr!W`* zp$Smj5-ei^RFwwgCjsS?84`hH5|B0osxbxXN&&)TAPdNwe2~|a)to_(!C)~XAJaqw Kw#|$J{}}-}0#Y*o delta 303 zcmZorX;7Ka!E)`XP|L<1J7z|K&8L|enFOru((kO>X6xR)=ujC$eFN|0JFEv>%=8Qx z7)%%$^bPck^$g9lQ!JBA5>t{>3=GnYjgwQ%Op+~4jZDqW%#2f#Op{Ghl8jQ#O-vJw z7@)xTqV4O+57+_(zN(9Pusn0}S$f=pWlF#op2-gEB??f%IjK-Vkm@rkp-$KOf(`_? zYX94Og?$$jrvL*p*ffF7)4B2)8O=7c^Q1Edn=xoJq%c@ABr%vUBm!BFff=fGUyxV8S5FEYa68|o2OY=7@HZJr5G5P zm|LbGEEz delta 342 zcmZp;!O?JoV?qZ@e^lw$#-6P`jBC6Y1*ThiGx~}OFu;I$Foea-Ah3P5H)HHdfzM9I zs;;e_?Ae?zuNJxUB$+0grX(4qnwyv=8f`ZcV(JrMsSSwOF#U)UQ-HwFS!a}8Oiy?% z{w2Kh|Nj2z(^Zt2k`$n#s~$r|LF)bYvJ0E8VbFVWJaOyxWy(x1m^cL(n8EH9*gjp2 z$)AzYZ2NO{CUeGMGX`yj6b4I%BnA_PL?9~}hz)=+jlmcQK|C{{Ofpb~DT5IZn*;e~ wK$#Sv4pX4GDVSx%kP4JB0rCaY6@6T7bjljXhfw7zHOgDyrHFGQfZ?H-yE^fDn7ig(=p{3m2QbSkYP( zp*oQfA@f<$8fb&Ql0TCCdxZSv$x4j^0-qY5FWt(c<-GAiVC=!&ky)Enj2E(7nClrZ zFqkkh=o{!6>lvDB8>J?jr&(ASn;Dy>7#NtCTc%l zZ<>5`<b_GnFf(*=Hj|gs_?$FQ3Xuet9X*y%DIfFKX5ko3NGJ`oo8iNH88Z(%I zaSDS05SjqREx|G-Kvii#eiBeVnIREKCIM+fpc+%4t`s0l2C{&>$$~DXtmX`Q3aY6@6Q2guX8+*1WFbYg|R8+MUV1NN#ZU~E+0U`F33sbC@7cMq=v7)so zLUke|LgurgHP8lqC4VIO_XzpTla(3;1a7c?Dc!T_t<$`&JygVAI`7gJU<20aFY P&4O;*7&kMz{bvLKi}PU? diff --git a/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll b/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll index a0d7fb735e107e050d132e46a8e88f9e9d796f86..47d3bf62a54789c05dcfd6838a8fb12c787d79ea 100644 GIT binary patch delta 661 zcmZp;!q{+yaY6^nK3U;!8+$rT83iYcnyHEkGQfZdKZM21AUN6IOg$ALBg6%lfhlHa zWW^Nwh%f=J&XE~Yoe)CZPd!hyvS4lI@gU{P0u2(r!W7HcI0-1l>r$ck)p+Igzs#7c>pq|HYHT(~XF^$Zvo zOc)vT4fKrl49&HTQj^WoEG&%8jLlLE3{1=|(=1F<(@c`gk`v96k_`<^EmBgFO$|&p zJH&ioVsVO|@qDsLe1L#Sf`5G**Ds$ZZFL_VLT>G|xGvHTi*QlLAc84k`##E&uxPp8Mv~uN9Www-emlWX8k9 zDagPKcCO&&=@$KrjOLrwt)?>un=@!L7%`+WBr}*Zq%l|kp)rFQ7^g580HFy`+!8Ef z0#ua-Pi8^WFQO3n=EK!%4*J_$6&Bo&~6*!W=6aJi~#da BU5fw! delta 413 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 H^^h3=9-3o1 delta 404 zcmZpuX{edd!7|aSY3{}z8EHm=$t$H*MFkjO;2S4|#mpcu`LVP*P@Y>x-4-FA#R!*& zX<=yR!W8R5GACaKXwK&8GLHNL8Fy@_PdNYArQ1h0<63uS(&iW1C)w=G^b8mnOc)vT z4fKrl49&DtER#$UQ<75*4AP8^lT*x0k}XY*OwG;Aj8l?KlTA~Sj8e@_OcRY580;7s zEGHKjYj2h^u47~oIlaKF&G0Oh-U_rNd~GgWiSF_b0FUgD3b!zVG0yC1+$D8Qh_oiKwct)(d3twra
Z>X$$N&RQ!VnfSgW%-%zScl_Z9jEQg#2Ab zxI9b?gQ5srY;v_n#-HcR`PDhRaiv<#l-JKd}Mdgu4Y+#E5-4YL%Wg0V0`km_^R?=`-? zOi|tO>;Cu6#~MyBatbmqgZ&`5d3w`+Mn?0^;Vt(WgUuPV8H^ZG8Il>y8PXUmfY6x1 z42)A441mxCC~gUsF#)Pd1M-uA^2rQ|Kr#tP8v@ms0(GSTVKR^fu E0D(nhhyVZp delta 397 zcmZpe!qhN@X+j6frSH$zZtT(UWfYja)mK$ifB^=agdr?u27$@%eXW7=+J5Sq2>H8= zaCw*(21OCL*yL)zZY0w<1mQB9rTtA61g7miI)$@d(ql&It%w^h_lj;#$e+S(VWwxm zz+l42pl_gOtY>JZono0}l9-a5VqlPFY@D28W|C}aYGi6|W@em{WSVT6l4O)>Zep5f zv{|RRhJ|I}&K2h;uc;3Z$Q0%{a-i(E)0UdogjGBPy3 zWO`!GmA3g5`zgtB9N5~#0Ef^ z#$XJDAf6deCK;&0l)(sy&4GL~piBx-hbd6p6wESWNCnE60C|ZFMw2_+Oo7JlZ*yb@ E0Jk7u<^TWy diff --git a/jackify/engine/Wabbajack.Downloaders.Interfaces.dll b/jackify/engine/Wabbajack.Downloaders.Interfaces.dll index 87f64cc2ae2f43fcc78c386b7931d90f11826578..6bc6cbbf7a48f862f71bce296d4e0724a395dbe2 100644 GIT binary patch delta 381 zcmZp$Xt0>j!4kJ7se5D3A`V8u$@-kCwt@^WV8;SsF*6{j!D7ZKw0L9BA`V7@$@-kCwgL<=V8;SsF*6{xnRbe0l1XApa*BaLnz3kwj)6QiBli>FgmtXo!z987902RDa02KtP4yu`$SKVW*xXUzZQ|sn3Aqgf<0S0EU zc>Q!q1 diff --git a/jackify/engine/Wabbajack.Downloaders.Manual.dll b/jackify/engine/Wabbajack.Downloaders.Manual.dll index 1bad6531851e44bb11e4966216bae3d114127424..f9e6a85a28c5b210e1849ee6ef24e73c4baa2206 100644 GIT binary patch delta 383 zcmZqhXz-ZO!E&km>HLj7tGE~iC!2GtiV8BofEPQ2#mpc$xsY336CtCDkbx;?m=0xu zR3GFP2AX!2+nP~uvmlQ&mw=LX`h;r}PWx_J`KsJTNbu8U8?m=c7Up^e3=AfW4EhFo z#(IY4+D56#=4lod#%9K5DFy~6=9Xy|CaGyANoL83W=YA02BsD%Daob=rjrvTvstuW zWpAE*K{7y~YrguYk4l?d*Qg1+nQ^>p`eXyCIt8fU);CZ=km~P294ysm9HfPXgFk(n$NM zxFuM|1gI(v$WH>wCo?1h$s{0c2vlPV)Rh8+$v_s6H~Fu;DXTey9)rPVL8ViSn;Dh< GGXem?1z&Ig delta 383 zcmZqhXz-ZO!NNLq$>)tdtGE~iCYy7siV85mfEPQ2#mpcuxsY336CtCDkbx;?m=0xu zR3GFP2AX!2+nP~evmlQ&mq6cbb@?wsTFw*R8vRr0c_y^kM(izLlT1tLn4rs48#UNn8siXgdm<7 zP$n6u!j!=Xh|Pg~GoVZgP=_f{+!V|*Vn_wbm;iZ+3`Udx%A2y9G3YTEY!*~H#kiSK H=|3X?Yxrc% diff --git a/jackify/engine/Wabbajack.Downloaders.MediaFire.dll b/jackify/engine/Wabbajack.Downloaders.MediaFire.dll index 6b4cd1d78bc5a0bc0fd83417177318ece8c955bd..c43ff45e142794f82cc88bff6c98098423049202 100644 GIT binary patch delta 402 zcmZpuX{edd!P26!Xx+x1d(w=8le1-1f#gIPVNpQ_7+B2-VKFlZPTnbFt%;C{WQ5DW z6f?}?f{RU-mGx&7+?*?$%_p#`@b`sIg{?mO{O9kpaxXo!`GxjVHal}Y0|o{YMh1NY zJ!3sXb8Vy4Wb-r&3u7~5vlIgZ6LZTn3zO6|lO(g`M6;x1LjzNbl$2ys15*Zu07eGy z$^X>FCa+iIoLp@zx7owkfRQDH#o@-}8j}D4^(`4*GHYJ?%+qw8D$1;oHu;W8ivm<| zjvQ1Fr23S`CcCI~9)>F+i42FzTuqnJF}Q_sa!fg_8-_M&AZC$2*RphO_;lC4Gd!F zo}1vW@&Q&2Yi{z7Y@;6OmZ2W%WhxroKv)-}g)lBwAKwmZPwTbQzI(DbwW8nSt^Rpo z699%FL2PPIi?~c>nJYa>NS;zp3g)G_!;?Z#ndKgrStpld+;spl2v*fsY)IXX2h~0u z)ytG1|3!d5s}jrLPdTiYYQ?qdt5CDGLl)EvI~w~Rw%gV&t?zxn7D`kay3E5Uh{4zS z0oIq|3?ZRoGnZ&nKpZ5bAPWp!qdc?3OdhD2wiAYUroq86n>1b+BFzhKa^6u6VD$h1 diff --git a/jackify/engine/Wabbajack.Downloaders.Mega.dll b/jackify/engine/Wabbajack.Downloaders.Mega.dll index 662df0594c1ba5c6a1c6a6ac12479b3b5a30cac9..f627cbe5c9618e0682e227c7fd8adb82b9138a80 100644 GIT binary patch delta 368 zcmZo@U~Fh$oY2AI7_;fs#vVO6M#0IuLpfm}`BlyuNE*ruYYH;JKqw=G#ms;Z ztLK7?P0p3~2kO}?ug)mA`Ki1-pFrtx-F!ErmmaH1q6}B%JhZIqg9o@QZTY-VhhVqjomZkc9blA30cWR{$0mXvI0U}}+)l5A>Vx>?q= znvvz`gBf!t&oK)SSorg5;@-?VKI@`i{c8?;tT*|OS(O4*P$v&62vjY*=xNJJ2~LwQ zM?UoTPM&7|gHw=!8SH4m&C@OF85zwti(Az*2AeZzGZ-Lpfm}`BlyuNE*ruYYH&HKqw=G#ms;Z ztLK7?P0p3~2kO}?ug)m2`Ki1-pTNd>vmPJ4{N8En^)7>Qp)XCFMf5JRS(xb=Fff=f zGUyxV8S5FEX{T5wnIxtprx+Nd85<|3n3*J7ni`p!o0%D>B$+0grX(4qnwyv=8f}&} zt!88q|N86B@`0$>%>;E`mo7=%&HWig1h9Qf0U?%z5SzSK$r?$uH4~<4 zM_#ztWI<(rpbd%2){KIi=PL6H3+#3>O-~KXbe^Nf<0L9;DzJHvSw5$oxt;+7g9#&p zzJZ>xo}sz6QEIYznuUe2nXy@lfq{v+WtxRaYMM!sS#qLTQnI0esYOakvZ;Y71A_-6 zgY)ExPBN4E9R(-fci`AO&%uh3IpX%B$+sN?1zz5s!e8ZQ>Nzhyes*!uC$GsiPBjWp z!IN=NL7?K41HVFYniibi%6{;s>gF3x+ZZ_o8JNM|5ZpZ7rJj+|e6zS)J!7yrgEoT^ zLn=cugE>PQg9Q*8Gnj#K3WEUP&wArVL>0ck^^8dIRI6d+6n SvVgqFFWpUn#>;y=WCj2xgA(L-A1`6CMo*(SGMaFTp{xpRf($Tlmj}XPW)PhGQ$-ypuc)f7 ziIC4i$iuWST;fIODO3gNnWMqRFmOt5>^BYfoO)G={}SJBWGd4>xFfcK50S|;Jif44*-U#od4gwvK(Kt*m6um{Ic_cuIx4xV zsD1JW&l&}&U}G^<5TshUZK1H|%4(;DEFOZJd%T#KI0YG)!5$IZJl&_BkfpH3h0T7x1#Vx@yCO}nbKzY5kGgGx3ND8V6GYV{0Rg0GtSe*ITzP9L>>yl5K8YNdW*lnI- zKb^zQOwWLU!Gw`P-$2h;&(KUe#WKkxF(o<0z#z@oI61}4B-zr`$kg1-%s3^jJwztY@c6=V*j)eW4sI)}}Oz zE88Z2@T^gQ3NE&X3W8K;RkHbs*WEt<_qZPG<{mF5CQbncX0S&DHc$7dXJjz-!SeIF)1-|(VPcGelOKzziV8BoKq@ZYGAsVM=OSrrNw{S&B;010Rp|6=igaeSn0pnNBPOM z&vTAXKBGNF0V-Gz69lS`{5CCBqH6Bpuy;S3rfqJ};bYdqYR;g?V6a)xB#m)1qsf0p04Stf>Hq)$ delta 332 zcmZq3X~>z-!E$+0^xcg;VPcE|lOKzziV85mKq@I3>w6*)%1|DAnA=G|^}?k5&vL%XV9}X_Irb0|f4^GT^Ogde!Y!+;8(BWg^6kuQmyH{ZIbiMVAjAonN z4URJgn=xoJq%c@ABr%vUBm!BD<7P&a|BL{?a$A@H diff --git a/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll b/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll index bf963b85b0672950afc972cbcaf0e848765738e7..8c2cfe0b43433fad123830b14e67ac60824f6fda 100644 GIT binary patch delta 406 zcmZoTz}RqraY6@6qvFiV8+%L)83iXFG*lH8WPpJTZU~E+L2&YKLv^6MvXQ?gLjD{N zTpp%{A)N^>HhH#@HIiwH2-7ydHc}K7Xuf}2O8d$;pQQ!!`H%g1!m(M#Vxo}sz6QEIYznuUe2nXy@lfq{v+WtxRaYMM!sS#qLTQnI0esYOakvZ;Y7 z1A_}AgZ<>d5V6gS!NSbUlRxB777q&)NRxT+YlU5sYqzNbbHlmV$CE3fpH3h0T7x1#Vx@yCO}nbKzHhH#@HIiwH2-7ydHc}K7_!KO>$bI<{|J}+;4)!I-jW^49OysgN(=%XT zFkxiSH_$WIGc?mqu}m^aOi4~LFi0~tPEIj1NwzdKGBr0dGfqh|O*TzQGDsu4ll& zV8Y0tZ=h$aXK1c%l$vawW?^A$W^9&XU|?cynPy>1!S+8gjFT8S1sRyZZWi1=U5+uIkf6W3V}cHiHpEDnl}ZIYSzQ z1rQoDn1OK$g8>kl0L3lAGA2M(X+VAwP(GO<5lAKhX+xkIQ=qOCAWR0bfV}Ak6&X!g Y%^CC<43;x0F)~dwVB5~9!uX#N0A-F~Qvd(} delta 403 zcmZoT!_shuWkLrF^S4uvH};fmU=*0lyirwDfB^>lBq1zj27$@88`XjGsbI2qqq-(S zm6a@96-*<;TOPRBxo}rm`ie-{XVoGv~fkB$FadL{8NwTG>k*T?vnQ=;zX|icbl2NL;iD{zI z_F7TKb~cvvY!0WVbI33T2vm9&<;5m`^I0Uy+V6Pf+R5n|GK?h(P*IsAs3=JN!`X%P zXJ@$m_;Y}3()K?xjFT8S1sIsYZWh=+U5+uIkf6W3U;6HbV-7B|{Q}2}2@~ zl?=oNK$ym041^$_8Bit}sKS)N2#C#rd^4a-3Q&hBP}~&EGGa&t%9sFoi3~>54=OU6 ZvYIjIF&HdoRAOYBXu!6eQHAk8BLKi}W;Fl+ diff --git a/jackify/engine/Wabbajack.Hashing.PHash.dll b/jackify/engine/Wabbajack.Hashing.PHash.dll index aa6ab99f8100575f11d204dd372819e3c8175763..743b65936d9c7805b1dc8491058191d87c273128 100644 GIT binary patch delta 15315 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 M<_>7m9{8K~-)<*n1^@s6 delta 14720 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 Fe*rWx8F2sr diff --git a/jackify/engine/Wabbajack.Hashing.xxHash64.dll b/jackify/engine/Wabbajack.Hashing.xxHash64.dll index e344112c3a9ac9c52700b1c4a0d8c231ec21d6a8..c393de3d1f5ffe3f52f92dcaccd14d8cd1cf434b 100644 GIT binary patch delta 319 zcmZoz!Pu~ZaY6^n+AT{SZtOXt$0#^CP+wJ4kO2nva6wqi41$}x^<@PFHXXUL`QK-G z&ut2F7LSX!Kia&*{uPIXxt;+7g9#&pzJZ>xo}sz6QEIYznuUe2nXy@lfq{v+WtxRa zYMM!sS#qLTQnI0esYOakvZ;aT=35@q7+E?E+nOeqcm)XDPGyrhdi0>@p4R!T@eT8S zPQKz*r2rGGfeM0DJI!kGX5K0B`u5!mHJkIi6&N`M8JNK?72G`Cr=F3~e6zS;J!7yr zgEoT^Ln=cugE>PQg9Q*8Gnj#K3WEUP&wArVL>0ck^^8dIRI W6d+6nvVgqFFa1q{#>)phWCj456kSvR delta 319 zcmZoz!Pu~ZaY6@6{#3rX8+(rEF$zo$)K?W1V1R)=To4vBgTUr)eOUp4;=QYmFs^^& zxayY4%f!{^88`2+f5l;8rf0ywV8Y0tZ=h$aXK1FKVwq%;n39}gV31~PoSb52l5A;e zWNL0^W}K2_nrxbqWRz-dVwz~Q`Ig5tMwX<57H1}xcm)V>n018T%H8j>R&eju?T>DG zO}^q)r2rGug$e>y`_u-!RMLL^mVdgyn(obc-U^JI0u0PxmkMm2?o-dmXtr70ubwg3 zj6s_rg~5^`iNS;+5y(mgVgn#dV=x9n5YG%KlMGa0%3uV<=0Ls~P$mVa!xSiP3T7EG YqylA3fV@NoqscG*O@YSC2Rvj305kkrrT_o{ diff --git a/jackify/engine/Wabbajack.IO.Async.dll b/jackify/engine/Wabbajack.IO.Async.dll index 25edc1a8a9aa1c08c19ee5ef16efed64209031e4..0c9d4846db4bc9db2b8d8d786de1c56c9df38718 100644 GIT binary patch delta 291 zcmZpuXsDRb!4ed=f5XO}DGH2&n-vwEIR(Vj^p$FCt9%x#EA+WNyWp|8L@S2X!d%aQ zfx(24LEk{nSkKU0+bA{JJk7$w*v!~0#lXPC+%nC=BsI+>$t*e1EGgO0z|4*M>|M4!_T>{gXqCvlO6$st!;=plbFFyx9** z7MUuWRP5r|e9w3T6Q>{pGXn?+Zk}!y&&X)L`MbG4W3V}cHiHpEDnl}ZIYSzQ1rQoD zn1OK$g8>kl0L3lAGA2M(X+VAwP(GO<5lAKhX+xkIQ=qOCAWR0bfV{~wElq*OpSLt* F0ssM~PzL}2 delta 291 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 literal 121344 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 diff --git a/jackify/engine/Wabbajack.Networking.BethesdaNet.dll b/jackify/engine/Wabbajack.Networking.BethesdaNet.dll index 04c511010a29eb2cc726f73c19577402dcb35c0a..d56d8525cb3695db34e1c4340566ae555e142ae0 100644 GIT binary patch delta 344 zcmZqJ!PKyWX+j5!*P_p#H}({TFbYooAEGKM$N&Q(G7uIsgWzP#(D{sln{S4;YX~sc zb8zJ4?f32e^5gg3h2N_;7t|?m*_rDZFff=fGUyxV8S5FEYa68|o2OY=7@HZJr5G5P zm|Lbj-1|x=4hGYhFhBO8XAT(w$1LG7110Xa3id%wZOn|D= yfczw&d@@5KkW2#7hCnr@KwT+7m<(hAd6QLVn6jEP=rI^KmB5My7V-T$s!Zm6rh63-$MmKs=qtB?)85*e_#4G#>ty^O}xUyDZs!C zcDcaj=~JdNGMa7HpSGAW*o;A&A%($`A&J3+ArZ(*24VvsOk*$xLJ-dkD3c6SVai|x z#O6T08Bit#sKXQ}ZVF}@F{A=zOn|&Z2BXQUGfY{{81xtnHY-kA#JHJp)_+C-cw}T{ diff --git a/jackify/engine/Wabbajack.Networking.Discord.dll b/jackify/engine/Wabbajack.Networking.Discord.dll index aa845e957fb2fa3ff638ba58a867c20b49b5622f..7fa583c6d566f9a4ae8c86d385053dfda73a0358 100644 GIT binary patch delta 322 zcmZoDXegM_!J@mB``E^w2nj~P$xkJGfuymdI-}s`Xh}<60j*hc#GAKjI;`Inmm1u? z@9X9zYLP5<=6VJU3?_^W`UZN&dWPoOMybi>X%-g7X2xbI1_mbPmT49ysc9xjX32?W zNy&x=rWPqF$)*OT3=EEp3^tP$RYW%jXzMVsxE}gAV{(ITfI$C;jk!1SPde}2Aa3ff zw)WuU2fB3%P{GZ$P(hIDzp*Z{^0J?1{@r!*_~tr20VYmC24)5j5ZpZ7pq-J?e6ze! zH)F6lgEoT^Ln=cugE>PQg9Q*8Gnj#K3WEUP&wArVL>0ck^^ k8dIRI6d+6nvVgqFe~nF9%^CC<3^ogzonqX~X!f5G0NJNqoB#j- delta 322 zcmZoDXegM_!Lo3MX3xf+2nj}k$xkJGfuymdI-|hmXh}<6f!n(bo)(`LcV2(hu5)tw zDb>wO)FN5z%=8Qx7)%%$^bPck^$g9lQ!JBA5>t{>3=GnYjgwQ%Op+~4jZDqW%#2f# zOp{Ghl8jQ#O-vJw7#JKG8Ehsis)%k5(AHsM$=KU|X>x;ZfPmvP{icHaYUk}gP5rj- zQ~5jjfo`1wRB&@SR1l~-D4}+BM`GtX&An+Ut2fu_2{3UAFfcQKfWYSI2JMWDW}D@W zx*3Db7_=Eu7%Ul*7)%%vfvjX8HUPpj24f%u@yviS$v_pR3`Rg~4&<8wWm14TOo8I2 lV3rX>Dp1A*$V+4}n*7(;l+}zukHKKGpxG(L&5UOM83BMATq*zn diff --git a/jackify/engine/Wabbajack.Networking.GitHub.dll b/jackify/engine/Wabbajack.Networking.GitHub.dll index db218805528f915784d0f7b5e3c406a2cf235a3f..0b9d9d1de3da10a976de99b59407723a0ba73e5b 100644 GIT binary patch delta 309 zcmZoz!Pu~ZaY6^nI>xP6HufyiU=*CJuW1P+Gc~Ol1vf9%{465Ca&pq@;|5-S%MQ0| z{oT*WwRweI8oPzLo&f`c2_u8Pfu6CRp}DqEYO;Bng@v)1u~~|Nfr+_gnuSSfnn{vb za-vyMvY~;gMM_Gtse$R_w{E7JtKHr*v+${;KA)W96(F$uMZ<^GlR2I%6)OU6OyAQw z`HWYM0#vXPCJ0oWZgNM^`j|}f{TaIM5}Px;)fhPi8JHPBKydSPpL#|{^UdOZ^^C#h z4B8Av45H9W%wPt_DGUZcXaW?s1k0EJRiy#>NkI8zhD0El1f>YD|H; WQh+cS$O7^vzw|c+8ZRI4kQo3;6kDJG delta 309 zcmZoz!Pu~ZaY6@6+q1uo8+#UMFbYi8*R%wZnVQy&0-Kj=eijkfU3P3?Yx#Ds?(Qiv zb8g!$+`Pgrjordb&wzo!gpontK+jmu&`dkUGRY({B{{{wAkEk~ImOH*+0xX=)ZEO> zI3>w6*)%1|DAnA=G|_1CTQ}3q)oyQ@Syrrh{BClNSAc-<GAKw$H9pL#|{v(4gu^^C!0 z4B8AS43-Q@3?>YTKvpsk8vtP%gE0_-cxFJEWS|OD1|uLg2lCB;GATeEra*C1Fw2M` X6)0l@rpc`7m diff --git a/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll b/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll index fc8283b9f9026966e7f14c4031bff3a0282cfac3..5ef0b2ff2ada620cc4ef9b39b49ba9b8f2337a8a 100644 GIT binary patch delta 331 zcmZqBY0#O_!Q$z{JYi$c2^L1d$)T*OK(d-uT~v?(1|~8?Sj-H9o42z*WESvUwR+z- zj}GUleJ1Sx|36%_c?G8wqlLMi0Rw{xBZIzyp0S>xxwcVivU!??g|V5jS&D&yiMeH( zg-L3fNs?J|qFGY1p@FGIN=mY+f$8L5Txu*43tBHuR^bj15N( hDp1A*$V+4}n(QlN%4)`-$6&B|B2N|LW=4_!i~#dtTipNv diff --git a/jackify/engine/Wabbajack.Networking.Http.dll b/jackify/engine/Wabbajack.Networking.Http.dll index 0d9d5f2393dda9b578cfb851c0c0084f592ee5e5..2e686cc1f97f8f24c133b2bc20890c5149c1d8eb 100644 GIT binary patch delta 360 zcmZp8z}WDBaY6@+zEIAyjXg807zHP*T9=9nGQhw~eh7=1L2&YVYilH#cxHsme`|k6 z!Oi|QOQi(lL{Hr^x~1;Z&~&X+p7#Z{p^o;ck&9#kElg-mC zER4;J%~A{uOw29QEKE|Pi8^WFQO3n|w9fl+~O;kHKKGV9p1|&Hr;5nE+84TI3>w6*)%1|DAnA=G|^~tUh*j>mKRxE$0ysQ1qjH- zNUd!*6Y$w}g3~JLsaM+MIcXINP(hwwP(h$-cb@&Hj(eR|I`H6x#>~wo=~0ZF0t^uM z3T&R9QO?L{wwXVxm@(LlL7O3k!IB|~!Gs|Z$Vvuc10YOeFa|;p&kQJ&3{+vtU{6CkG2>{FCVAucv diff --git a/jackify/engine/Wabbajack.Networking.NexusApi.dll b/jackify/engine/Wabbajack.Networking.NexusApi.dll index 941c435913f4fed6003f2b28ef3256a26fc066df..59c82dd432337ac2d589fd783a860cfaee666caa 100644 GIT binary patch delta 382 zcmZp8!`$$Oc|r$ESLx1{jXgp=jDnNr_gIPwGQa?{5`@LfAUOGLk2+9Zv{xNTeyJ=% zKCo99D4*Kv4FEVEPNK-IaY&4m&#DCnsonW^JBvYNeQkxt;+7g9#&p zzJZ>xo}sz6QEIYznuUe2nXy@lfq{v+WtxRaYMM!sS#qLTQnI0esYOakvZ;aT9%&+7nzu#8i?x4J*^TK%-;z`QnwS(9bnG$=p?vtC05fvT+|jqiuP zJH2_=7mNG!kjjwEV9t=nU;%{2 z3}#@Q!e9V|CO~mZu#5>%RT_|=1e8x^NCc8eK-v(f#uTV41qhRYEFf?4-;buO<_vla Q2Ac)HoMzn2^yMET0K8yxod5s; delta 382 zcmZp8!`$$Oc|r%v4vP&JHuebhFbYhb-(x8%zyJfxN)Q$^gTUmsJ?cPt(Oz{V`K7W5 z`M_RbpnPhtKakwo3sk%LZtrRv0ju4XFVrq?c3k(zcSeb+xaH;lvD9r&uPLB&H;%7#O4(8z-ljnIv198kw4#nHi@fnI@a2BpIceo0ujVP0o9y zw|V(PK`xeDe}^xV_q+}eIHP;ko3l>9Wf3FCN@;;v5|d@#G$_CXm7szk)s87^qNA4a zN8T3yJA3n?nPi{}QwAd-HV5*}fHEmS9i~8WQ!vYjAr&ZN0^}t!7)}2B(UjGUL65;; Pv*4H0jGLLh{9^N*T zMG-P5r4TZ~o791(Rd4DBlI)v-?9KX{x7rIRg}k43ICQ`B(!*=FCvP_1v-!)XNM$>7 zJp%>?6GjGo13hCsLvwAT)MWEC3kzd2W3vY`Z!IEF+iY&y?U}%5Uc-U{=b%T5!Z{SC#W$_ zQGkl(!$g6~3m=%y543x(uQu1(Gk&{>I%5?hryv6}*e8P9r)w~-XJjqg~0#_O@QK-U>Osjsx%-!2`Hb;kO(A`fV3e{jVVx9 j3J@j(SwP
    )#`R&xeD27~Q_dW>m|+Zpv3|1$yrBF$!7 delta 417 zcmZp8z|!!5WkLswd(7r18+$}HG73yyxKR~I9^a_0DZl^&FQp+YW(I`V6gIfnWbsYv zq6nFjQV5ygP3l0?syB55N%qY^_GbOfTkQq3toJg^-Js+&cVXnRCx#zZZvOHqQrXT- z&wzo!gpontK+jmu&`dkUGRY({B{{{wAkEk~ImOH*+0xX=)ZEO>I3>w6*)%1|DAnA= zG|`BG!I_c4ZhE5}qvrN4VvHXAEZcUZ9-OAe7$6{U#Zoit@ea@SH8X>lyjC_$Pf%l= zq5u_r2@?e=pXe89pYN~K{5x;`@9iS$j8%-B0u0Pxp9pN9uEDsTkw8oK=Y#vU7gM#0G^{Z$zSH^2AyloB|hYhD+5?yl>$Yka%H;{!@J zdt_O0S(xh?Fff=fGUyxV8S5FEYa68|o2OY=7@HZJr5G5Pm|LbR2o(M}sPXo_uH*XKDrcXq`fobf zpfXDVT@a+&>iUJL!i=Ai#f&S>Ht(vu!o(@az{~&wf}5w;#4|FQZ~k8E&lqgZpv_>! zkjjwEV9t=nU;%{23}#@Q!e9V|CO~mZu#5>%RT_|=1e8x^NCc8eK-v(f#uTV41qhRY REFf?4%z9Ix@#pIenE;S!UlITS delta 306 zcmZo@VQOe$n$W?L*fH*W^A0CVrG(TX=-F@Zf0hjl4P1} znv!IcYHnhhIJvvja&l&%;AZC1lgun9-QJy_e4!#hpl7nXr$|MFdx!Fdoa6f|K2A2M z%u;{~ihDo>L8|-1)}74w!QRMnG4sIYU6oguI0YD(89+c_^Yof{Mn<#E-)sFDgUuMU z8B!Q58Il-G7!rZ3WFR&G!ZZeBAO!KufHKKI6{ZYEKx_`=n*n7~fI3Wp;-+Ah5ko3a V#stVqWH6dMv)&YF{P}uACIHC9Ul{-Z diff --git a/jackify/engine/Wabbajack.Paths.dll b/jackify/engine/Wabbajack.Paths.dll index c38bd09a21befd65ca775a1f04abe3901d014a8d..c7b08fc2597aa288bfd2661b9db4b96b96ae3e51 100644 GIT binary patch delta 310 zcmZqZU~K4MoY29N9{+m!#-1r^jDnjL)!F$3=5IeaIW4})ch=ttKl{(hWo))EEn>AZ z*E3*XFkxiSH_$WIGc?yWN=-ITv#>BWGd4>xFfcK5pQxu?r z4`G5J)yty}ebZleKFx>A5J8OQ?i YCKo!IvYIpKF&Ip4vn`k^G}HhI4A)pNHN`E9l^En>AZ z(=%XTFkxiSH_$WIGc?mqu}m^aOi4~LFi0~tPEIj1NwzdKGBr0dGfqh|O*TzQGDze;|$Jtyi-<~|jIz<60 z_!TAyR4t~t(CRPCtERVRM^rpEE7;^QaSAXnGk}1==IM6+jErWRpWB-=2AeTxGo&zB zG9)pWFeCz5$v|uXglP=MKnUWQ0cDbbDoh!SfY=xo}sz6QEIYznuUe2nXy@lfq{v+WtxRaYMM!sS#qLTQnI0esYOak zvZ;aT=2Ict7+Idi?VLNgB`iST3a44)ra)1j3G1`|M!YLJJNZdifdW)eM*u1aQXTa; zcIl<<%xFuM|1gI(v$WH>wCo?1h$s{0c2vlPV)Rh8+$v_s6H+gNeDXTey P9)rO|MXAk$TM30 delta 300 zcmZqJ!`QHgaY6^nc8}eUHueOWGYV|JZ*D3qa7o~L^oA}IzYc)|e`j9j{jgcZJCD=C zOwWLU!Gw`P-$2h;&(KUe#WKkxF(o<0z#z@oI61}4B-zr`$kg1-%s3^ zzfZhzHj~%PtzXt~%Y3@Cc?SP$MhkO20|o{YMh1NYJ!3sXb8Vy4Wb-r&3u7~5vlIgZ z6LZTn3zO6|lO(g`M6;x1LjzNbl$2ys1JlX71vOcwY(DpO@(aNL0n6+ECy3r`_Gs~A z>B(Fx_GGe$P@V!z&;=?8R9zZ#mM8q}@&A9S>#n}od`)NvBc~t(GuY9Bo2QGUGcuZQ z{x2HM7;Mg<&0xfk%8<-p&XC4n0ffd3W?-DcU;uTW l+7PJ56sRi&2$O*)!f81(P;8+K}{A-PtIkNUkC;WER0zs7x?&}!;V{p zJJi*acTe^Z%2R*}ZukKe1gYM_6=}Y3e!{~Ri^p=CuL0F20L0{^K_APMn<#E z|3#x2gUuMU8B!Q58Il-G7!rZ3WFR&G!ZZeBAO!KufHKKI6{ZYEKx_`=n*n7~fI3Wp l;-+Ah5ko3a#stVqWH6e%R@{`;j6sjVV4|YbW=4tsi~#QuTK50| diff --git a/jackify/engine/Wabbajack.Services.OSIntegrated.dll b/jackify/engine/Wabbajack.Services.OSIntegrated.dll index 992edd2f48f6345fb6b6e2444b180ffd1bf75ab9..7714c9af9a7725f22acc96e5f695ee0369169f69 100644 GIT binary patch delta 5747 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 delta 5799 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 diff --git a/jackify/engine/Wabbajack.VFS.Interfaces.dll b/jackify/engine/Wabbajack.VFS.Interfaces.dll index 10b66463bc111d601465fd69a4d816fee8af9024..2047b87dcdfe765920fcd391ed5fb655ad1b12d4 100644 GIT binary patch delta 324 zcmZqBXwaC@!BTK~f5*n2Kg^7RlRH^dMFkmPz>NvQVrCHBe3(U+S>WyaZWA^gW!K&7 zs(09i$d^q1!2Z(0T+e`k!Gw`P-$2h;&(K`kC^gwU&BDUi%-Af&z`(@ZGR?vyHO(Z+ zEIH9EDcR7#)FLG%+0?*vvLL52%a@ji_a<9#1_;DzZnRwKcE@$jv&a*PxyQdxp21nB z02K_CfeM0DS8T|xx4a@eU$*YtmCbrw2~3=V49sA63T~dxQ_jd}zL}q|m@(L#L7Tyd zA(bJS!JHwD!2$@48O*>qg~0#_O@QK-U>Osjsx%-!2`Hb;kO(A`fV3e{jVVx93J@j( cSwP<8tNf;{<_vla2Ac&1J}_?nFUZIQ0K~#s7ytkO delta 324 zcmZqBXwaC@!SdW>>*tL%^iV85mfEyEp#mpeE`7nztvp{P2lIt_%k~|j9 zzU1ic(;+qa1N%!0Gd%+a1`|dGeFHsXJwr3?6w4%&#FXR|1A{bUB%@Sw6VpVa$%359EEzK;e@(XF3=lY%du-XVZHs&tE%<7=W|`*i$ul_1 z6rh5Clc0hi)q*Vy`wFY)318V@d}y;CR{|5K00T4FodTPu^OQ3(nr-IiD`pHfW6)+u zVX$OKVlZJy1hSHW*Z>IA7>t1s#4`iRBm-5LG8h4|IgoD#lt}^VFa?U6f>}lksX!SM eATN=@X!2ElQ&uwuJqCl#f&w2HH~$x8WC8%{`dVH9 diff --git a/jackify/engine/Wabbajack.VFS.dll b/jackify/engine/Wabbajack.VFS.dll index 2a687812ad1a0b2a50f6b3220bd436ee81a178d2..11e1f4fa03df5740b4b4ed5cbf2ff8cf54957542 100644 GIT binary patch delta 383 zcmZqp!QAkJc|r$^w&Cti8++c(W)z%UJx3KtE}SDQD#!o>$ubZYGlSsdlXKL8@*n32 z14-7o>PV_2q!Fqd=UM~hYv=ki3T{3-SKm;;lC|--YQlZzeMuawD_g^AH}jm=mbWn1 zGhkpaVPw!Z&@`0{(R}m$@7j#P<_y{lMhvM8$qeQUX$%%X zXv|;+#wiR2KxhIKw*Fx>A5J8OQ?iCdd9XWi@Be QV=$O3_$zBO0*Ut546xe)ruD+qbnRep`8TaQn&3!Uk#7yDJrOiC&wdF0$ z^b8mnOc)vT4fKrl49&DtER#$UQ<75*4AP8^lT*x0k}XY*OwG;Aj8l?KlTA~Sj8e@_ zOcRYZ=f7iQV@cof{o~}4F98BioD_?HxiqkyL)}sY;)l)ya1& zN{;p&P-gJ;5ZN5^)ryf*fPoq8YJttuzqvCqnr*)SU7Io3j6s_rg~5^`iNS;+5y(mg zVgn#dV=x9n5YG%KlMGa0%3uV<=0Ls~P$mVa!xSiP3T7EGqylA3fV@Noqsg&9O diff --git a/jackify/engine/jackify-engine.deps.json b/jackify/engine/jackify-engine.deps.json index d004f47..ce64396 100644 --- a/jackify/engine/jackify-engine.deps.json +++ b/jackify/engine/jackify-engine.deps.json @@ -7,7 +7,7 @@ "targets": { ".NETCoreApp,Version=v8.0": {}, ".NETCoreApp,Version=v8.0/linux-x64": { - "jackify-engine/0.3.16": { + "jackify-engine/0.3.17": { "dependencies": { "Markdig": "0.40.0", "Microsoft.Extensions.Configuration.Json": "9.0.1", @@ -22,16 +22,16 @@ "SixLabors.ImageSharp": "3.1.6", "System.CommandLine": "2.0.0-beta4.22272.1", "System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1", - "Wabbajack.CLI.Builder": "0.3.16", - "Wabbajack.Downloaders.Bethesda": "0.3.16", - "Wabbajack.Downloaders.Dispatcher": "0.3.16", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Networking.Discord": "0.3.16", - "Wabbajack.Networking.GitHub": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16", - "Wabbajack.Server.Lib": "0.3.16", - "Wabbajack.Services.OSIntegrated": "0.3.16", - "Wabbajack.VFS": "0.3.16", + "Wabbajack.CLI.Builder": "0.3.17", + "Wabbajack.Downloaders.Bethesda": "0.3.17", + "Wabbajack.Downloaders.Dispatcher": "0.3.17", + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Networking.Discord": "0.3.17", + "Wabbajack.Networking.GitHub": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17", + "Wabbajack.Server.Lib": "0.3.17", + "Wabbajack.Services.OSIntegrated": "0.3.17", + "Wabbajack.VFS": "0.3.17", "MegaApiClient": "1.0.0.0", "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "8.0.19" }, @@ -1781,7 +1781,7 @@ } } }, - "Wabbajack.CLI.Builder/0.3.16": { + "Wabbajack.CLI.Builder/0.3.17": { "dependencies": { "Microsoft.Extensions.Configuration.Json": "9.0.1", "Microsoft.Extensions.DependencyInjection": "9.0.1", @@ -1791,109 +1791,109 @@ "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "System.CommandLine": "2.0.0-beta4.22272.1", "System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1", - "Wabbajack.Paths": "0.3.16" + "Wabbajack.Paths": "0.3.17" }, "runtime": { "Wabbajack.CLI.Builder.dll": {} } }, - "Wabbajack.Common/0.3.16": { + "Wabbajack.Common/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "System.Reactive": "6.0.1", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Common.dll": {} } }, - "Wabbajack.Compiler/0.3.16": { + "Wabbajack.Compiler/0.3.17": { "dependencies": { "F23.StringSimilarity": "6.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Dispatcher": "0.3.16", - "Wabbajack.Installer": "0.3.16", - "Wabbajack.VFS": "0.3.16", + "Wabbajack.Downloaders.Dispatcher": "0.3.17", + "Wabbajack.Installer": "0.3.17", + "Wabbajack.VFS": "0.3.17", "ini-parser-netstandard": "2.5.2" }, "runtime": { "Wabbajack.Compiler.dll": {} } }, - "Wabbajack.Compression.BSA/0.3.16": { + "Wabbajack.Compression.BSA/0.3.17": { "dependencies": { "K4os.Compression.LZ4.Streams": "1.3.8", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SharpZipLib": "1.4.2", - "Wabbajack.Common": "0.3.16", - "Wabbajack.DTOs": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.DTOs": "0.3.17" }, "runtime": { "Wabbajack.Compression.BSA.dll": {} } }, - "Wabbajack.Compression.Zip/0.3.16": { + "Wabbajack.Compression.Zip/0.3.17": { "dependencies": { - "Wabbajack.IO.Async": "0.3.16" + "Wabbajack.IO.Async": "0.3.17" }, "runtime": { "Wabbajack.Compression.Zip.dll": {} } }, - "Wabbajack.Configuration/0.3.16": { + "Wabbajack.Configuration/0.3.17": { "runtime": { "Wabbajack.Configuration.dll": {} } }, - "Wabbajack.Downloaders.Bethesda/0.3.16": { + "Wabbajack.Downloaders.Bethesda/0.3.17": { "dependencies": { "LibAES-CTR": "1.1.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SharpZipLib": "1.4.2", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.BethesdaNet": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.BethesdaNet": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Bethesda.dll": {} } }, - "Wabbajack.Downloaders.Dispatcher/0.3.16": { + "Wabbajack.Downloaders.Dispatcher/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Bethesda": "0.3.16", - "Wabbajack.Downloaders.GameFile": "0.3.16", - "Wabbajack.Downloaders.GoogleDrive": "0.3.16", - "Wabbajack.Downloaders.Http": "0.3.16", - "Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Downloaders.Manual": "0.3.16", - "Wabbajack.Downloaders.MediaFire": "0.3.16", - "Wabbajack.Downloaders.Mega": "0.3.16", - "Wabbajack.Downloaders.ModDB": "0.3.16", - "Wabbajack.Downloaders.Nexus": "0.3.16", - "Wabbajack.Downloaders.VerificationCache": "0.3.16", - "Wabbajack.Downloaders.WabbajackCDN": "0.3.16", - "Wabbajack.Networking.WabbajackClientApi": "0.3.16" + "Wabbajack.Downloaders.Bethesda": "0.3.17", + "Wabbajack.Downloaders.GameFile": "0.3.17", + "Wabbajack.Downloaders.GoogleDrive": "0.3.17", + "Wabbajack.Downloaders.Http": "0.3.17", + "Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Downloaders.Manual": "0.3.17", + "Wabbajack.Downloaders.MediaFire": "0.3.17", + "Wabbajack.Downloaders.Mega": "0.3.17", + "Wabbajack.Downloaders.ModDB": "0.3.17", + "Wabbajack.Downloaders.Nexus": "0.3.17", + "Wabbajack.Downloaders.VerificationCache": "0.3.17", + "Wabbajack.Downloaders.WabbajackCDN": "0.3.17", + "Wabbajack.Networking.WabbajackClientApi": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Dispatcher.dll": {} } }, - "Wabbajack.Downloaders.GameFile/0.3.16": { + "Wabbajack.Downloaders.GameFile/0.3.17": { "dependencies": { "GameFinder.StoreHandlers.EADesktop": "4.5.0", "GameFinder.StoreHandlers.EGS": "4.5.0", @@ -1903,360 +1903,360 @@ "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.VFS": "0.3.16" + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.VFS": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.GameFile.dll": {} } }, - "Wabbajack.Downloaders.GoogleDrive/0.3.16": { + "Wabbajack.Downloaders.GoogleDrive/0.3.17": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.AspNetCore.Http.Extensions": "2.3.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.GoogleDrive.dll": {} } }, - "Wabbajack.Downloaders.Http/0.3.16": { + "Wabbajack.Downloaders.Http/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.BethesdaNet": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.BethesdaNet": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Http.dll": {} } }, - "Wabbajack.Downloaders.Interfaces/0.3.16": { + "Wabbajack.Downloaders.Interfaces/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.Compression.Zip": "0.3.16", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.Compression.Zip": "0.3.17", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Interfaces.dll": {} } }, - "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.16": { + "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.17": { "dependencies": { "F23.StringSimilarity": "6.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.IPS4OAuth2Downloader.dll": {} } }, - "Wabbajack.Downloaders.Manual/0.3.16": { + "Wabbajack.Downloaders.Manual/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Manual.dll": {} } }, - "Wabbajack.Downloaders.MediaFire/0.3.16": { + "Wabbajack.Downloaders.MediaFire/0.3.17": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.MediaFire.dll": {} } }, - "Wabbajack.Downloaders.Mega/0.3.16": { + "Wabbajack.Downloaders.Mega/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Mega.dll": {} } }, - "Wabbajack.Downloaders.ModDB/0.3.16": { + "Wabbajack.Downloaders.ModDB/0.3.17": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.ModDB.dll": {} } }, - "Wabbajack.Downloaders.Nexus/0.3.16": { + "Wabbajack.Downloaders.Nexus/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16", - "Wabbajack.Networking.NexusApi": "0.3.16", - "Wabbajack.Paths": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17", + "Wabbajack.Networking.NexusApi": "0.3.17", + "Wabbajack.Paths": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.Nexus.dll": {} } }, - "Wabbajack.Downloaders.VerificationCache/0.3.16": { + "Wabbajack.Downloaders.VerificationCache/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Stub.System.Data.SQLite.Core.NetStandard": "1.0.119", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.VerificationCache.dll": {} } }, - "Wabbajack.Downloaders.WabbajackCDN/0.3.16": { + "Wabbajack.Downloaders.WabbajackCDN/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Microsoft.Toolkit.HighPerformance": "7.1.2", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.RateLimiter": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.RateLimiter": "0.3.17" }, "runtime": { "Wabbajack.Downloaders.WabbajackCDN.dll": {} } }, - "Wabbajack.DTOs/0.3.16": { + "Wabbajack.DTOs/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Paths": "0.3.16" + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Paths": "0.3.17" }, "runtime": { "Wabbajack.DTOs.dll": {} } }, - "Wabbajack.FileExtractor/0.3.16": { + "Wabbajack.FileExtractor/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "OMODFramework": "3.0.1", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Compression.BSA": "0.3.16", - "Wabbajack.Hashing.PHash": "0.3.16", - "Wabbajack.Paths": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Compression.BSA": "0.3.17", + "Wabbajack.Hashing.PHash": "0.3.17", + "Wabbajack.Paths": "0.3.17" }, "runtime": { "Wabbajack.FileExtractor.dll": {} } }, - "Wabbajack.Hashing.PHash/0.3.16": { + "Wabbajack.Hashing.PHash/0.3.17": { "dependencies": { "BCnEncoder.Net.ImageSharp": "1.1.1", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Shipwreck.Phash": "0.5.0", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Common": "0.3.16", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Paths": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Paths": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Hashing.PHash.dll": {} } }, - "Wabbajack.Hashing.xxHash64/0.3.16": { + "Wabbajack.Hashing.xxHash64/0.3.17": { "dependencies": { - "Wabbajack.Paths": "0.3.16", - "Wabbajack.RateLimiter": "0.3.16" + "Wabbajack.Paths": "0.3.17", + "Wabbajack.RateLimiter": "0.3.17" }, "runtime": { "Wabbajack.Hashing.xxHash64.dll": {} } }, - "Wabbajack.Installer/0.3.16": { + "Wabbajack.Installer/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "Octopus.Octodiff": "2.0.548", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Downloaders.Dispatcher": "0.3.16", - "Wabbajack.Downloaders.GameFile": "0.3.16", - "Wabbajack.FileExtractor": "0.3.16", - "Wabbajack.Networking.WabbajackClientApi": "0.3.16", - "Wabbajack.Paths": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16", - "Wabbajack.VFS": "0.3.16", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Downloaders.Dispatcher": "0.3.17", + "Wabbajack.Downloaders.GameFile": "0.3.17", + "Wabbajack.FileExtractor": "0.3.17", + "Wabbajack.Networking.WabbajackClientApi": "0.3.17", + "Wabbajack.Paths": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17", + "Wabbajack.VFS": "0.3.17", "ini-parser-netstandard": "2.5.2" }, "runtime": { "Wabbajack.Installer.dll": {} } }, - "Wabbajack.IO.Async/0.3.16": { + "Wabbajack.IO.Async/0.3.17": { "runtime": { "Wabbajack.IO.Async.dll": {} } }, - "Wabbajack.Networking.BethesdaNet/0.3.16": { + "Wabbajack.Networking.BethesdaNet/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Networking.BethesdaNet.dll": {} } }, - "Wabbajack.Networking.Discord/0.3.16": { + "Wabbajack.Networking.Discord/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Networking.Discord.dll": {} } }, - "Wabbajack.Networking.GitHub/0.3.16": { + "Wabbajack.Networking.GitHub/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Octokit": "14.0.0", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.Networking.GitHub.dll": {} } }, - "Wabbajack.Networking.Http/0.3.16": { + "Wabbajack.Networking.Http/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Http": "9.0.1", "Microsoft.Extensions.Logging": "9.0.1", - "Wabbajack.Configuration": "0.3.16", - "Wabbajack.Downloaders.Interfaces": "0.3.16", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16", - "Wabbajack.Paths": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16" + "Wabbajack.Configuration": "0.3.17", + "Wabbajack.Downloaders.Interfaces": "0.3.17", + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17", + "Wabbajack.Paths": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17" }, "runtime": { "Wabbajack.Networking.Http.dll": {} } }, - "Wabbajack.Networking.Http.Interfaces/0.3.16": { + "Wabbajack.Networking.Http.Interfaces/0.3.17": { "dependencies": { - "Wabbajack.Hashing.xxHash64": "0.3.16" + "Wabbajack.Hashing.xxHash64": "0.3.17" }, "runtime": { "Wabbajack.Networking.Http.Interfaces.dll": {} } }, - "Wabbajack.Networking.NexusApi/0.3.16": { + "Wabbajack.Networking.NexusApi/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Networking.Http": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16", - "Wabbajack.Networking.WabbajackClientApi": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Networking.Http": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17", + "Wabbajack.Networking.WabbajackClientApi": "0.3.17" }, "runtime": { "Wabbajack.Networking.NexusApi.dll": {} } }, - "Wabbajack.Networking.WabbajackClientApi/0.3.16": { + "Wabbajack.Networking.WabbajackClientApi/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Octokit": "14.0.0", - "Wabbajack.Common": "0.3.16", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16", - "Wabbajack.VFS.Interfaces": "0.3.16", + "Wabbajack.Common": "0.3.17", + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17", + "Wabbajack.VFS.Interfaces": "0.3.17", "YamlDotNet": "16.3.0" }, "runtime": { "Wabbajack.Networking.WabbajackClientApi.dll": {} } }, - "Wabbajack.Paths/0.3.16": { + "Wabbajack.Paths/0.3.17": { "runtime": { "Wabbajack.Paths.dll": {} } }, - "Wabbajack.Paths.IO/0.3.16": { + "Wabbajack.Paths.IO/0.3.17": { "dependencies": { - "Wabbajack.Paths": "0.3.16", + "Wabbajack.Paths": "0.3.17", "shortid": "4.0.0" }, "runtime": { "Wabbajack.Paths.IO.dll": {} } }, - "Wabbajack.RateLimiter/0.3.16": { + "Wabbajack.RateLimiter/0.3.17": { "runtime": { "Wabbajack.RateLimiter.dll": {} } }, - "Wabbajack.Server.Lib/0.3.16": { + "Wabbajack.Server.Lib/0.3.17": { "dependencies": { "FluentFTP": "52.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", @@ -2264,58 +2264,58 @@ "Nettle": "3.0.0", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Common": "0.3.16", - "Wabbajack.Networking.Http.Interfaces": "0.3.16", - "Wabbajack.Services.OSIntegrated": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.Networking.Http.Interfaces": "0.3.17", + "Wabbajack.Services.OSIntegrated": "0.3.17" }, "runtime": { "Wabbajack.Server.Lib.dll": {} } }, - "Wabbajack.Services.OSIntegrated/0.3.16": { + "Wabbajack.Services.OSIntegrated/0.3.17": { "dependencies": { "DeviceId": "6.8.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Compiler": "0.3.16", - "Wabbajack.Downloaders.Dispatcher": "0.3.16", - "Wabbajack.Installer": "0.3.16", - "Wabbajack.Networking.BethesdaNet": "0.3.16", - "Wabbajack.Networking.Discord": "0.3.16", - "Wabbajack.VFS": "0.3.16" + "Wabbajack.Compiler": "0.3.17", + "Wabbajack.Downloaders.Dispatcher": "0.3.17", + "Wabbajack.Installer": "0.3.17", + "Wabbajack.Networking.BethesdaNet": "0.3.17", + "Wabbajack.Networking.Discord": "0.3.17", + "Wabbajack.VFS": "0.3.17" }, "runtime": { "Wabbajack.Services.OSIntegrated.dll": {} } }, - "Wabbajack.VFS/0.3.16": { + "Wabbajack.VFS/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "SixLabors.ImageSharp": "3.1.6", "System.Data.SQLite.Core": "1.0.119", - "Wabbajack.Common": "0.3.16", - "Wabbajack.FileExtractor": "0.3.16", - "Wabbajack.Hashing.PHash": "0.3.16", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Paths": "0.3.16", - "Wabbajack.Paths.IO": "0.3.16", - "Wabbajack.VFS.Interfaces": "0.3.16" + "Wabbajack.Common": "0.3.17", + "Wabbajack.FileExtractor": "0.3.17", + "Wabbajack.Hashing.PHash": "0.3.17", + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Paths": "0.3.17", + "Wabbajack.Paths.IO": "0.3.17", + "Wabbajack.VFS.Interfaces": "0.3.17" }, "runtime": { "Wabbajack.VFS.dll": {} } }, - "Wabbajack.VFS.Interfaces/0.3.16": { + "Wabbajack.VFS.Interfaces/0.3.17": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.16", - "Wabbajack.Hashing.xxHash64": "0.3.16", - "Wabbajack.Paths": "0.3.16" + "Wabbajack.DTOs": "0.3.17", + "Wabbajack.Hashing.xxHash64": "0.3.17", + "Wabbajack.Paths": "0.3.17" }, "runtime": { "Wabbajack.VFS.Interfaces.dll": {} @@ -2332,7 +2332,7 @@ } }, "libraries": { - "jackify-engine/0.3.16": { + "jackify-engine/0.3.17": { "type": "project", "serviceable": false, "sha512": "" @@ -3021,202 +3021,202 @@ "path": "yamldotnet/16.3.0", "hashPath": "yamldotnet.16.3.0.nupkg.sha512" }, - "Wabbajack.CLI.Builder/0.3.16": { + "Wabbajack.CLI.Builder/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Common/0.3.16": { + "Wabbajack.Common/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compiler/0.3.16": { + "Wabbajack.Compiler/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compression.BSA/0.3.16": { + "Wabbajack.Compression.BSA/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compression.Zip/0.3.16": { + "Wabbajack.Compression.Zip/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Configuration/0.3.16": { + "Wabbajack.Configuration/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Bethesda/0.3.16": { + "Wabbajack.Downloaders.Bethesda/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Dispatcher/0.3.16": { + "Wabbajack.Downloaders.Dispatcher/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.GameFile/0.3.16": { + "Wabbajack.Downloaders.GameFile/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.GoogleDrive/0.3.16": { + "Wabbajack.Downloaders.GoogleDrive/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Http/0.3.16": { + "Wabbajack.Downloaders.Http/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Interfaces/0.3.16": { + "Wabbajack.Downloaders.Interfaces/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.16": { + "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Manual/0.3.16": { + "Wabbajack.Downloaders.Manual/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.MediaFire/0.3.16": { + "Wabbajack.Downloaders.MediaFire/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Mega/0.3.16": { + "Wabbajack.Downloaders.Mega/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.ModDB/0.3.16": { + "Wabbajack.Downloaders.ModDB/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Nexus/0.3.16": { + "Wabbajack.Downloaders.Nexus/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.VerificationCache/0.3.16": { + "Wabbajack.Downloaders.VerificationCache/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.WabbajackCDN/0.3.16": { + "Wabbajack.Downloaders.WabbajackCDN/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.DTOs/0.3.16": { + "Wabbajack.DTOs/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.FileExtractor/0.3.16": { + "Wabbajack.FileExtractor/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Hashing.PHash/0.3.16": { + "Wabbajack.Hashing.PHash/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Hashing.xxHash64/0.3.16": { + "Wabbajack.Hashing.xxHash64/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Installer/0.3.16": { + "Wabbajack.Installer/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.IO.Async/0.3.16": { + "Wabbajack.IO.Async/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.BethesdaNet/0.3.16": { + "Wabbajack.Networking.BethesdaNet/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Discord/0.3.16": { + "Wabbajack.Networking.Discord/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.GitHub/0.3.16": { + "Wabbajack.Networking.GitHub/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Http/0.3.16": { + "Wabbajack.Networking.Http/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Http.Interfaces/0.3.16": { + "Wabbajack.Networking.Http.Interfaces/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.NexusApi/0.3.16": { + "Wabbajack.Networking.NexusApi/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.WabbajackClientApi/0.3.16": { + "Wabbajack.Networking.WabbajackClientApi/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Paths/0.3.16": { + "Wabbajack.Paths/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Paths.IO/0.3.16": { + "Wabbajack.Paths.IO/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.RateLimiter/0.3.16": { + "Wabbajack.RateLimiter/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Server.Lib/0.3.16": { + "Wabbajack.Server.Lib/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Services.OSIntegrated/0.3.16": { + "Wabbajack.Services.OSIntegrated/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.VFS/0.3.16": { + "Wabbajack.VFS/0.3.17": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.VFS.Interfaces/0.3.16": { + "Wabbajack.VFS.Interfaces/0.3.17": { "type": "project", "serviceable": false, "sha512": "" diff --git a/jackify/engine/jackify-engine.dll b/jackify/engine/jackify-engine.dll index 8966d15d79bf36787d1c0fb78a91dc81d91f5461..bc0e2a90d20f72b057652e4085810a3ecb9990c5 100644 GIT binary patch delta 73693 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 delta 74665 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 Rvf&6WwSzj2ACWB5{{=tLX~qBm diff --git a/jackify/frontends/gui/dialogs/update_dialog.py b/jackify/frontends/gui/dialogs/update_dialog.py index ab38f98..3606bc1 100644 --- a/jackify/frontends/gui/dialogs/update_dialog.py +++ b/jackify/frontends/gui/dialogs/update_dialog.py @@ -256,18 +256,24 @@ class UpdateDialog(QDialog): self.downloaded_path = downloaded_path self.progress_label.setText("Download completed successfully!") self.progress_bar.setValue(100) - - # Show install button - self.download_button.setVisible(False) - self.install_button.setVisible(True) - - # Re-enable other buttons - self.later_button.setEnabled(True) - self.skip_button.setEnabled(True) - + + # Check if auto-restart is enabled + if self.auto_restart_checkbox.isChecked(): + # Auto-install immediately + self.progress_label.setText("Auto-installing update...") + self.install_update() + else: + # Show install button for manual installation + self.download_button.setVisible(False) + self.install_button.setVisible(True) + + # Re-enable other buttons + self.later_button.setEnabled(True) + self.skip_button.setEnabled(True) + else: self.show_error("Download Failed", "Failed to download the update. Please try again later.") - + # Reset UI self.progress_group.setVisible(False) self.download_button.setEnabled(True) diff --git a/jackify/frontends/gui/main.py b/jackify/frontends/gui/main.py index fd61821..4cdb6ca 100644 --- a/jackify/frontends/gui/main.py +++ b/jackify/frontends/gui/main.py @@ -303,29 +303,50 @@ class SettingsDialog(QDialog): general_layout.addWidget(api_group) general_layout.addSpacing(12) - # --- Default Proton Version Section --- - proton_group = QGroupBox("Default Proton Version") + # --- Proton Version Settings Section --- + proton_group = QGroupBox("Proton Version Settings") proton_group.setStyleSheet("QGroupBox { border: 1px solid #555; border-radius: 6px; margin-top: 8px; padding: 8px; background: #23282d; } QGroupBox:title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; font-weight: bold; color: #fff; }") - proton_layout = QHBoxLayout() + proton_layout = QVBoxLayout() proton_group.setLayout(proton_layout) - self.proton_dropdown = QComboBox() - self.proton_dropdown.setToolTip("Select default Proton version for shortcut creation and texture processing") - self.proton_dropdown.setMinimumWidth(200) + # Install Proton Version (for jackify-engine texture processing) + install_proton_layout = QHBoxLayout() + self.install_proton_dropdown = QComboBox() + self.install_proton_dropdown.setToolTip("Proton version for modlist installation and texture processing (requires fast Proton)") + self.install_proton_dropdown.setMinimumWidth(200) - # Populate Proton dropdown - self._populate_proton_dropdown() + install_refresh_btn = QPushButton("↻") + install_refresh_btn.setFixedSize(30, 30) + install_refresh_btn.setToolTip("Refresh install Proton version list") + install_refresh_btn.clicked.connect(self._refresh_install_proton_dropdown) - # Refresh button for Proton detection - refresh_btn = QPushButton("↻") - refresh_btn.setFixedSize(30, 30) - refresh_btn.setToolTip("Refresh Proton version list") - refresh_btn.clicked.connect(self._refresh_proton_dropdown) + install_proton_layout.addWidget(QLabel("Install Proton:")) + install_proton_layout.addWidget(self.install_proton_dropdown) + install_proton_layout.addWidget(install_refresh_btn) + install_proton_layout.addStretch() - proton_layout.addWidget(QLabel("Proton Version:")) - proton_layout.addWidget(self.proton_dropdown) - proton_layout.addWidget(refresh_btn) - proton_layout.addStretch() + # Game Proton Version (for game shortcuts) + game_proton_layout = QHBoxLayout() + self.game_proton_dropdown = QComboBox() + self.game_proton_dropdown.setToolTip("Proton version for game shortcuts (can be any Proton 9+)") + self.game_proton_dropdown.setMinimumWidth(200) + + game_refresh_btn = QPushButton("↻") + game_refresh_btn.setFixedSize(30, 30) + game_refresh_btn.setToolTip("Refresh game Proton version list") + game_refresh_btn.clicked.connect(self._refresh_game_proton_dropdown) + + game_proton_layout.addWidget(QLabel("Game Proton:")) + game_proton_layout.addWidget(self.game_proton_dropdown) + game_proton_layout.addWidget(game_refresh_btn) + game_proton_layout.addStretch() + + proton_layout.addLayout(install_proton_layout) + proton_layout.addLayout(game_proton_layout) + + # Populate both Proton dropdowns + self._populate_install_proton_dropdown() + self._populate_game_proton_dropdown() general_layout.addWidget(proton_group) general_layout.addSpacing(12) @@ -416,6 +437,22 @@ class SettingsDialog(QDialog): self.bandwidth_spin = None # No bandwidth UI if Downloads resource doesn't exist advanced_layout.addWidget(resource_group) + + # Component Installation Method Section + component_group = QGroupBox("Component Installation") + component_group.setStyleSheet("QGroupBox { border: 1px solid #555; border-radius: 6px; margin-top: 8px; padding: 8px; background: #23282d; } QGroupBox:title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; font-weight: bold; color: #fff; }") + component_layout = QVBoxLayout() + component_group.setLayout(component_layout) + + self.use_winetricks_checkbox = QCheckBox("Use winetricks for component installation (faster)") + self.use_winetricks_checkbox.setChecked(self.config_handler.get('use_winetricks_for_components', True)) + self.use_winetricks_checkbox.setToolTip( + "When enabled: Uses winetricks for most components (faster) and protontricks only for dotnet40 (more reliable).\n" + "When disabled: Uses protontricks for all components (legacy behavior, slower but more compatible)." + ) + component_layout.addWidget(self.use_winetricks_checkbox) + + advanced_layout.addWidget(component_group) advanced_layout.addStretch() # Add stretch to push content to top self.tab_widget.addTab(advanced_tab, "Advanced") @@ -488,167 +525,250 @@ class SettingsDialog(QDialog): except: return 'auto' - def _populate_proton_dropdown(self): - """Populate Proton version dropdown with detected versions (includes GE-Proton and Valve Proton)""" + def _populate_install_proton_dropdown(self): + """Populate Install Proton dropdown (Experimental/GE-Proton 10+ only for fast texture processing)""" try: from jackify.backend.handlers.wine_utils import WineUtils - # Get all available Proton versions (GE-Proton + Valve Proton) + # Get all available Proton versions available_protons = WineUtils.scan_all_proton_versions() # Add "Auto" option first - self.proton_dropdown.addItem("Auto", "auto") + self.install_proton_dropdown.addItem("Auto (Recommended)", "auto") + + # Filter for fast Proton versions only + fast_protons = [] + slow_protons = [] - # Add detected Proton versions with type indicators for proton in available_protons: proton_name = proton.get('name', 'Unknown Proton') proton_type = proton.get('type', 'Unknown') - # Format display name to show type for clarity + is_fast_proton = False + + # Fast Protons: Experimental, GE-Proton 10+ + if proton_name == "Proton - Experimental": + is_fast_proton = True + elif proton_type == 'GE-Proton': + # For GE-Proton, check major_version field + major_version = proton.get('major_version', 0) + if major_version >= 10: + is_fast_proton = True + + if is_fast_proton: + if proton_type == 'GE-Proton': + display_name = f"{proton_name} (GE)" + else: + display_name = proton_name + fast_protons.append((display_name, str(proton['path']))) + else: + # Slow Protons: Valve 9, 10 beta, older GE-Proton, etc. + if proton_type == 'GE-Proton': + display_name = f"{proton_name} (GE) (Slow texture processing)" + else: + display_name = f"{proton_name} (Slow texture processing)" + slow_protons.append((display_name, str(proton['path']))) + + # Add fast Protons first + for display_name, path in fast_protons: + self.install_proton_dropdown.addItem(display_name, path) + + # Add separator and slow Protons with warnings + if slow_protons: + self.install_proton_dropdown.insertSeparator(self.install_proton_dropdown.count()) + for display_name, path in slow_protons: + self.install_proton_dropdown.addItem(display_name, path) + + # Load saved preference + saved_proton = self.config_handler.get('proton_path', self._get_proton_10_path()) + self._set_dropdown_selection(self.install_proton_dropdown, saved_proton) + + except Exception as e: + logger.error(f"Failed to populate install Proton dropdown: {e}") + self.install_proton_dropdown.addItem("Auto (Recommended)", "auto") + + def _populate_game_proton_dropdown(self): + """Populate Game Proton dropdown (any Proton 9+ for game compatibility)""" + try: + from jackify.backend.handlers.wine_utils import WineUtils + + # Get all available Proton versions + available_protons = WineUtils.scan_all_proton_versions() + + # Add "Same as Install" option first + self.game_proton_dropdown.addItem("Same as Install Proton", "same_as_install") + + # Add all Proton 9+ versions + for proton in available_protons: + proton_name = proton.get('name', 'Unknown Proton') + proton_type = proton.get('type', 'Unknown') + + # Add type indicator for clarity if proton_type == 'GE-Proton': display_name = f"{proton_name} (GE)" - elif proton_type == 'Valve-Proton': - display_name = f"{proton_name}" else: display_name = proton_name - self.proton_dropdown.addItem(display_name, str(proton['path'])) + self.game_proton_dropdown.addItem(display_name, str(proton['path'])) - # Load saved preference and determine UI selection - saved_proton = self.config_handler.get('proton_path', self._get_proton_10_path()) - - # Check if saved path matches any specific Proton in dropdown - found_match = False - for i in range(self.proton_dropdown.count()): - if self.proton_dropdown.itemData(i) == saved_proton: - self.proton_dropdown.setCurrentIndex(i) - found_match = True - break - - # If no exact match found, check if it's a resolved auto-selection - if not found_match and saved_proton != "auto": - # This means config has a resolved path from previous "Auto" selection - # Show "Auto" in UI since user chose auto-detection - for i in range(self.proton_dropdown.count()): - if self.proton_dropdown.itemData(i) == "auto": - self.proton_dropdown.setCurrentIndex(i) - break + # Load saved preference + saved_game_proton = self.config_handler.get('game_proton_path', 'same_as_install') + self._set_dropdown_selection(self.game_proton_dropdown, saved_game_proton) except Exception as e: - logger.error(f"Failed to populate Proton dropdown: {e}") - # Fallback: just show auto - self.proton_dropdown.addItem("Auto", "auto") + logger.error(f"Failed to populate game Proton dropdown: {e}") + self.game_proton_dropdown.addItem("Same as Install Proton", "same_as_install") - def _refresh_proton_dropdown(self): - """Refresh Proton dropdown with latest detected versions""" - current_selection = self.proton_dropdown.currentData() - self.proton_dropdown.clear() - self._populate_proton_dropdown() - - # Restore selection if still available - for i in range(self.proton_dropdown.count()): - if self.proton_dropdown.itemData(i) == current_selection: - self.proton_dropdown.setCurrentIndex(i) + def _set_dropdown_selection(self, dropdown, saved_value): + """Helper to set dropdown selection based on saved value""" + found_match = False + for i in range(dropdown.count()): + if dropdown.itemData(i) == saved_value: + dropdown.setCurrentIndex(i) + found_match = True break + # If no exact match and not auto/same_as_install, select first option + if not found_match and saved_value not in ["auto", "same_as_install"]: + dropdown.setCurrentIndex(0) + + def _refresh_install_proton_dropdown(self): + """Refresh Install Proton dropdown""" + current_selection = self.install_proton_dropdown.currentData() + self.install_proton_dropdown.clear() + self._populate_install_proton_dropdown() + self._set_dropdown_selection(self.install_proton_dropdown, current_selection) + + def _refresh_game_proton_dropdown(self): + """Refresh Game Proton dropdown""" + current_selection = self.game_proton_dropdown.currentData() + self.game_proton_dropdown.clear() + self._populate_game_proton_dropdown() + self._set_dropdown_selection(self.game_proton_dropdown, current_selection) + def _save(self): - # Validate values - for k, (multithreading_checkbox, max_tasks_spin) in self.resource_edits.items(): - if max_tasks_spin.value() > 128: - self.error_label.setText(f"Invalid value for {k}: Max Tasks must be <= 128.") + try: + # Validate values (only if resource_edits exist) + for k, (multithreading_checkbox, max_tasks_spin) in self.resource_edits.items(): + if max_tasks_spin.value() > 128: + self.error_label.setText(f"Invalid value for {k}: Max Tasks must be <= 128.") + return + if self.bandwidth_spin and self.bandwidth_spin.value() > 1000000: + self.error_label.setText("Bandwidth limit must be <= 1,000,000 KB/s.") return - if self.bandwidth_spin and self.bandwidth_spin.value() > 1000000: - self.error_label.setText("Bandwidth limit must be <= 1,000,000 KB/s.") - return - self.error_label.setText("") - # Save resource settings - for k, (multithreading_checkbox, max_tasks_spin) in self.resource_edits.items(): - resource_data = self.resource_settings.get(k, {}) - resource_data['MaxTasks'] = max_tasks_spin.value() - self.resource_settings[k] = resource_data - - # Save bandwidth limit to Downloads resource MaxThroughput (only if bandwidth UI exists) - if self.bandwidth_spin: - if "Downloads" not in self.resource_settings: - self.resource_settings["Downloads"] = {"MaxTasks": 16} # Provide default MaxTasks - self.resource_settings["Downloads"]["MaxThroughput"] = self.bandwidth_spin.value() - - # Save all resource settings (including bandwidth) in one operation - self._save_json(self.resource_settings_path, self.resource_settings) - - # Save debug mode to config - self.config_handler.set('debug_mode', self.debug_checkbox.isChecked()) - # Save API key - api_key = self.api_key_edit.text().strip() - self.config_handler.save_api_key(api_key) - # Save modlist base dirs - self.config_handler.set("modlist_install_base_dir", self.install_dir_edit.text().strip()) - self.config_handler.set("modlist_downloads_base_dir", self.download_dir_edit.text().strip()) - # Save jackify data directory (always store actual path, never None) - jackify_data_dir = self.jackify_data_dir_edit.text().strip() - self.config_handler.set("jackify_data_dir", jackify_data_dir) + self.error_label.setText("") - # Save Proton selection - resolve "auto" to actual path - selected_proton_path = self.proton_dropdown.currentData() - if selected_proton_path == "auto": - # Resolve "auto" to actual best Proton path using unified detection - try: - from jackify.backend.handlers.wine_utils import WineUtils - best_proton = WineUtils.select_best_proton() + # Save resource settings + for k, (multithreading_checkbox, max_tasks_spin) in self.resource_edits.items(): + resource_data = self.resource_settings.get(k, {}) + resource_data['MaxTasks'] = max_tasks_spin.value() + self.resource_settings[k] = resource_data - if best_proton: - resolved_path = str(best_proton['path']) - resolved_version = best_proton['name'] - else: - resolved_path = "auto" - resolved_version = "auto" - except: - resolved_path = "auto" - resolved_version = "auto" - else: - # User selected specific Proton version - resolved_path = selected_proton_path - # Extract version from dropdown text - resolved_version = self.proton_dropdown.currentText() + # Save bandwidth limit to Downloads resource MaxThroughput (only if bandwidth UI exists) + if self.bandwidth_spin: + if "Downloads" not in self.resource_settings: + self.resource_settings["Downloads"] = {"MaxTasks": 16} # Provide default MaxTasks + self.resource_settings["Downloads"]["MaxThroughput"] = self.bandwidth_spin.value() - self.config_handler.set("proton_path", resolved_path) - self.config_handler.set("proton_version", resolved_version) + # Save all resource settings (including bandwidth) in one operation + self._save_json(self.resource_settings_path, self.resource_settings) - # Force immediate save and verify - save_result = self.config_handler.save_config() - if not save_result: - self.logger.error("Failed to save Proton configuration") - else: - self.logger.info(f"Saved Proton config: path={resolved_path}, version={resolved_version}") - # Verify the save worked by reading it back - saved_path = self.config_handler.get("proton_path") - if saved_path != resolved_path: - self.logger.error(f"Config save verification failed: expected {resolved_path}, got {saved_path}") + # Save debug mode to config + self.config_handler.set('debug_mode', self.debug_checkbox.isChecked()) + # Save API key + api_key = self.api_key_edit.text().strip() + self.config_handler.save_api_key(api_key) + # Save modlist base dirs + self.config_handler.set("modlist_install_base_dir", self.install_dir_edit.text().strip()) + self.config_handler.set("modlist_downloads_base_dir", self.download_dir_edit.text().strip()) + # Save jackify data directory (always store actual path, never None) + jackify_data_dir = self.jackify_data_dir_edit.text().strip() + self.config_handler.set("jackify_data_dir", jackify_data_dir) + + # Save Install Proton selection - resolve "auto" to actual path + selected_install_proton_path = self.install_proton_dropdown.currentData() + if selected_install_proton_path == "auto": + # Resolve "auto" to actual best Proton path using unified detection + try: + from jackify.backend.handlers.wine_utils import WineUtils + best_proton = WineUtils.select_best_proton() + + if best_proton: + resolved_install_path = str(best_proton['path']) + resolved_install_version = best_proton['name'] + else: + resolved_install_path = "auto" + resolved_install_version = "auto" + except: + resolved_install_path = "auto" + resolved_install_version = "auto" else: - self.logger.debug("Config save verified successfully") - - # Refresh cached paths in GUI screens if Jackify directory changed - self._refresh_gui_paths() - - # Check if debug mode changed and prompt for restart - new_debug_mode = self.debug_checkbox.isChecked() - if new_debug_mode != self._original_debug_mode: - reply = MessageService.question(self, "Restart Required", "Debug mode change requires a restart. Restart Jackify now?", safety_level="low") - if reply == QMessageBox.Yes: - import os, sys - # User requested restart - do it regardless of execution environment - self.accept() + # User selected specific Proton version + resolved_install_path = selected_install_proton_path + # Extract version from dropdown text + resolved_install_version = self.install_proton_dropdown.currentText() - # Check if running from AppImage - if os.environ.get('APPIMAGE'): - # AppImage: restart the AppImage - os.execv(os.environ['APPIMAGE'], [os.environ['APPIMAGE']] + sys.argv[1:]) + self.config_handler.set("proton_path", resolved_install_path) + self.config_handler.set("proton_version", resolved_install_version) + + # Save Game Proton selection + selected_game_proton_path = self.game_proton_dropdown.currentData() + if selected_game_proton_path == "same_as_install": + # Use same as install proton + resolved_game_path = resolved_install_path + resolved_game_version = resolved_install_version + else: + # User selected specific game Proton version + resolved_game_path = selected_game_proton_path + resolved_game_version = self.game_proton_dropdown.currentText() + + self.config_handler.set("game_proton_path", resolved_game_path) + self.config_handler.set("game_proton_version", resolved_game_version) + + # Save component installation method preference + self.config_handler.set("use_winetricks_for_components", self.use_winetricks_checkbox.isChecked()) + + # Force immediate save and verify + save_result = self.config_handler.save_config() + if not save_result: + self.logger.error("Failed to save Proton configuration") + else: + self.logger.info(f"Saved Proton config: install_path={resolved_install_path}, game_path={resolved_game_path}") + # Verify the save worked by reading it back + saved_path = self.config_handler.get("proton_path") + if saved_path != resolved_install_path: + self.logger.error(f"Config save verification failed: expected {resolved_install_path}, got {saved_path}") else: - # Dev mode: restart the Python module - os.execv(sys.executable, [sys.executable, '-m', 'jackify.frontends.gui'] + sys.argv[1:]) - return - MessageService.information(self, "Settings Saved", "Settings have been saved successfully.", safety_level="low") - self.accept() + self.logger.debug("Config save verified successfully") + + # Refresh cached paths in GUI screens if Jackify directory changed + self._refresh_gui_paths() + + # Check if debug mode changed and prompt for restart + new_debug_mode = self.debug_checkbox.isChecked() + if new_debug_mode != self._original_debug_mode: + reply = MessageService.question(self, "Restart Required", "Debug mode change requires a restart. Restart Jackify now?", safety_level="low") + if reply == QMessageBox.Yes: + import os, sys + # User requested restart - do it regardless of execution environment + self.accept() + + # Check if running from AppImage + if os.environ.get('APPIMAGE'): + # AppImage: restart the AppImage + os.execv(os.environ['APPIMAGE'], [os.environ['APPIMAGE']] + sys.argv[1:]) + else: + # Dev mode: restart the Python module + os.execv(sys.executable, [sys.executable, '-m', 'jackify.frontends.gui'] + sys.argv[1:]) + return + + # If we get here, no restart was needed + MessageService.information(self, "Settings Saved", "Settings have been saved successfully.", safety_level="low") + self.accept() + + except Exception as e: + self.logger.error(f"Error saving settings: {e}") + MessageService.warning(self, "Save Error", f"Failed to save settings: {e}", safety_level="medium") def _refresh_gui_paths(self): """Refresh cached paths in all GUI screens.""" diff --git a/jackify/frontends/gui/screens/configure_existing_modlist.py b/jackify/frontends/gui/screens/configure_existing_modlist.py index 6a1132b..6d65659 100644 --- a/jackify/frontends/gui/screens/configure_existing_modlist.py +++ b/jackify/frontends/gui/screens/configure_existing_modlist.py @@ -499,6 +499,7 @@ class ConfigureExistingModlistScreen(QWidget): # For existing modlists, add resolution if specified if self.resolution != "Leave unchanged": modlist_context.resolution = self.resolution.split()[0] + # Note: If "Leave unchanged" is selected, resolution stays None (no fallback needed) # Define callbacks def progress_callback(message): diff --git a/jackify/frontends/gui/screens/configure_new_modlist.py b/jackify/frontends/gui/screens/configure_new_modlist.py index b5e521b..b58a44d 100644 --- a/jackify/frontends/gui/screens/configure_new_modlist.py +++ b/jackify/frontends/gui/screens/configure_new_modlist.py @@ -1184,7 +1184,7 @@ class ConfigureNewModlistScreen(QWidget): nexus_api_key='', # Not needed for configuration modlist_value='', # Not needed for existing modlist modlist_source='existing', - resolution=self.context.get('resolution'), + resolution=self.context.get('resolution') or get_resolution_fallback(None), skip_confirmation=True ) diff --git a/jackify/frontends/gui/screens/install_modlist.py b/jackify/frontends/gui/screens/install_modlist.py index e6e674e..19fd5ae 100644 --- a/jackify/frontends/gui/screens/install_modlist.py +++ b/jackify/frontends/gui/screens/install_modlist.py @@ -1746,7 +1746,14 @@ class InstallModlistScreen(QWidget): # Save resolution for later use in configuration resolution = self.resolution_combo.currentText() - self._current_resolution = resolution.split()[0] if resolution != "Leave unchanged" else None + # Extract resolution properly (e.g., "1280x800" from "1280x800 (Steam Deck)") + if resolution != "Leave unchanged": + if " (" in resolution: + self._current_resolution = resolution.split(" (")[0] + else: + self._current_resolution = resolution + else: + self._current_resolution = None # Use automated prefix creation instead of manual steps debug_print("DEBUG: Starting automated prefix creation workflow") @@ -1760,7 +1767,14 @@ class InstallModlistScreen(QWidget): # Ensure _current_resolution is always set before starting workflow if not hasattr(self, '_current_resolution') or self._current_resolution is None: resolution = self.resolution_combo.currentText() if hasattr(self, 'resolution_combo') else None - self._current_resolution = resolution.split()[0] if resolution and resolution != "Leave unchanged" else None + # Extract resolution properly (e.g., "1280x800" from "1280x800 (Steam Deck)") + if resolution and resolution != "Leave unchanged": + if " (" in resolution: + self._current_resolution = resolution.split(" (")[0] + else: + self._current_resolution = resolution + else: + self._current_resolution = None """Start the automated prefix creation workflow""" try: # Disable controls during installation