From e52e1427f6c71265116762d9829592b6c7fff5f8 Mon Sep 17 00:00:00 2001 From: Omni Date: Sun, 15 Mar 2026 11:03:28 +0000 Subject: [PATCH] Sync from development - prepare for v0.5.0.2 --- CHANGELOG.md | 7 + jackify/__init__.py | 2 +- .../backend/handlers/modlist_configuration.py | 47 +- jackify/engine/Wabbajack.CLI.Builder.dll | Bin 24576 -> 24576 bytes jackify/engine/Wabbajack.Common.dll | Bin 205312 -> 205312 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 4096 -> 4096 bytes jackify/engine/Wabbajack.DTOs.dll | Bin 142336 -> 142336 bytes .../engine/Wabbajack.Downloaders.Bethesda.dll | Bin 18432 -> 18432 bytes .../Wabbajack.Downloaders.Dispatcher.dll | Bin 29184 -> 29184 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 8192 -> 8192 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 16896 -> 16896 bytes ...abbajack.Downloaders.VerificationCache.dll | Bin 13824 -> 13824 bytes .../Wabbajack.Downloaders.WabbajackCDN.dll | Bin 24576 -> 24576 bytes jackify/engine/Wabbajack.FileExtractor.dll | Bin 79872 -> 79872 bytes jackify/engine/Wabbajack.Hashing.PHash.dll | Bin 50176 -> 50176 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 142848 -> 142848 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 37888 -> 37888 bytes .../engine/Wabbajack.Networking.NexusApi.dll | Bin 82432 -> 82432 bytes ...abbajack.Networking.WabbajackClientApi.dll | Bin 77824 -> 77824 bytes jackify/engine/Wabbajack.Paths.IO.dll | Bin 34816 -> 34816 bytes jackify/engine/Wabbajack.Paths.dll | Bin 17408 -> 17408 bytes jackify/engine/Wabbajack.RateLimiter.dll | Bin 24576 -> 24576 bytes jackify/engine/Wabbajack.Server.Lib.dll | Bin 6656 -> 6656 bytes .../Wabbajack.Services.OSIntegrated.dll | Bin 55808 -> 55808 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 | 452 +++++++++--------- jackify/engine/jackify-engine.dll | Bin 232448 -> 232960 bytes .../install_modlist_installer_thread.py | 17 +- .../gui/screens/install_modlist_progress.py | 74 +++ .../install_modlist_workflow_execution.py | 5 +- 48 files changed, 348 insertions(+), 256 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dccf40..94f7dfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Jackify Changelog +## v0.5.0.2 - Hotfix +**Release Date:** 15/03/26 + +- Disk space warning at install start is no longer a hard block. If the pre-flight check fires before any download or install progress has started, Jackify now shows a warning dialog with the required and available space, a note that modlist updates typically need far less space than a fresh install, and a "Continue Anyway" option. Cancelling still aborts normally. +- Engine: fixed a false-positive in the pre-flight filename length check that could incorrectly trigger on modlist paths using backslash separators. +- Engine: temp folder cleanup at the end of install no longer crashes an otherwise successful installation if a BSA or temp directory is still locked. + ## v0.5.0.1 - Hotfix **Release Date:** 13/03/26 diff --git a/jackify/__init__.py b/jackify/__init__.py index d802551..b6fc9cb 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.5.0.1" +__version__ = "0.5.0.2" diff --git a/jackify/backend/handlers/modlist_configuration.py b/jackify/backend/handlers/modlist_configuration.py index 8377ef7..be18d4e 100644 --- a/jackify/backend/handlers/modlist_configuration.py +++ b/jackify/backend/handlers/modlist_configuration.py @@ -50,20 +50,10 @@ class ModlistConfigurationMixin: return True def _execute_configuration_steps(self, status_callback=None, manual_steps_completed=False, skip_manual_for_existing=False): - """ - Runs the actual configuration steps for the selected modlist. - Args: - status_callback (callable, optional): A function to call with status updates during configuration. - manual_steps_completed (bool): If True, skip the manual steps prompt (used for new modlist flow). - skip_manual_for_existing (bool): If True, always skip manual steps (for existing modlists that are already configured). - """ + """Run the configuration steps for the selected modlist.""" try: - # Store status_callback for Configuration Summary self._current_status_callback = status_callback - self.logger.info("Executing configuration steps...") - - # Ensure required context is set if not all([self.modlist_dir, self.appid, self.game_var, self.steamdeck is not None]): self.logger.error("Cannot execute configuration steps: Missing required context (modlist_dir, appid, game_var, steamdeck status).") self.logger.error("Missing required information to start configuration.") @@ -89,14 +79,10 @@ class ModlistConfigurationMixin: return False # Abort on failure self.logger.info("Step 1: Setting Protontricks permissions... Done") - # Step 2: Prompt user for manual steps and wait for compatdata skip_manual_prompt = skip_manual_for_existing # Existing modlists skip manual steps if not manual_steps_completed and not skip_manual_for_existing: - # Check if Proton Experimental is already set and compatdata exists proton_ok = False compatdata_ok = False - - # Check Proton version self.logger.debug(f"[MANUAL STEPS DEBUG] Checking Proton version for AppID {self.appid}") if self._detect_proton_version(): self.logger.debug(f"[MANUAL STEPS DEBUG] Detected Proton version: {self.proton_ver}") @@ -106,7 +92,6 @@ class ModlistConfigurationMixin: else: self.logger.debug("[MANUAL STEPS DEBUG] Could not detect Proton version") - # Check compatdata/prefix prefix_path_str = self.path_handler.find_compat_data(str(self.appid)) self.logger.debug(f"[MANUAL STEPS DEBUG] Compatdata path search result: {prefix_path_str}") @@ -173,6 +158,24 @@ class ModlistConfigurationMixin: self.logger.error(f"Failed to download or apply curated user.reg.modlist or system.reg.modlist: {e}") self.logger.error(f"Failed to download or apply curated user.reg.modlist or system.reg.modlist. {e}") return False + special_game_type = self.detect_special_game_type(self.modlist_dir) + if special_game_type in ["fnv", "fo3", "enderal"]: + self.logger.info( + "Re-injecting %s game registry entries after curated registry overwrite", + special_game_type.upper(), + ) + try: + from jackify.backend.services.automated_prefix_service import AutomatedPrefixService + + AutomatedPrefixService()._inject_game_registry_entries(prefix_path_str, special_game_type) + except Exception as e: + self.logger.error( + "Failed to restore %s registry entries after curated registry overwrite: %s", + special_game_type.upper(), + e, + ) + self.logger.error("Could not restore required game registry entries after applying curated registry files.") + return False self.logger.info("Step 3: Curated user.reg.modlist and system.reg.modlist applied successfully.") # Step 4: Install Wine Components @@ -543,9 +546,7 @@ class ModlistConfigurationMixin: status_callback("") # Blank line after final Prefix Configuration step self.logger.info("Step 12: Checking for modlist-specific steps...") - # Step 13: Launch options for special games are now set during automated prefix workflow (before Steam restart) - # Avoids a second Steam restart - special_game_type = self.detect_special_game_type(self.modlist_dir) + # Step 13: Launch options for special games are now set during automated workflow if special_game_type: self.logger.info(f"Step 13: Launch options for {special_game_type.upper()} were set during automated workflow") else: @@ -568,18 +569,12 @@ class ModlistConfigurationMixin: return True # Return True on success def run_modlist_configuration_phase(self, context: dict = None) -> bool: - """ - Main entry point to run the full modlist configuration sequence. - This orchestrates all the individual steps. - """ + """Run the full modlist configuration sequence.""" self.logger.info(f"Starting configuration phase for modlist: {self.game_name}") - # Call the private method that contains the actual steps - # Pass along the status_callback if it was provided in the context status_callback = context.get('status_callback') if context else None return self._execute_configuration_steps(status_callback=status_callback) def _prompt_or_set_resolution(self): - # If on Steam Deck, set 1280x800 automatically if self._is_steam_deck(): self.selected_resolution = "1280x800" self.logger.info("Steam Deck detected: setting resolution to 1280x800.") diff --git a/jackify/engine/Wabbajack.CLI.Builder.dll b/jackify/engine/Wabbajack.CLI.Builder.dll index 3663399542f06a0f790d014a4de47b52ca4ebd7f..e753f1ccfe173d1b14a926e803cb84013d696571 100644 GIT binary patch delta 297 zcmZoTz}RqraY6@6^wMohH}+VlGcry-s@}=SxY=K0uBt%f>jOGD4ops+F+nQ|<_D{6 z{^J|VVQ#2rz`$V4$e?GSXR2qYZD?qcW^S6AXkeO}oS2xBlxUosmXelckz!_HX=-9= zl45RRk!EC^I(b6a5tifX`+rQ12oDgD)w(V8>--a+os~SjQrZ(2Ox_V*pa2zoV+j=m zsZRd#=hYWiC8w2J=Y8Dl5#h$f$;iOU00NAgr$?nSG8%6F8y(IVY{;O^UcLBFfbT1GUyrTnd%v6CnZ{@rKXyuStKW>B_>*=r6gNenxq<-q*<7lni!>7 zS{ND_rX;7PO`Z^Tgr#We-^-ID!UF_^XYX5U)??_s(0leH-U^N{lXrv{C_n{oD?$Z< zs)MJkb@vK9>|-tX!)U^0j|ev=P6h^61~Aw>Jt~!v(O~o6=y1kh0|sq|B!)x=ONKOt zR3J13(iRNKK#?>cP6V>k7*c?I3!n-Upu7Q)1gS6qsx)CR06XtK z)qyG!pEJG(Qh_f(yzP}Q824WkF!+9sE&l_L!^YQ+`@3uA8*lg6#U$ZiYp7?yz+lYC zpl6_Gs%NNeXlRmVZkn2CV49kon3$53Xq=pul9pzXVrF4!YGP@UVs2uQW@Mboz+leE zU^G49HkGZDjM_@ zDhgC@w^Y;NAn$Q4=D4=G4BOdwm^%bG85vl?-eKH6U4}W7k-HuT-Uv}>NV(_vq??H;?BBphrF^b8mnj2Rj9 z4D?L(478IHEz?p{P17ur6VnnCEz(kwEi6q^4NTH3OiWFT(kv|u4GdF~Q_~n2%o!Ps zrYHPn(%gRR7gLx3%hq+ef2J#NGY1IV&^v$P!|rUCC1IZw6&6goG`)eFIZXj7y5tE| z6r^5k*M};dJLi5`TyVLzosEaNLx7Wk0q749*gjo`Ih2vnVEbEHW_!k90|sq|B!)x= zONKOtR3J13(iRNKK#?>cP6V>k7*c?I3!n-Upu7Q)1gS6qsx)CR0-Bd)gT4889#yGcxEI=$YynY8x7w zq?wzhCK{NgCMPDQBqbUrr=_H&S)`a*SelwxnxvSUSfm*lr!p|GFfvSU3}Z6h?iI!q zCCs97sdn1*6`4!{0@t2jXhg?7^Auv8Kyt)VpJ7nfP>k#5GE@F!*s=NMqwxyBq-_t zmx3^W?=ooZZ#!Pq>-Bd)gT2889#yGcxEI=$YynXeT9F zrlqEurdcE>rX?m?q@^TVSem37n50>ln3@=+Sy~tx7^WnrrZF(E04-Rrf4gRz{&YmrCE0N81=X8!NrYr@h=tXI$C{Vo{qh+CM*y|e+ zj@*}Pw@=Dq`oqY{zyJ(J5ZFFFhbfkk(O~=6TqbYEU;_qih9rhW21|xChEyOl1=1D_ z$v}}bAWj6b(-=~Kd<&oo6QH~SkOZkP0je}%FaokIfjmQ?xFJ|wDnr`z$@xsCtOg8v S3=G&Rw{ zG&MOfF(oO{I5{mPEzKgu%)-*t#L^_i+{7Zy$T)TTnOMd@94xE&{x?rQlg1bz@XPv3 zuC2*chi%nIXhA>&-A`A?ZRp4Ti75@t}GHf>e zuWT!DsqgstCjWcRbIx*hOi`cqYagE1q6o`IgJo`H5!qGeiYs%e@< za$;IyqD5LtvW2Bds)0$Gg^8(&QJSTNp@Csaa%$T4GqH?+I9P1OPMw^7CXF#bVE<=^ zIy+xQ_YM1^HaHv#ZJDl<&RC%U6q{0NK(uBbX$hHLX41wZ?V0EbsY17Z=GMcg)Fz7KDY!}R9{J=QTfMYvj0pov0 E0L!UnX#fBK diff --git a/jackify/engine/Wabbajack.Compression.Zip.dll b/jackify/engine/Wabbajack.Compression.Zip.dll index 55ed1bfe8636478f9fb02e63ee0ad1d252b85a74..232421501a9281946723d698f6daf8c38a90450e 100644 GIT binary patch delta 309 zcmZpe!q_l{aY6?Ri`Dbh8+(kj7#Sz;*HUF<-27DQJ+DCMJVm)TJ(XS?*KF@O7_{`v z<|h{GSX-U85#5p^i1^(wG9nT(#%a$6AesLlM@qDk`j%R(^AsXEK-^T*eJtRjc2~=eQBu#*Pb0BE}lrsXVOr3n* a)s)qcL65;;v!L4t#)$?Tn;AX+GXemeZej5N delta 309 zcmZpe!q_l{aY6@+bCdjyjXg$Mj0}_aYpF6aY<{Zso>$=784f8A!(CoowOgx#9dda# zKe1TPYHpxsz`$V4$e?GSXR2qQos?*qmYQmsW|5qjmY8UfmXd5?X_9JSl4fCIYGRaT zX<=w!n39~Dw)vFZDMprGBB_*fWhYJPNj^D2Ag?Z@)?5-7_=FZ7!nyQ8PXV1 zfzT94TQDR8Mbdyc5y(zsNCEOKfGSLY@&-T>q{0NK(uBbX$hHLX41wZ?V0EbsX_L>p Znz9-&=rI^<7Igc-IMIM(Go#0UMgT{9TqXbj diff --git a/jackify/engine/Wabbajack.Configuration.dll b/jackify/engine/Wabbajack.Configuration.dll index dd09668f9f82ade110463af402c8b56f1ba3e5ab..d5703c45de65becf70bc92d305231e4f2168c9e6 100644 GIT binary patch delta 289 zcmZorXi%8Y!J-whsCi?L9Wx{2=F`lKOai-pp5HJ}bEe}OCF5s#FS8;h-(lVFXsBnv zz+lYCpl6_Gs%NNeXlRmVZkn2CV49kon3$53Xq=pul9pzXVrF4!YGP@UVs2uQW@Mbo z00ypS-|n4!hb=%L;j_4YnD~0fq5u^X_J#_ARHv!`{C-+0Bj{&> z@{i3I*!MAUGBU7&&0^d>Pcmb$A%ix9ArP7{q%oK?m@=d?Br+I)>0}@) zks*a42}l|bK}MyJ7z|P&8L|enFKg`cmJBbD$8MxmCh+kR{p({@38K7G|)3( zU@&H6&@<38)icmeO0-N%O*KukNKQ;kOteT#Nw%;wNi{G@voJ9=F-o(vFf=esNlr~; z0E3AS-oBlDhb=&$FYR{MWvMAX^EXY5+F>h`FxiH^L;)(;6Au*xsb1pKy4>@hLXYvH z`k2iZ*!MAUGBB`04BI@NE0>YcU^6REGGnj-gEm7FLn4DELmERW5SjvM3x;H%NE#3) z0@-N{DL}pjP=yIl-T+8~RG0u&nlKmv*_J?_AyC{9tS*%yZSrnjQ=su5dHI8pvu(g*_uqIKnoUXGQ~3i0Ny8G4FCWD delta 332 zcmZp;!O?JoV?qbZGls^0jXhg?7!|x38K$rGX7m+hfCKYj2$Pk8VLQJMW9&+Sz!&MC z_1csC7hJSVXgF1PZF|jE#-B3g26_ez491KMdIox?dIs7_iI!=psitWb$%$!+i56)o z$rhF-sRkx#7AB@9MroE7h6aWy$*F1E*9b995MbH=T4&aD2W6%Jf$52VcdW^Zcir%y zb8)|ksqpj#%1lWLP|>X)prRo4rps=0|2`Ca)yA;n>~aY6^nd5e%e8+*1WFfvYdR8+NPWPkx(ZU~E&0U`F33sbC@7cMq=v7)so zLUkgP2{d8yXGLqE4f;y{Nb>Iy@|!0sH3|s$AAMdiZ&rX`ldeT-yY9jnn^lY#u$vp| z889#yGcxEI=$YynY8x7wq?wzhCK{NgCMPDQBqbUrr=_H&S)`a*SelwxnxvSUSfm*l zr%raXw%lxD{e+R_NX(qR$uhP90>*P}LrnUAI`3?kDzTZppm=hPZIc32@bgcoAV~Fz zQ!|#fblK*%{hq|SSXt2#|)3^ruYW-tUo6NWSfa|Tm} zRE9(b12CNoWF<1BFeCvaY6^n@xr;wHuh{$U}Tu=sHkeo00+9<5GE^Jgn{8H7p7P*FI;T$Vnu6F zgz`j2gv@6}YoHDKO8!Xl?-BBwCo44y2%Ns;KUd^Ki}!NzJA#XZI*m4~7%yNqH_$U+ zU@&H6&@<38)icmeO0-N%O*KukNKQ;kOteT#Nw%;wNi{G@voJ9=F-o(vFf=esNls0h z>}YMd*~Iz@Ba4$FN9$x6+W>*${Y9lV?mW(2VdfvJ6Ax{iTw~j$02NH;f(imvvj#uN z{2Of3SsJUR$hBF{u7HV?fdLv0o2NVUGBO%$R&|=p7;M0x&5*>9$Y9Bk#*hkxra;<) zAsHx=2E>U#b{azpkZ%E0VFHvl0FodTCP0-Y3`Rh@Fq diff --git a/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll b/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll index a915cfa83e299853c26fdfea2870cfc3f3db2fb9..71116e91be4ab701283e42bd02471bf9ace24ad1 100644 GIT binary patch delta 623 zcmZp8!r1VHaY6@+*_*ewHuh|@Vq~1`Y^^HF$N&SE_#rG-2FA&?*6OwhnK&-E3`{Y@ zR#r^0IRbF8$q%iCH4!FkK$s0Tp^XQjTGqxN$t6LY2$@D3VI-GKWr54U&AG{jDJFza zH~Aup2@1TJs`U`6;ilRkOr5M~D~#m2eTdN5>}ks^C6M%-r+#M%pHstJd8K(K#Yc`VMOsVC!s-HUAxCOf3JDL@4yn4p3n z)$2sWo%;Q@Z|vz|y1V&V`U)maMg~X}F>aooHIjLkdF@kThmU2Fj-ZaT1RQoovX=a;%TJdGdp_00B?4IUR-`6AG;TIe&zj1}Xs}r~XFg-F0fRO}5f9QRhlpu0oj&7o*_`&5Uehh bA#JjJo++yVgC2vyX2*;bjGGw?{xbpqoQZ0` diff --git a/jackify/engine/Wabbajack.Downloaders.GameFile.dll b/jackify/engine/Wabbajack.Downloaders.GameFile.dll index 8b76c641fd998a7db027a3cd8ed1b3504656a35e..38834d18471c8ced6ede716fa100b85d91736290 100644 GIT binary patch delta 403 zcmZo@U~Fh$oY2A2tDHN3W6u={M#jmBl9s8A3@}j74Pmh|AjD#^h+Tn7BdasRBDRDF zZr(4b#Pj_tFyg~OWo4KK$0Rw|EBZHoSo~fRp zwxOX(nz?CeqJe2@a$;giQlfEkT1r})MT(h)rKyRfNs76NMVgUu>f}8pdszCfty?j< z#xy{Hb9&wGXV#M)H}F>wFc*rlef;8RVY-R%jMo&XC}bJ z$;iM8b}i%P=@z|=jE0+4ttK-D8!~7!7y_XQLmGoQgDFEQLn4C#m`(<=5*bn$l7OT! uLo!f41&GraEP%8bkhBD=C&~f8t-VcpBVre&0m%P delta 403 zcmZo@U~Fh$oY29t>FeQD8+)!uFfvR|l(bA`fP;E&2$K~q!oU!VMeGVAraCh$VoP}7 z>L&k}e9y?R`MuOeA%W8`b}#$5(%P?EWy4J0otBF>Z_vHUW^SNoz`$V4$e?GSXR2qQ zos?*qmYQmsW|5qjmY8UfmXd5?X_9JSl4fCIYGRaTX<=w!n39~DHhGW99u~d#pH@w- zF%1w<2y+%)>}%}1!~5a9$Y9Bk#*hkxra;<)AsHx=2E>U#b{azpkZ%E0 qVFHvl0FodTCP0-Y3`RhKQjQL?_pK| diff --git a/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll b/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll index 362edb36316d10557bcd18b0c153abeb07ef06d0..7e25a46f4fd170fb54045334b32278e4bef7996c 100644 GIT binary patch delta 405 zcmZqZVQlDOoY27%WcTj##vTqiM#jlg>Z@NHf8jpv#3oE!K3D6GgVp1OI5kp;WCp`HN) zgE1q6o`IgJo}sp(p-Gy#X=eXEyIJvS2qi&@*6Q zFlJ=XGte{DGtf>-v`kA)HBGZfPE1Qov`9-ywy-owH84rDFflbTO0%>uG%!p_PEFga zZZ(sUMU2nq@Z=-b0Rk_(&NeT3nd;ppKO-RK!m@3XRctyGpn|8}pn@RPcVm2u5~G5j zPPILlviXe7Ax2IH2B3dIVDoglsf>&Un{^%LGX@(lXfq@+Br;esq%oudp(&8IU`Pgv zqycdvke$Ym0_0l&RhR(f4S*y_g$Yol34;-kZ3*NV0>ur%>QWifCd)gSvKlbxF&JzX NbXmc;nbGAxBLGlLWTXH9 diff --git a/jackify/engine/Wabbajack.Downloaders.Http.dll b/jackify/engine/Wabbajack.Downloaders.Http.dll index 091077151193aecadf892fa31e0b4a50249d7d98..2a453a47f5e9e97c01f59e4883df3f9e49bcf47b 100644 GIT binary patch delta 412 zcmZpuX{edd!D4v!-@J`IGSZBUlUGWsiZU|5z&B0^iwSR0ak+ zMh45t8;!L#iyJpGvRvO}b7=A$lK_G95!c_HY*BWea{QQr&fcADlmD1hDWD4iRXgox zSBeqjU*>Dd>m@vSn&}TtMg~@}7l6(+t7T*~+$?HQ%@}ORpv_ z33nW#k!Ep$(I3|vw6CVBfr3e3Z@jd;4sJL)4_+W*H|`gexZGW&DKEAfPul7kwMQu z&s5JqJ1NmJEj86N%_2E5Eius|EhX8)(j?WuB+bIa)Wj&w(!$WdFeN!Pje)_Ak->8E zMq{nb;>L}PEE*io-%Xxl5+HDBInTjU+mhY7MgFYl=ryRF{Kuq90V*g469lTxv);1E zzDRCO!E7e6&6B5@{s1}}=y4F(Jl(98k6Ln;uO0%;3| zWS~eI5GMlJX$&bqz6DT)2~geuNP<+D09BeW7y;RqK%OB`+z_lTl_72NV@p$30|q?? QgUy0APZ&2d+Wcn(0F1|CIsgCw diff --git a/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll b/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll index 3a18af12bb8cbdcc7d33cbc0e804dbe8934ab7c9..1bef74e7084188a3f7a5d679622c0193c965bc82 100644 GIT binary patch delta 405 zcmZpe!qhN@X+j4}p?~tOjXfH^jEs}F`l^aDGQfb7Foea*z&QE6uQgC!+fQ8+A%7Rj z1j@s-Fer*3^i=zGBbmk_2$$I`?Qg0eaJpl9h53Q+E=xsH+xdP8$!$)^pUiD;sAs^y zV9dy%XP{@QXQ*vxXp&}bnwn@}nwp%Ln39xeoSc@DmS&M+W?^Y+Vri0MZeo#UWSqKL ztGbSbh4~ok%gJl%0|e4$dU9y=mpClB$hBw;6*C8MGM;fzX5@jlrD3lp&QNk--2= zCj(iD3@HprK+>2Y87Q9u#Ayr`K-vsQS^`y>07(-d-yBF<0OgE;DpMynx0$jUGUzcF PY!>WrVcg8v@t+X@iC|$k delta 405 zcmZpe!qhN@X+j6fYzFJzjXfH^j0}^v`l^aDz=4x6gvrXlF!{Z&HBesLPhAr(&2X0y zE)N$}6oHFPuJ-FjGL1tJF0)zM-&8>$qkDOA!seguO_pb+?CuFY-<*&?ncLhz&wzo! zn2|xxK+jaqKszbXGA%XLG|eJ8F)cCCA}uA^!qOzwz$DGW#MHzn&Cn4a#N%a zdK~uNe5~OFBPRm`(7zzCd3w`cMn;3pp)I!=gAEw88Il+h87vvn7*c`I6i8bzBm+g# zfH)DzPGd*`@-2WWOn~wRKoX?F1gO%4!3fB<1o8}l;)Y;#sSIh8o7+rT4H)zo3^ogP MxG-*J?D)?J0Jn%=+5i9m diff --git a/jackify/engine/Wabbajack.Downloaders.Interfaces.dll b/jackify/engine/Wabbajack.Downloaders.Interfaces.dll index 34fa9a710b469af6017e98519cb4932bc02e59bd..632cc58ba3d4cfd1c304e778502375f8a939b3fd 100644 GIT binary patch delta 382 zcmZp$Xt0>j!Lr=6@508OMI4Nbll3`OZ5bJ0z>WpNVr4*xr9dT-#hxJ4ZJx;4%_?xS zM6Xj)&B$fTYVGhp-+Y-i>+pYK3^LR+U|=w2WY9CvGu1QHHZ(LzGdE35G%!s~PE1Tm zN;FPROG!(!NHMdpG&Qj_NijFENHa1{Wnf@sWME=o;9z9nhPez#XP$`IIJrPDKwxKw z>(_)8EBqVINvKsW4l9{_L9k5$DtP_?R1m1z(9G*>#_HLTpUuPnDQzwjl3?OwWMBoG z$hdjB$W%r~!_B&4^BIE;8MGM;fzX5@jlrD3lp&QNk--2=Cj(iD3@HprK+>2Y87Q9u z#Ayr`K-vsQS^`y>07(-d-yBF<0OgE;DpM!ROPI16GUzcFY!;MS!MK@G>OUg@b=X$w delta 382 zcmZp$Xt0>j!D7rb`Q^r*MI4L_ll3`OZ5iOejs?PGg^MsSq(IroVown2Hc#a2W)&*B zk*SP~2Ag%o<}(HxFlaL*F(firGNdu20--68wqQsGilhN?B9NU142EPNZOLE)ls5p9 uAQdJ+l_m^EK(-~2X9yHG1glGBNSiD#VajU2pvPdaSx{;P<7P&w|BL_yV^#M6 diff --git a/jackify/engine/Wabbajack.Downloaders.Manual.dll b/jackify/engine/Wabbajack.Downloaders.Manual.dll index fef16a0a2b838c90efc99b888e83851f5ad17a21..b6f449ba5172a0cee995b2822292037007f327d8 100644 GIT binary patch delta 373 zcmZp0XmFU&!E!o>#AJ;L=&=7xF(3=GDM40;B7 zrh10jhK43-=BBBM2BxXWiHRvmiN?ukDQRgIDP|UyrY4pqDdr{?X-3AWlbyuWSZ3Ux z)-pLqEI=U2biu?;e?B=aW6XWhIN|=v$!Ems6rh4aX;49s>PfV3Hqv;?X$0g@&_zB!Pz0LmEwRi;k0GI5>sRO)$wP> z*T4H&c;k{A*hEE&=mQi0GENLw%@14Yt+I1$KBV@Lt=Er2Ra pfbs@F5~RWesM3VN2*|bs@(h9EhG2E63~7_UOPd0X*Oj@<3;;c|UKs!Y diff --git a/jackify/engine/Wabbajack.Downloaders.MediaFire.dll b/jackify/engine/Wabbajack.Downloaders.MediaFire.dll index 105b3408f47004967ef98822485b9e2ea3dcbd07..dda9fe3d81334b26844aee38e053807af339c915 100644 GIT binary patch delta 388 zcmZpuX{edd!LsMS)2WR;_oNvaCuhs30?COo!lH}}FtC~v!eV7$oV-)US`#4?31tFh zV2T-LaUoR8%K9@hZqAj><`Zb!Y2S6;%*tWeTnly2HQ#q_exdz@&DK!QfPul7kwMQu z&s5J)+tAP?&D=CK(ZDn{IWaLMDbYANEhR0@BE`(Y($vJ#B*omsBF)G+m4P9Ek->ZN zKXtLm1;*-|-HeSGS={&aew$ol5+G0%&p&sn_hgqQ&Yl@R9$XKZe8;3k0V*hR2r39t zosm(@wIt8tJ=4~!i#9iy@-cEUGO&Uj&$xNISuZ1_;bv8f$&A5<4B8BaKxo2{#$e81 z%8<&C$Y21blYy*6h7^V*AZg5y43tj+;xq;eAZ-RDErF^`fTRhKZw@3afO1Aam8p}t NtxSQ&J6i2$1^|HfVtN1o delta 388 zcmZpuX{edd!D4g0<Ni+U;_qih9rhW21|xChEyOl z1=1D_$v}}bAWj6b(-=~Kd<&oo6QH~SkOZkP0je}%FaokIfjmQ?xFJ|wDnr_2ZYxuu J@s3venE@XBWX}Kq diff --git a/jackify/engine/Wabbajack.Downloaders.Mega.dll b/jackify/engine/Wabbajack.Downloaders.Mega.dll index 4feebb718ea939827ac357eca8f49828542c36e8..f5e6f0593530237e7e79d647ef051ae278673290 100644 GIT binary patch delta 376 zcmZo@U~Fh$oY29tpn_@2#vVO6M#jmzLpfm}`BlyuNE*ruYcevxKq!>S%7757 z=Yq%r#U|&<`vdjtl~-qE-27Bto=>1O(Z#JRM8%=EGIi_D%bXWBi|AcoGdI*TU|=w2 zWY9CvGu1QHHZ(LzGdE35G%!s~PE1TmN;FPROG!(!NHMdpG&Qj_NijFENHa1{-7IZd z$;c8m>GJN$Gt2@6Qj-{XH-0(m(P^w4^i6GJ>Es_~RSHnSijz=5km|p?Zf{wxwp#E` z>#qFClg$5cGBU7&-ORXox8pvu(AkF8Bv4H@(p3^ohe MJz?C;X!oBH07O?}p#T5? delta 376 zcmZo@U~Fh$oY28iWVP$x#vVO6Muy3|Lpfm}`BlyuNE*ruYcjw=C?kZ)3KwBu zsON%@s~yOCZk>C~gQ=m&%Yf`LVSrs{w-^gTZD&yC;mB J8SVZv0s!P+Vg>*J diff --git a/jackify/engine/Wabbajack.Downloaders.ModDB.dll b/jackify/engine/Wabbajack.Downloaders.ModDB.dll index 4b81979780177cd9f756e48d56b5b823b9c56e5a..bf79d4588b3cb01c6b889eb59a2b901259b1e167 100644 GIT binary patch delta 405 zcmZpe!Pqc^aY6@6iqor|8+$G(GBQq%S5nnvWPpK{JP;Nu141kbAvSrfk~NZQYbH$9 zj=XTO$%4xMKpPU3tr;0N&sF9Z7EqIJHxb=e>c6Q?ZrfV3Hqv;?X$0g@&_zB!Pz0LmEwRi;jU>~6|x$e_nyuvyUS L3FBr)um6kyFa2HP delta 405 zcmZpe!Pqc^aY6@6&ZEcgH}+goWMr5eucWHU00%31AWT-c2m?bBLTvI{C2J(r)=ZeH z9eLqmlLeLifi@&6TQf3jo~z6+EU+tV-La#O^Bp&P?SAdR@%85BJ!W~F<_3BO3=GDM z40;B7rg{e2Nr{$esi~%E7RiZeiHR0zDajU=CaDG{X%;4?CPrzN7KR3fDaom6n-d+1 z8Clpq%vdw|hGT$0Oqa>B-u85lnWtoqX>i3FPPTBWQGg0^L_!5Ys%Hj%o3Q4ym^6cy zzTf66PP-U685p4c-8|i;mXXn5v#47&W3T~(HbW9aB7-GE8bc}&ngVGHhGd{f8W1M} z*=YXRs#k-27}FlUQZY| JGkX1J1OT_|V8Q?Z diff --git a/jackify/engine/Wabbajack.Downloaders.Nexus.dll b/jackify/engine/Wabbajack.Downloaders.Nexus.dll index 780f08e030fd24b8401338f07592231f1b841e78..8a4bf590cf5ae576d954e99b763e85785798eddc 100644 GIT binary patch delta 389 zcmZo@VQgq&oY2AC=@-7SJ6)2Iaq?$LRZT_)73}f1}Oj7Y1=`=7xF(3=GDM40;B7 zrh10jhK43-=BBBM2BxXWiHRvmiN?ukDQRgIDP|UyrY4pqDdr{?X-3AWlWWZ%vvl|` zyE-|=B0%7@;BkAw`q@tVc5hH|P~I;%`G`f00#s1wA5;*edbw!h#VM~Ba7$mW@!FhV zsmI94$iNDAE#v0tR<(?bhMPrgsu_a~8MGM;fzX5@jlrD3lp&QNk--2=Cj(iD3@Hpr zK+>2Y87Q9u#Ayr`K-vsQS^`y>07(-d-yBF<0OgE;DpMyvwl!rnWYA+U*evMqgmE*Y H!+%Bq&*))g delta 389 zcmZo@VQgq&oY29{XWhQBJ6)2IVe)55RZRvsc*6x@vcg3e7?vW$COb;01NCHr$%#_J zq6lTPxZye{?*z$jekk=_RG^VZbJ7Xsa-T)(Ii4!rj$q&X!XS>#+(6HOfx(!OLC-+X zRL?*=DbX@5HPtlDA~`WFG0`F|CE3E#B-Owq&BDag#3;?u!qC7lB{?;1a;^De7U_Fe zTPCMi1PJU?ym0+pkGIQ|9T#ifI*ufi6N1}k|B*D6$nj%v;{*lP$UhA6M^hBh7=&* z0;s|SC~p8HK`KmuDoq%SfNV=3&k!hX2v(QMkT&_TttqPkgC2vyWz-!Llgi`}K`IVPcGolOKzziZU|5Kq@f^Ro&f`cF(ZSXfu5ZY6 za#~7SnnjA4g{7&9rAdmpiA9=`aq4C+ttdv8J&z8anw+5>AfR+Xr1Qb6Z0EJR8aD2) zy#HYG3GFEgP{Ckbs31snptNc63ninoCjy#gZm!W0V&Y_EUP(B5S(-A}J1gbIt ck|sdDIgqpf${7JwrcRDFG6fnx(I}r802N4Fb^rhX delta 322 zcmZq3X~>z-!E)fJ$IOjAVPcF7lOKzziZZ}KDm#S9%D^yLR@|SFVRNpyHJ?D`jOt0V zS>8J>miuCFwnuTt<{hfiEanD!1`G_wj0}1PdZu~?+DVC)X{o8EX%@+eX^DvzX(`DT zmL{nNCTSKXrY1&dmKKHvhAGLZX`8vUq8M4MayQSKoS_{c@OZU;Ws+&5?-pLcoZqd! zwv$h2Pf>sh%EAOes#oeP`L_3vv`W9&vyGc;bcC2V85n@>1cA-d_0}>n8f^dd8p$+8glU^!8!3tkWUO|1tvc_G=cdI$PpY;w+isTen80OgsAs^y zV9dy%XP{@QXQ*vxXp&}bnwn@}nwp%Ln39xeoSc@DmS&M+W?^Y+Vri0MZeo#UWSq*t z;KImYKY2ok*yjI1g3K%oH-BE5ED{zVuu?}gX#dkDmp$!q4`%w+Mr`7#~QR8|oP_Fc>p3 z=o#pl>KSSq8k(e;o2Dijn5HHtCZ;4M8Yicvq@`J;m|0kwnpm2on44In85yT;U#-D- zmW@Tmx9a!w8hyq90rws?_SgR&d(2z>KYEgI(&g!Q^chPOprR+_prRo4-?N(eKN+uD zclxCC+wBDgjB-qzj0~(`mosjkZp4_&$Y{8o)r2vbG1!nno52tWO&HP`%o$7>QW+8% z48U|Ukd?@g!jJ?cjTw@G@+m-^#$W-Y&48pOP?ZUgGy(F>fusdc&IqV7b^2~oMpK{# JA59tgnE(f^YUls} delta 363 zcmZqpz|!!6WkLtbv*&3~H}<^S&d4yidWR~IT)0CRNN(Ms4kYh_N!Fd}q6~2GLk7ZR zWnh@>xD%u{bf+~V!{&)QKL-i8Opg%UdqUr3#h<=ITNZiiY@foz_(0m+K+k}I!I+Uj z&p^*q&pN$}w>=FaVtl0^6q>G3GKd8f<4ZVN7NWHek?ZNMcB2uw+PMNCiSuAZ@{r z3=~NN;zS@jjUffdw*aaz0m>TyNstN?ph^=4BOu!n$TI|r8-mrPGNeu4ZOUj0wBVyD HBR>-W>b+^P diff --git a/jackify/engine/Wabbajack.Hashing.PHash.dll b/jackify/engine/Wabbajack.Hashing.PHash.dll index 8ca590a85b28ea5a76fae633e36dc3132f9d6591..0f632ab7cfc550246bf1687eae3f3c842c8e70ff 100644 GIT binary patch delta 334 zcmZqZU~cGOp3uRvwS2+)jXiAnjEs{f=c|e`GQfbg2!zGTz&QDAelk$ru)vy;adU2g zwTVE}A;p*JCEadQ&%gb8W1`)!%{!Ky5HL5?GhkpaW@OMa&@~0sw0#V-o-X delta 334 zcmZqZU~cGOp3uQ!YB#ZQV-H(CBg5p$`KqD}aG)&$VX`tXOg@{R43sx4ux4b~oLgXR zBA}2TD0t%fW4HAey0}DlexJR0$C48Q<_3BO3=GDM40;B7rg{e2Nr{$esi~%E7RiZe ziHR0zDajU=CaDG{X%;4?CPrzN7KR3fDaom6lmBgX*!+F#R~8nIAfF$TKkNz+_#pV` zrd+^$_tihRzeeu!zdku&cZmX2@Vhot5TyD}ki!%MRXLrw8rMggpX^@6#L2(_bTJ5Q zp1v=akw#p(U;_qih9rhW21|xChEyOl1=1D_$v}}bAWj6b(-=~Kd<&oo6QH~S mkOZkP0je}%FaokIfjmQ?xFJ|wDnr`j-3Lv9#(zA>&jbLiqh*-@ diff --git a/jackify/engine/Wabbajack.Hashing.xxHash64.dll b/jackify/engine/Wabbajack.Hashing.xxHash64.dll index e606505eb49b2196333a50173482d4c384224bff..f79901aa87867bd3308d9020e57cd777e48e4825 100644 GIT binary patch delta 337 zcmZoz!Pu~ZaY6^nw#tLoH})LSV`Q8hsIMx@$N&R-xF9T62FA_Z`mzE7-q~mTuK(lp zUc94A?t|e`#mzhHUvk(Q>KQOF7&9{H8R(hn8EP9EnxvVVrY0JgrY0vQrX(dAC#R*P zrCFqySy-BySem4mn^>e78K*KZ*fBC#PA>3}+Wf<#gpuWYg82H$1zrIHC22Qjdo_sp z%}Fz||0VpiWAX*BDg~He3{()LIx^qGfai17!Y#6bX`8dWRTw!L8CbziX52j8rgiHDjZ^(}z`-6a2$Pk8VRN^>tbl;)u}Mjhf2X@G zTWOb<;vao$^A7u$9JU5}1`G_wj0}1PdZu~?+DVC)X{o8EX%@+eX^DvzX(`DTmL{nN zCTSKXrY1&dmKKHvhAGLZX$%Z@j0~2O3p}JY|L`bbWO>n+GIMf)SAam$BF{C&Md|Ll zJicH3^}D=y@&&Id1*o986;u$U`u_jOy1K+!S2w)9`DJsKw+bUC0|U^lAh3D5Pc0*( z!DdmvYQ|s#25p8UhC~KShBSs$AT$Ni77WQiku)Gq1hUf@Qhts#< diff --git a/jackify/engine/Wabbajack.IO.Async.dll b/jackify/engine/Wabbajack.IO.Async.dll index 7ad47ea5e29a3b69d4ca9926ae4f61537522da3d..f36eb73941a2918d662f5521a6131a6e3b3f5460 100644 GIT binary patch delta 298 zcmZpuXsDRb!LoJFxz>$6Qxq5(H!CVSa|-N@IQr94r@?cH>V}OQ9tQp2T%r}tYHp}! zz`$V4$e?GSXR2qYZD?qcW^S6AXkeO}oS2xBlxUosmXelckz!_HX=-9=l45RRk!EC^ zx|z-3850Zd0-M#7KNtlFSU>WAz3Pdh?*s#hUgus)Oy z|9zhG?vAd_w~V(iaWXQnGJpW%=ILg!jEshxznXh91{*SHGZ+G)2}2r#IfE%fDnlZJ z0hmq(vJx3m7?OabF+(y?J_U%=7%YIa8IZIDsxkqRCP2P9khB2G839$MPM&OO%4*1< Q$6zqo(Zpmkqt$;#03#GzsQ>@~ delta 298 zcmZpuXsDRb!Sck6>*L0rDGH1Xn-vwEIR$Qi%iZ*Oa=7mr*PybMziiHIF42l+H8;>R zU|=w2WY9CvGu1QDPD->)OHDORvq(-%OH8y#OG&n{G)XluNwY99H8D!Fv@kR#JO7_esX|umI72T<}y?eq&nG8{d-rg z!^hdzdg?acGTy?($-uzM00x_>rzQ_b)}2`)BWH<(c!XkaLWss&QW=2{^X?u4j#7|bXPRR0xKVKkCL!w|5E zks*xMNJf1&h8wkgWe8(%hk#DS#mTaVY8wS)a{-UOuKnl z+8@-Nn9iZf6d-WhZSl=wH3i2NTb70_zr5IgdWI@fjsjFvPy;FoRPS+E*|7KaG`;$c zOTSsRe^F(c#l*?TzzTLQpRCPf%4*1< S$6zo$P>soCJEIQMe?|a0D05N( delta 511 zcmY+AKS;ws6vp2j{;ANRD1tbZLRw2TUhJhNIthY^AU27EibG6uD7xz+)JegDfO3fsuRM>iM89mrSz zgL4g_=6om4IApjX>LnXS$s>o@Td}3%yM8DBKDl|F9Bo}QS7h{-vuZ4s7%#W zmRWF3;rqHUJXg4`Aqt*ha-VTwaGehb)6ke!@O&Z1yXbkeiFcpKAfnKzSmp34dLULu zwz~@-H|?{vU{Rqf@gFz;>momxypZnca^mf=?J_N26}nH`0PrinN(Mc2o)9LhX*xk{ z1{qiY7fcY~UF-!Ea5j+OxM%o&5gbVl1K685Y3OU;oDU+{%TT?UfeI|h LCn=Ytm)6K9&y#Se diff --git a/jackify/engine/Wabbajack.Networking.BethesdaNet.dll b/jackify/engine/Wabbajack.Networking.BethesdaNet.dll index b1725b54cfa6651542a416d87ed318830068b298..47eafac860a8b6c41faf3408c52629e3b2c9d8c8 100644 GIT binary patch delta 343 zcmZqJ!PKyWX+j6fd4pL;H}({TFfva5AEGMC$N&Q(G7uIk1LI`N(D{svn{S4;YY4;{ zb!Xjt$KW{KfnkrfquANa1$FXVwuX8J3=GDM40;B7rh10jhK43-=BBBM2BxXWiHRvm ziN?ukDQRgIDP|UyrY4pqDdr{?X-3AW3=Ecx3?`EqyEHd{?by!FVzK@1ipd)$1PBxr zzVdptFwlRVY{+>VnLv-p0u$R5pn~#pP(hGthmG5o85FlheRWt^xOv;e8%&&x46I;> zGj5(fWhx`1;bz@w^BIE;8MGM;fzX5@jlrD3lp&QNk--2=Cj(iD3@HprK+>2Y87Q9u z#Ayr`K-vsQS^`y>07(-d-yBF<0OgE;DpM!R&oE^*WYA+U*ep0{1>? zReW!wvj3_t=OlM*eeN|`U}BpBRPa4a5U4u+#JVG_F?(KoU3>4!p3U1P-eBTnU;w%p z1U65fGL@0hV6*PD`HaB^4B8Ay42cYu3~3ChKxhi2Ef|u4B56RJ2xO-*qyYIAKourH yc>^E`QegsAX~JLxWLpAxhCp#cu)0)+w8`=_Oj!*W^cV~_3rpSi^bGV&^$fKQ4NcO_O;ZyMOjDB+6H}5Bjg!+-($Xwa%q%QT zO)O1P%uOuPjEqwm7#tZHY$hwJh)$lMt+u&Dn}vyG{vDxdlWTMX1Xv%oFDqr4?7neR z@5SC%S}l|B=+-Gf1;q=YfsYJ7cgRgEoU95SlQgF_<%$GNdvjG8lmAWFRY%A%!6cNE$OF1LaeIIE}#qNSgsk hOQ0$fAZY^Rn*&J;pqvp2ybxkfa0|3H6Swa8+ delta 316 zcmZoDXegM_!Q!d?>HNl?2nj}p$xkJGfuymdIwQm8Xh}<6fl?R!YSUd0yq3%gjqyF3 zTDEzKS_F%&ft~>agE1q6o`IgJo`H5!qGeiYs%e@9$Y9Bk#*hkxra;<)AsHx=2E>U#b{azpkZ%E0VFHvl0FodTCP0-Y e3`RhgpC(K` z;Z>sm6+B@D6$GgkElddSTedJdUax~^bBebXBPSyRD+35HZl3N_%gAWBS=6tZG1!nn zo52tWO&HP`%o$7>QW+8%48U|Ukd?@g!jJ?cjTw@G@+m-^#$W-Y&48pOP?ZUgGy(F> ifusdc&IqV7b@F3>Q&vL;JqCl#frX?m?q@^TVSem37n50>l zn3@=+Sy~tx7^WnrrcHkBX1cl3?KLw?IsdO8lQX;m1hj>1$_3J8oaWz;nfU&W@#4uR zylNDnf}id~1%aw7x{gR)lt`}jJhr;<(dHCyEk;fT237_z*gV~*mXXn5v#4J+W3T~( zHbW9aB7-GE8bc}&ngVGHhGd{f8W1M}*=Yf|3>8Z18E`41P;UC#Q7_{-tL{gfBt48o){)hMg~@}I~g}m=Ud9iXt>!{U^`>5 zA%ix9ArP7{q%oK?m@=d?Br+I)>0}@)ks*a42}l|ISs55MZ)bhTETHf9WV!v! zW8Q1CdQ-prP&3)Qf>V;w+(6HOfx(!OLC-+XRL?*=DbX@5HPtlDA~`WFG0`F|CE3E# zB-Owq&BDag#3;?u!qC7lB{?;1@((Tz7Ly68`zNb#2MEYMGqTU+o#-@gb^GoKzR&C@ zw{Z6_KgUz-A+Zlrm z7_=FZ7!nyQ8PXV1fzT94TQDR8Mbdyc5y(zsNCEOKfGSLY@&-T>q{0NK(uBbX$hHLX Y41wZ?V0EbsX_MWBOo7JN3NRBqv$N&S4f)Exf1LI_SFKZ;324;jzzn4EF zT@?yY!S&WqL7?gi{(Ji2(;gQtK4`_hbn}v~SB#vD z46I-$Gj5*VQ_9F_xS6*vpE1~wL7Tx42u&E$7|a<=8B!S%84SR5GLV(Xkiw7zB#jx8 zf$}LpoW@`Qq|Jb&B~Xt#y- delta 366 zcmZoz!PKyVX+j6f4eQlAH}+_FGBQlw>RBqv00)hN5GE@F!(@9eYb2QlW`s!J z=KEf`dIB$u0_QZ%`0BNP-nER$uRcBB98;OVYi^)tz`$V4$e?GSXR2qQos?*qmYQms zW|5qjmY8UfmXd5?X_9JSl4fCIYGRaTX<=w!n39~DHrcw}eX~`29uv#*sq!x;ujvdB zSXg`RUX$`?-)`?K-_JLmUo)Aft3m-PsCybJ2vnWfsMqAdw`4}IOJ?e_%}csoF>*36 z0DS=ho2U1bGBO%$=IzU83^riUW=LX4WUypNV@L%;Qy^`@kPH+_1L8y=JB=X)$hQEh zFagRN07;Mv6QD{H1|uNb638g((3uTr;H@H3W4n;YsG zFfbT1GUyrTnd%v88ycFVnVY628knXgCnlyOB^oEErKF`mEtv0~L;^X&~5jC@R-j0~(`*E4RPZpGNj$Y{7-)`qd2G1!nn zo52tWO&HP`%o$7>QW+8%48U|Ukd?@g!jJ?cjTw@G@+m-^#$W-Y&48pOP?ZUgGy(F> Zfusdc&IqV7b^3Q(MpK{#x^|40nE|KtX$b%T delta 415 zcmZo@VQpw(ozTHztLM35V^7CcMuy3v+bl&H;GkL^!enJ&n4G*#9Vp+uP2CnQ&CsU^ zmxl{((!dm(q6`xvyQs?u5Ftd{{F%|`|TC{jAhd126_ez z491KMdIox?dIs7_iI!=psitWb$%$!+i56)o$rhF-sRkx#7AB@9MroE7h6aWy$*F16 z?`bpYP4Cxc%i1uuGX@(lXfq@+ zBr;esq%oudp(&8IU`Pgvqycdvke$Ym0_0l&RhR(f4S*y_g$Yol34;-kZ3*NV0>ur% V>QWifrhm6(GzD6qYsYw*833eHWNiQd diff --git a/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll b/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll index 9d4aa7dc0fbd323d330afa0dc251360ba233fcc7..e304537689dcc966cc06f2dbc09823cd01c4cad9 100644 GIT binary patch delta 407 zcmZp8z|!!5WkLtb{`>9wH};5ZWMrJYaHA@aJibv~laT=iUP?n)tPBXTDQs}D$>N*T zMG-P5r4TZ~o791(Rd4DBlI)v-?9KX{x7rJQ>V6pcAnm@_6y75*dHph1Z~pQrLfO_( z&wzo!n2|xxK+jaqP}|VZB+cA3HPOH{H90XcB`MK3IV~kE%_7Cj!qU{l(j>*)#3Iee zIF*6HnUTS6x}yZ6=JriujBfla-9qbUPXD9I7$8u!qh7lEBA;{HHl-Kx6&eB4W7HU@ zC_qJp-Jqf%_0Ipd^8VfXWBSyHUbXE4>Wp=aoQw>tV4pB!CVa8xX z25kmIAT(h}V=!khWk_X6WH12J$v{>jLkdF@kThmU2Fj-ZaTN*T zMG;abr4TZ~o791(Rd4DBlI)v-?9KX{x7rJwx7?$5_qV)bkMV*7QrjHDHh=jPp=@iQ zXTZQ<%*dc;pl7OQpq-RxnUYYMotC>sE4;t*I-=B$Y`+LRg3X3W3T~(HbW9a zB7-GE8bc}&ngVGHhGd{f8W1M}*=YpF diff --git a/jackify/engine/Wabbajack.Paths.IO.dll b/jackify/engine/Wabbajack.Paths.IO.dll index 74be9d35c3be4a5bdc66a0c393189ad18a11be98..bb19a725cfbc7ce19180699fa587a419572f4788 100644 GIT binary patch delta 313 zcmZpez|=5-X+j5!nbzsXjXf`d7#Sy*2CFhMZk`>iDfazo)E0H0EAqhwtGb97$Q-C;)!2(E|0ZB`sDia`S0_2+m gNeiHy5m067+uK)l5 delta 313 zcmZpez|=5-X+j4}lp^n&jXf`d7#Sv)2CFhMY@QvgDLP1`G_wj0}1PdZu~?+DVC)X{o8EX%@+eX^DvzX(`DTmL{nNCTSKXrY1&d zmKKHvhAGLZX_NO>TTIpr72Ir6eS(=~!5!O)lj;Km&IYu4=!IW%>H68YGyJot+2n-! zECs0G7cQtEP_dwqrPkPj8B4WHi|Pwb`37*nmNs zA&DW8!IB}3Ar%NsfwTofGEgK9h!cVAG=>x)-vX$@1SoF+Bta@nfGSNGjDT!QAkPpe eZU|PF%8)jBa;qt;0fQcc!Q{XOlg*56{}}<@j$$ML diff --git a/jackify/engine/Wabbajack.Paths.dll b/jackify/engine/Wabbajack.Paths.dll index 1a0a62a7648c04ff7b12b5b54f13d1e3ac7d9d93..6ff6f21df0b860ece13e027439a5b079f7cb53f7 100644 GIT binary patch delta 291 zcmZqZU~K4MoY29dyrOyk#-1r^jEtKV)!F$3c1y0AcFMEPdtS~ib=#eFiJL7<3t7z# z^$Zvoj2Rj94D?L(47CjnP14LwQxgqLQ;0@hbb}WE<-MfrWZOm$laa^WHBRHZ||eo~@JTSf?mJ1*7Ysf*{peYaQ(V zyX30HxJqXKeabz3^ruYW-tUo6NWSfa|Tm}RE9(b z12CNoWF<1BFeCv}Z8Ri0KM delta 291 zcmZqZU~K4MoY29tPR(%n#-1r^j0~F<)!F$3CfG}6wlqjM?*6rRa`H|=$;}p~g{;h0hplX(BCpS)v zi$0?MXnWrF%?dVoOq>i1tPEhVdAgl1Bcs9Qr}oB-!3GT43`q=$43-RO45>h93ZyL< zl7S*=K%59NZu{23BH?c@F zGEQY+&|_rKocthEZ1cg;*^DgAs(F(pCxizGFfQb^nk4nerCHBFe$V?$YLgFy7brjl zLk>d)L8>>m2nC3@${hY`-F{?qK!hC=CnEzZ0|+o~o*tFT$Y{9vZ*(|gupxssgCP)_ zFr+bfazo)E0H0EAqhwtGb97$Q-C;)!2(E|0ZB`sDia`S0_2+mNeiHy T5m067t8_{F`5Rw{hAU z=ov6D7&9{H8R(hn8E7XZTBfC@nx^E`QegsAX~JLxWLpAxhCp#cu)0)+ Qw8_h3O@YSWja6m>00-w=Q2+n{ diff --git a/jackify/engine/Wabbajack.Server.Lib.dll b/jackify/engine/Wabbajack.Server.Lib.dll index 4b44201dbc5f1a5581913caf467819e28dc42cdc..05d52c0e2a9c7e94c5abe91f347845e10af02e24 100644 GIT binary patch delta 327 zcmZoLX)u}4!4kK+Z|laMBz8u|$?w^HMHv}jppON@Vr5{P9LS*#l&=Jln-_9CXA?Md zaK&_{TtDAg8jnuo*GJZFp27c$(cDnafPul7kwMQu&s5J)+tAP?&D=CK(ZDn{IWaLM zDbYANEhR0@BE`(Y($vJ#B*omsBF)G+b@EO@ZI+$s%l1ruAs8U=B>zjfY-6C$Om)rz z?@d$sCwmCxDL@5fBB6pH)w`#?uKbv?`p?%30&6#46WYPZ$;iM8b~EGV=_09&jE0;4 ziiR@=8!~7!7y_XQLmGoQgDFEQLn4C#m`(<=5*bn$l7OT!Lo!f41&GraEP%8bkhBD< eG69k%K)yMUv;fK(0ad0>UM_A5H2$u*G7|sx=_f4~_g`(N^tpe|KI86;JeG>tCkohxkps(Efyh{iB6|{Gv1pae5|^_Qwng+a zFKZK-EKec-F#r=covIJF$qMGP1>xQWZ>v=A=3C*BV4-=2nt?oDi_QUU0rExbd%(w9P&a93Qe`=^$XJC;*0_zg zp)Qzl7k3Jpu)~-3LY5r6)VC=2j1rdm_7=B@U$s4!*{;^WI4n`u!7=4(wfIiEhINZC zwC|LyQ;P$OY_e{(7+j=Lbz_%9LZ7&Hk;glrRzgMb8BoHN{L^U+G{P`u&kMX}6YHbO z0M^`*Rmha^mSMX7?Ek4}@LC$+*sqb(W1mL-ka;iiT*evT{Xh1m@}-R4P!yJmc=|?v zr7$(Pg$@!2r%tz?&hpkucs_TWHt@03pFtwE1)Z~LEp$33@T6A3+iH&n<}2UF;0@(P zB!kb9UqgyU16IL+yd=y*dgON^Ka{s2TNJC2`xIM{2IUYk1V7i{;xapNiL9lY&=Y>MXkL)!1 zE9B>qXOO(}hsbeN0{OoBugC%0BywjSUsVnJ;#Lf%rc`NpQ5JG~7=y(^r@$Ad7uPOv zHm;-dyYbfBsotUGHFc<`x+OQzfd1V=Gi6(mhXlPixx{RG81)tl;OjEmn)#?!2H92~ z4Z|NyUa@rPhgmzc>9D|-tXPn>OVlo_XU~YO%Z%Ow+AKJ3=NUf~>tDv`-eMk&=vJAI zYO`StMY|zkdj+E-QWVE158xJFxf?cRys6c|y;5Y#IIY#e9w}OxaY1W<3sR)Y_(WR( z<`O<`Sa+xC+I+1EZcm0Vocoow5Ozq>NUlm}h6_^UH0S87V3|n+!EUx;w4S2f(4FcK zXWw7y{hqEEHkMDdUZI-_L5lqF{k%20GPsb;!F@R!bhDtcBH8O|%2r(k^d}=+(stc! z*iF%8me2%rl`twrmQ+#afc;W5rg>IZ1+PjG9=rJ7{iS95bhQv8k8kg=t{$#lkAAD0 z3;(_zofONKm(D$_y90u=`AXh^E4H}qE=WjGSp5=ffGZUF;Tpts4e%L7yz>?Dr^`!C zU+5ZPZzUgnnN6sfz6thA5x>drE^jVN)i*<@gI5egdtR~r9(Y-b78aH3?*(~PGS^w; z6dPB#%8qImgRPc4oCP0PxRs(ocnenO7ef_A^l*q1D~!w?zOv#lV@JgoRvEp$`Ysq~ z;e!XERk=m)0ds3InothtyTK_%>F^W%L*SMoCEKH414B|&ChXU*g_or0s&GWV4o*tZ z!}4SL9=IY!pU6+?*F#2Ia)$dAf0?iEh1pX0OU2*x8(@hP6)FFze;C$C(Jw$|*a#ab z;%A9JY_L_z&10$JV-FbT<{CD`?d{3dqjIC64}K#>GDVSL3luC$<~AwH4UfPfDLSaE z6aV;tk=-RuK5&$^ghx9Dv)DUg$%azzJNcO~Ap9EX6OJOc3$Gz}kn;pNPYS<7=P3ao z6ZR0F7oz#a&<7pb5^%%q_6kUcUPA@s!Dgfp`jK{c7Fhp_hMotrmL}CkFgnVP?z>T(k|%7rf%qgqC&=(ZYNz#x&do?j82(%5VqJFX+R^Tn@njQIT6%31>-V)ey@|0Abp866Z-gx3jJP8+XY@!j8=!Xk#v(V2$QyE za@^#2Nc#l7>Opdb$QdOa5dzRr5E1z87$@g-%Er*&TM#2ZK|aU>@KFKCd8Hul2XC*z zf|kQ%AjaFp~u`9XNw zwhyy{J%axF!Wi<^!USbO5r9;)punD9gGIsbmPNr=WapNlk?2zJ^Kg^)QH_tZpZr16 zqr@mVBiMl)S%1$!Byad4I2;Ecf5y3)NgIGwi(Q94TL7&(?1w2v9QrjxXbw4WFxCqz0%I!+og_!+Pa zK8=O6HG_9(Al*rHk>k%8^x~mKGWaxcvLKUdmdOWLi4Ej9NxO(Xa{QTmf?y_}EJS{U zbc`4$=VB&*3@>7(!wy-rtSstGbRxYS+9tf<<3N@#i{E2^7PTfFB7YyU#~2|eN{xX&={KbC9f1_86Wyzdn65~Xsp_3rGh<*+Kkz-o&iB6)Q7)oj#uZin;jZ@F*BKnDOJ^ud3 z7Wgp&A2*_t=pu%QaRa~8ane>JwIKS5QKHpE6A=9-{?J8D{28(ql3&QR3pr-9)0D z@rRGfm{QExR?L`Ky=~qdjDIMi*D`bRs=)7iQ?IG<{M^su76(XbXWbibp3L=tN5S(k{fp9$hf(;E&XP1!E{&A zJ;3)87?_7&^rl|3_1DLQKN!&8%Id<`_Ls<89pHc(=!SZz1rNBOlCEx4F6e^Q$ZGr$ z*p0dy|INW`9da&K)gWsyu1C(nToqP&#GZo-voDqA$PVq<(=vQv?>T7IsKX}?&dm2Z zAp4t>wSCk0j*h7gT@#%X_UxbS4A~yZI=$zoF4i6TSt>7xdGTu9$`@G)-%E-?CV>^6)-{<>0 z@AF>2c2a`RDZ%HI`@6JHZawkdwylL?`L-wK36m;Bsc!f=qS>lLbEUdKl#11ANCdeS6}?|f`3}mpbfgNJYD>!(q|M7?=Lw^kx!ZAq>L}`jMF*9C$)&)%=a5;lKvP6 zuj%7VL0>SxC!N7S4#mhkt&}nS+VRW}wNshXbc>mLbZeLe`n#ABy3fFi%k=OPuXH@Z z`Vq%2<`{!q%3TF})T-I{1)h*KwqAqW*o&+$oM>X{eef^c(jnAKf3cE0E#A!gN|BI9 zHo*Qu?Fr^lrtEx@*`E?)zMFrVxykt{^WI#!sv7a-C=M=6sWr-?;mo07f@UioMJ~>u zE}P?ST#EC%^y=-XuQ1A*v8*q2OKjj8_HR&rh3pjOQ;I=7H^*jO$$Gt=`0I?=ka@dN zL)i`)ZJ{@QTT39TM|q4hk|ND3ng(e=50Q#qYXm-WiL@^n$xHtGf~Io4xrsbgvSJI($aR{V>6v6SwRn_y z3TdkoIZyGmYU4t0`2pi>a@NA*S@?yeQHVO}ZJKAEP1T6-a;O6fEyB}#cHy%^98e!y zWC<)cFQHA-4thm~Wvu$*5TWwfRTG3f9q|l95K|C|FO0GZVQr zx={tU(NoE2zkaOxw;L^Df_m=8=S6dG&rO|K;w`oGma@QGd6~3H`2#bkyv)2Cx(nP2 z=YHjR_O~lUne;HYQ+Xw?gw|23v6OsN@2a45T3%2=xpXVjLK~PadWcz0Vdhvm#T-wH zrGgqMo7qfO<}5lD;6y8@$8x)NOA}v^*EkE>OC8+QM=NNq&4E`i?w zrxBHnaGF35d_VL$X1gT_=WgzEr*m@v2^EPj5;F@-eTNCJ{HO@v1XhgaRX&)RP^b+`f=%A*XZn1PC z+X-hg7-px{80PG&mc4MItTPMyHS+up!5M@;4K0*)@l zolS6jaQx6gMXtIN&Sp40&{3tES_`9!ypDc2hmei2zq2p~e-J)tyXnJ1(#lFj+d+Zl z1$MS7taex~t=vZgv)$6beuuRIej}GIFYvJQw$%g22WN@4lfH6xLWenPDe8gVquoz$ zI`?pvTv7Iy6~&k@77Zdxx^B|j6dm^r6xen0w(L5&BA2uZ8bPm4o`(-Qh?*dD2!1DY z57-B%A3DaZ7un))2H}vtn|^B(dilC3dfDHumos|xvVS0iM;KNgbQ}~ZG93aVU^GPz z>w}J^bW_Y0hyExY7bB2V8?58r^-G{kPWAHQ;j{AD$iJ?N#7nw>!z)C z2Ld)HFxe;!9f966tdm@>KIk||>2gX( zx~z1k%g&zkZfbUT(*qcsF55+r?n62T$37hU7%po(&|c^e7={ypjzPzvDMOxt$dJ?6 zp&c2rLj$x2^uh^cbO!j)q8W0UI4sJPT4c%r4zK}^8`=v7;e;~f1mR3MSpIFTRxI=~8M$vX~Zp*3^_{vKw#B?_kxjSgn*r>C7U zIB__XjTaeoWXoxanR9IoaNKY_&|c`E)B#%l}#I< z-OyfUmoo?_1RVjRx$?I~G`E|+b@aiBvD0ddLyJ5)%ASXw&~DHJ#~VNpV(xZ^Va32m zzFd1B7zc#`CjolFkU{>)2_t;a4Tiu-LYrhw+$3w{m(7H%{k1-)$^qx;jenc`K2ln@nshqkokXf{dTCU`cp^gB|EChxV*PB{c>;eP*>HrN$#b4)A;HTV7sdoC!G9=9cxRGkRa&KQb>+N!dT2tmWs% zFPxo5R`X)2=_(q{&#_=N|1nX;%QRe##MM~)LekWbrjj(Zy$ zRav#f=Wpw+`pZ94s;qejo*^-{MZ*WbjsJPh@xOtg8xbt|k6Ds`YJSGK&(x*?SGMVQ zNB7QpWr2IwCwVV;9+>mGx?$k%>ZIvioHV(0<#BOaLu-q1>e^wk)`ou%wOuH+eVfA| zrt~%)enV`l)T)_Bf{*SR5^^eCa{z|H#pI^b{&M&+awf^{6o_5vo RM}=nPwY?+WJNvQVr5|5e3(U+SwO$^@B_a~^^P;M z9}3@2PBfqVf&GQKp`HN)gE1q6o`IgJo}sp(p-Gy#X=8z{`hR-WPuHIO&XZrm_-9U@!da#O z6)g3E3IbId+;>>ZQ2yJ>es6@*lFeFNDNLM<46I;hGH#yEQ_9F_xS5wPpE1~wL7Tx4 z2u&E$7|a<=8B!S%84SR5GLV(Xkiw7zB#jx8f$}LpoW@`Qq|Jb&B~X(a)aKg^5_lRH^dMH%40jS0eJWnkERm_?RZfW@ZwhE$HF*TQ$3 zShF01{!aeD{=(cq&wzo!n2|xxK+jaqKszbXGA%XLG|eJ8F)cCCA}uA^!qOzwz$DGW z#MHzn&Ch93ZyLl^$1< diff --git a/jackify/engine/Wabbajack.VFS.dll b/jackify/engine/Wabbajack.VFS.dll index 11c0607d0c644c5b1606ff0e8ce1711ae784acbb..400e7a7db49219fd204e9f7b868b11aef902e8c9 100644 GIT binary patch delta 374 zcmZqp!QAkJc|r%v{~qJ78++c(W@MaPJx3KtE}SDQ%E$l%$ubZYD+A-?lXKL8@*n32 z14-7o>PV_2q!Fqd=UM~hYv=kiGHyOQSKm)AU_4KmM3}6P6(1an4!JNUAA(bJK z!2nDr16hd-DGW(K(wHF`D4znvX$%%X+6+iq0#%s+NfRL797tLK<&1zTQzwW2GzA*p I`?Ht{0C^s3i2wiq delta 374 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 D?x7%Q delta 81932 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 diff --git a/jackify/frontends/gui/screens/install_modlist_installer_thread.py b/jackify/frontends/gui/screens/install_modlist_installer_thread.py index dce4c82..b2c9b8e 100644 --- a/jackify/frontends/gui/screens/install_modlist_installer_thread.py +++ b/jackify/frontends/gui/screens/install_modlist_installer_thread.py @@ -34,7 +34,8 @@ class InstallerThread(QThread): non_premium_detected = Signal() def __init__(self, modlist, install_dir, downloads_dir, api_key, modlist_name, - install_mode='online', progress_state_manager=None, auth_service=None, oauth_info=None): + install_mode='online', progress_state_manager=None, auth_service=None, + oauth_info=None, skip_disk_check=False): super().__init__() self.modlist = modlist self.install_dir = install_dir @@ -47,6 +48,7 @@ class InstallerThread(QThread): self.progress_state_manager = progress_state_manager self.auth_service = auth_service self.oauth_info = oauth_info + self.skip_disk_check = skip_disk_check self._premium_signal_sent = False self._non_premium_info_sent = False self._engine_output_buffer = [] @@ -56,6 +58,8 @@ class InstallerThread(QThread): self._raw_stdout_lines: list = [] # bounded ring buffer for non-JSON stdout self._pending_manual_downloads: list = [] # accumulates items until list_complete self._resource_limit_hint: Optional[str] = None + self._install_progress_started = False # True once any [FILE_PROGRESS] output seen + self._last_error_raw_context: dict = {} # raw context dict from structured engine errors @staticmethod def _is_generic_failure_text(message: Optional[str]) -> bool: @@ -136,6 +140,12 @@ class InstallerThread(QThread): error = parse_engine_error_line(line) if error and self.last_error is None: self.last_error = error + try: + obj = json.loads(line) + if obj.get("type") == "disk_full": + self._last_error_raw_context = obj.get("context") or {} + except (json.JSONDecodeError, ValueError): + pass else: if self.last_error is None and is_cc_content_error(line): self.last_error = cc_content_missing(extract_cc_filename(line) or "") @@ -265,6 +275,9 @@ class InstallerThread(QThread): if debug_mode: cmd.append('--debug') logger.debug("DEBUG: Added --debug flag to jackify-engine command") + if self.skip_disk_check: + cmd.append('--skip-disk-check') + logger.debug("DEBUG: Added --skip-disk-check flag to jackify-engine command") logger.debug(f"DEBUG: FULL Engine command: {' '.join(cmd)}") logger.debug(f"DEBUG: modlist value being passed: '{self.modlist}'") from jackify.backend.handlers.subprocess_utils import get_clean_subprocess_env @@ -361,6 +374,7 @@ class InstallerThread(QThread): logger.debug(f"DEBUG: Parser detected {len(progress_state.active_files)} active files from line: {decoded[:80]}") self.progress_updated.emit(progress_state) if '[FILE_PROGRESS]' in decoded: + self._install_progress_started = True parts = decoded.split('[FILE_PROGRESS]', 1) if parts[0].strip(): self.progress_received.emit(parts[0].rstrip()) @@ -427,6 +441,7 @@ class InstallerThread(QThread): continue self._remember_stdout_line(decoded) if '[FILE_PROGRESS]' in decoded: + self._install_progress_started = True parts = decoded.split('[FILE_PROGRESS]', 1) if parts[0].strip(): self.output_received.emit(parts[0].rstrip()) diff --git a/jackify/frontends/gui/screens/install_modlist_progress.py b/jackify/frontends/gui/screens/install_modlist_progress.py index 5e055b9..2f74044 100644 --- a/jackify/frontends/gui/screens/install_modlist_progress.py +++ b/jackify/frontends/gui/screens/install_modlist_progress.py @@ -406,6 +406,18 @@ class ProgressHandlersMixin: if self._premium_failure_active: message = "Installation stopped because Nexus Premium is required for automated downloads." + if not self._premium_failure_active and not cancellation_detected: + thread = getattr(self, 'install_thread', None) + if (thread + and not getattr(thread, '_install_progress_started', False) + and getattr(getattr(thread, 'last_error', None), 'title', '') == "Disk Full"): + ctx = getattr(thread, '_last_error_raw_context', {}) + if self._handle_preflight_disk_space(ctx): + return + self._installation_cancelled = True + self.process_finished(130, QProcess.NormalExit) + return + if not self._premium_failure_active: engine_error = getattr(self.install_thread, 'last_error', None) if engine_error: @@ -417,6 +429,68 @@ class ProgressHandlersMixin: self._safe_append_text(f"\nError: {message}") self.process_finished(1, QProcess.CrashExit) # Simulate error + def _handle_preflight_disk_space(self, ctx: dict) -> bool: + """Show pre-flight disk space warning dialog. Returns True if user chose Continue Anyway.""" + required_bytes = ctx.get('required_bytes', 0) + available_bytes = ctx.get('available_bytes', 0) + + def _fmt(b): + if b >= 1024 ** 3: + return f"{b / 1024 ** 3:.1f} GB" + if b >= 1024 ** 2: + return f"{b / 1024 ** 2:.1f} MB" + return f"{b} bytes" if b else "unknown" + + required_str = _fmt(required_bytes) + available_str = _fmt(available_bytes) + + body = ( + f"The disk space check reports that there may not be enough free space to complete " + f"this installation.\n\n" + f"Required: {required_str}\n" + f"Available: {available_str}\n\n" + f"If this is a modlist update, the actual space needed is likely far less — most files " + f"are already present and will be reused rather than re-downloaded.\n\n" + f"You can continue and free up space while downloads are running, " + f"or cancel to resolve the space issue first." + ) + + from PySide6.QtWidgets import QMessageBox + dlg = QMessageBox(self) + dlg.setWindowTitle("Disk Space Warning") + dlg.setText("Not enough free disk space detected.") + dlg.setInformativeText(body) + dlg.setIcon(QMessageBox.Warning) + continue_btn = dlg.addButton("Continue Anyway", QMessageBox.AcceptRole) + dlg.addButton("Cancel", QMessageBox.RejectRole) + dlg.setDefaultButton(continue_btn) + dlg.exec() + + if dlg.clickedButton() is not continue_btn: + return False + + thread = getattr(self, 'install_thread', None) + if not thread: + return False + + modlist = getattr(thread, 'modlist', None) + install_dir = getattr(thread, 'install_dir', None) + downloads_dir = getattr(thread, 'downloads_dir', None) + api_key = getattr(thread, 'api_key', None) + install_mode = getattr(thread, 'install_mode', 'online') + oauth_info = getattr(thread, 'oauth_info', None) + + if not (modlist and install_dir and downloads_dir and api_key): + return False + + logger.info("Pre-flight disk space check bypassed by user — restarting with --skip-disk-check") + self._safe_append_text("\n[WARN] Disk space check bypassed. Continuing installation...\n") + self.run_modlist_installer( + modlist, install_dir, downloads_dir, api_key, + install_mode, oauth_info, skip_disk_check=True, + ) + return True + def process_finished(self, exit_code, exit_status): logger.debug(f"DEBUG: process_finished called with exit_code={exit_code}, exit_status={exit_status}") # Reset button states diff --git a/jackify/frontends/gui/screens/install_modlist_workflow_execution.py b/jackify/frontends/gui/screens/install_modlist_workflow_execution.py index aab452b..01e2056 100644 --- a/jackify/frontends/gui/screens/install_modlist_workflow_execution.py +++ b/jackify/frontends/gui/screens/install_modlist_workflow_execution.py @@ -384,7 +384,7 @@ class InstallWorkflowExecutionMixin: self.cancel_install_btn.setVisible(False) logger.debug(f"DEBUG: Controls re-enabled in exception handler") - def run_modlist_installer(self, modlist, install_dir, downloads_dir, api_key, install_mode='online', oauth_info=None): + def run_modlist_installer(self, modlist, install_dir, downloads_dir, api_key, install_mode='online', oauth_info=None, skip_disk_check=False): logger.debug('DEBUG: run_modlist_installer called - USING THREADED BACKEND WRAPPER') # Rotate log file at start of each workflow run (keep 5 backups) @@ -408,7 +408,8 @@ class InstallWorkflowExecutionMixin: modlist, install_dir, downloads_dir, api_key, self.modlist_name_edit.text().strip(), install_mode, progress_state_manager=self.progress_state_manager, # R&D: Pass progress state manager auth_service=self.auth_service, # Fix Issue #127: Pass auth_service for Premium detection diagnostics - oauth_info=oauth_info # Pass OAuth state for auto-refresh + oauth_info=oauth_info, # Pass OAuth state for auto-refresh + skip_disk_check=skip_disk_check, ) self.install_thread.output_received.connect(self.on_installation_output) self.install_thread.progress_received.connect(self.on_installation_progress)