From 532fcc92c1665cf450c9d485ab6ca77af7378755 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 09:51:27 +0000 Subject: [PATCH 1/2] Initial plan From ede27792cd151236e4db3bff3e046e614783d590 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 09:55:33 +0000 Subject: [PATCH 2/2] Refactor ProcessInfo initialization to use factory method Co-authored-by: JusterZhu <11714536+JusterZhu@users.noreply.github.com> --- .../GeneralClientBootstrap.cs | Bin 34772 -> 33360 bytes .../Shared/Object/ProcessInfo.cs | 42 ++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs index cfa902155af90d6eb6accba5b5c880068596503a..6e1586098a01bb05fc67ac75dcd7855ab763c9ca 100644 GIT binary patch delta 4348 zcmbtXdrX^E6#oiiY~M<$h0>NnDMJQbp#{cxBUJ|s7!(Hs=6ID^9(w>|j6E0|Z0fT3 z*yH$!Gm2)KXpDm5Ow3efj80=B>RkLsozdw2SQfYJ4`UX^bMAM)wxM6QMMJpXx#ynq zyXT&J9=G2e3;X)vu;Ym;5$aXu6NTxV7&A&lWR>6+iUqd1Y@N_2^b0%W`H8=>m{3Z% zB;dr^xT+XOZI~S{s|ZUQR>Q`8NXyqUxocsS{M&{r*TSlz%7qcZi@?JS7&&k?oVF** zy-3IPFD+6tJ#AP%Tw0XiujJ!Wa>^`Y?Xl zn2)q;+0jB#u<}3L%}2|;VPQzvtH3AATy_&gYZ4$|T~Amzds)4fQ{hn#PSr#e>4R~{ zQ2$g^rNW9I`FD;G9sQny93i;+lAzWkM*H!R>+{*5*#vIw5TZzab1gH#ytY5eFHL(r znP7)k@7fZ8!Ojk@7z3=<#iMq;ZiB-9vYi)nMcmG`m}*Wv7PFpHfBJZvV(U0>Q>+^1 zV)OVcNq--wM)k79Y_14b^=mkvW>;2;&=HrzId8F*q5h=r(>izRum%LN;s)*mREi$x+}*DECne#m`%x5l*xi04~rbB3h4yM zOkEyAvad0gOP)}ah=c8EdjeJp(u;YyKPioD7(+v$nQi= zO^ERE%6&NNEGvcDBFd7^vQ&8APUj)sl%9$s@oY|M6?qvtzB*u}Vn}iy8pTK(#U5od zBG0xifzixEe6_|vcSI;h9d~oye?dN8kPU5FEr>wWl`135XXQ#ahD7ZMM>F?&HQb-q$!GH} z3*5--;&H~l=WITmlMK%n^V|-nnncob zSw?uFEDoH8#ZXo<#3YG7+p2}%N~l`XY_fR?bd*~7>JiSR8;IVjfwFrvkhWE0tHP$& zEer?_;ePA|UcrMc&?{6RJs@mH-T+(g6MEq5Op_`DN=g#p;F@Y!y~c{)cKk1Zvhp0C z4P@I?#$uQ$kEI>&v%&Rp^8e4f%)S#{tf)f{`j?%^RXNHeE5TbxE!DbqLXwwcq!F&K zr3j%raaQpzB>AJ(4zpDixJG+9s|lH?v+F2UiK>ZG!+bSWN}6@lWN_+>I*QV9rXLHc zb#&)UVjcPWRv5D8PA->NCu1%|$5SixmOJT=Iq;_YGsLG8V~0#ps_A~7)EB4Io$&Mn zu?yQ?+z7P)s-)im7hF%?3KPqwz5uvxe;OTVtbw<#Jan zYtX{(4K0eDhH||qDiOk)@&dZ9Y@rD}P0JTpIM{81*PD7n>}PGc7kZktA@`EBo8a$e zO-O{=klNTG^qE37t5N=L>3?PX(DDR&MCw7uH`XF8^**iF3FQy22)GyYP0;(wDXc_q zXk+vW#l$)hs~XoJd)w(ItLWof8L`7uZIeF;I3rTc@G6Q z=f(sdQL_BJM+e?6Y6>LzYFCz`Bw39o3JMEm^-RTPGr36ibs>EGP#n%>fA3Z>`%N!p zd7#M@yV>2#Lqr1A)1%$=lR>UNR4L0$+NDFnF06alsi;!jDq2Dx0AA{8_StXg-G%hI zPVAb!jv&j;5Z%YD=<5k`2EG61`WC)&r0|f!A~hTBREW0Qz2>Fb--~vUAD-Jv7c2Xr zez+8pwzVUN^^R>Cq~w}SHR#L6c$nYD-wLeqN*WqCv3-PV+4?P#mV)=CnwM{|DcCJn zl}r7dFt=oprf zH<&?|5hvUndDKVm(m1gBg(#W0>+u3J%{hkK}iU)w`P-Otm&+k35yZ^DsW8?oa2EXoO7aHPmP7drC{c3^p=m(W|KLzhUno_v1pFN&#fiTx6!r$W-z$Y&}H`cuX z?Zt@+M6w>*ICJ^H0dnF$8aE6ai3^bx1oc!1h)?cF+rqlt>BFrdP%`0(VKtn8xa*G4 dG%)wb$puK(LzQsmQF`fxI!i%%GJnO7{R`LP0wVwb delta 4502 zcmbUkYfM|`)j%MG*v_r7@e>Sj9Bd4>1B6F-*gyyrLJWiyNWyF&IG%AhqGSGWIl}(6&#F|4T=t{gYKQc?C`G#Roy!R8)D|dLwxc9rZz!7)T5d5z zs;ZFD#u}B-t#Zrg2&49kswSBg+E>v2PhQ`G3=c`Wjm~vZ+mM1Z!LxC*5dz!6SPginn7db zCRi*x6~RP0@!Kn?s|Z#b;L>&u?o@;%lyH3x%vMt0^w;OXgUXXX+wC0ojH_Gz7@?6L zuT)V@zg|akfn;bGb4?a_^l9L$p5S?jerY5fma2Og7fA+daw4mNO=<8>4Ot@co*hzy zuT~9VO?py0yzbY*ogx$TW@aJJc(W6%ZVNcIQcTDcaSd&VaOT4OBD7RXc_FT!+003> zFSbk9zADR+tO?mha1{g7I8h%)PJ%5d(E%rDScbQQY}ZYDudj9PxX zp3VoQQfP|dzktC=!v+RjZlFmT)fC*81A(oS0pra@aCIx+CD9U^uAWBm1jZWcc@8Js zZ!Q#}Ci0t3JGiZr$=}^Z(}O%oC@+!9fc$2%X1sY9lZw@j9_T3&;(QVR$-9S5_+qe* zso|c(1l{V_Q2%nvf=yOaM7t34YYq=IG-+cx;7pGZTDSiR^}OHa0@r#69BT9P*su9- z74~Mj6TQFVEPk&HyP!YNC3CwF=lzW~4ju%0WM?RKyI(YB!*qLD+%1G|WJ~SqW2{ql z%&xGP&!~paI|>r+rR*4k6P@aZYB0f4r!t`yx6umLooR6v3-_j;ozG)j#HsHBPf!hw zU6l92oaYAZ@cS;WX=yw22Jx9%!VLSY2qz+>+s#C21$&-CO$Yxgih zSN4^|{cb7~Dx!scVa(0+^zvMI4d~g1(5-$O^z{}eF#5CJFOVl{^xfT5Mp1*G!U8_A zr#S8~aKF7=W-dMtj-U&pierjl{5ge^jM$>=AU+N3+G|3s%*xDor&SO;RHh1dj>PvKuGRy;9TL+^wV$Sa)Z^*>zeJpRBkJOxX{cAy({B#r zZQ}qPs8pr^R0oeUxwj9}G(xEr`d_&oQ!1`T#16AgT@243x`tYoTV8@MAJ380mRL{H za}c_pP^}e*`%zBF6(QXzX6E6-n3z#wjtp1x6Ya`y-wHWF_XXbw0)cUwH5d)M)Z&C*T$u2{=i~g [JsonPropertyName("Script")] public string Script { get; set; } + + /// + /// Creates a ProcessInfo instance from GlobalConfigInfo and version information. + /// This factory method centralizes parameter extraction to avoid manual parameter passing errors. + /// + /// Global configuration information + /// List of version information for updates + /// List of blacklisted file formats + /// List of blacklisted files + /// List of directories to skip + /// A new ProcessInfo instance + public static ProcessInfo CreateFromConfig( + GlobalConfigInfo configInfo, + List updateVersions, + List blackFileFormats, + List blackFiles, + List skipDirectories) + { + if (configInfo == null) + throw new ArgumentNullException(nameof(configInfo)); + + return new ProcessInfo( + configInfo.MainAppName, + configInfo.InstallPath, + configInfo.ClientVersion, + configInfo.LastVersion, + configInfo.UpdateLogUrl, + configInfo.Encoding, + configInfo.Format, + configInfo.DownloadTimeOut, + configInfo.AppSecretKey, + updateVersions, + configInfo.ReportUrl, + configInfo.BackupDirectory, + configInfo.Bowl, + configInfo.Scheme, + configInfo.Token, + configInfo.Script, + blackFileFormats, + blackFiles, + skipDirectories); + } } } \ No newline at end of file