From e6eab12616e7d8830d7d70918fe579161fde207d Mon Sep 17 00:00:00 2001 From: Hermes Team Date: Mon, 31 Aug 2026 21:38:01 +0700 Subject: [PATCH] =?UTF-8?q?chore(release):=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=200.1.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Владелец просил менять версию сборки. Прежнее указание держать 0.1.1 отменено этим. Поднято во всех пяти местах, где версия объявлена: version.py, pyproject.toml, HermesHubSetup.cs, install-linux.sh и config/compatibility.json. Последний ловится тестом на совпадение с __version__ — без него прогон падал. 599 passed, ruff clean, релизный гейт 10/10. Co-Authored-By: Claude Opus 5 --- config/compatibility.json | 2 +- installer/HermesHubSetup.cs | 6 +++--- installer/install-linux.sh | 2 +- launcher/HermesHub.exe | Bin 6144 -> 6144 bytes launcher/HermesHubWeb.exe | Bin 12800 -> 20480 bytes pyproject.toml | 2 +- src/antigravity_provider/version.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/compatibility.json b/config/compatibility.json index b3af48e..6708556 100644 --- a/config/compatibility.json +++ b/config/compatibility.json @@ -1,5 +1,5 @@ { - "hub_version": "0.1.1", + "hub_version": "0.1.2", "min_hermes_version": "0.20.0", "max_tested_hermes_version": "0.20.4", "tested_versions": [ diff --git a/installer/HermesHubSetup.cs b/installer/HermesHubSetup.cs index f70fa93..b050a1a 100644 --- a/installer/HermesHubSetup.cs +++ b/installer/HermesHubSetup.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; @@ -14,11 +14,11 @@ namespace HermesHubSetup { public class SetupEngine { - public const string HUB_VERSION = "0.1.1"; + public const string HUB_VERSION = "0.1.2"; // Подставляется сборщиком из фактического git-коммита. Раньше здесь // жил зашитый "8cddc9f", то есть манифест сообщал неправду о том, из // какого кода собран установщик. - public const string BuildCommit = "ef6a9e1"; + public const string BuildCommit = "8daeafa"; public const string MIN_HERMES_VERSION = "0.20.0"; public const string MAX_TESTED_HERMES = "0.20.4"; diff --git a/installer/install-linux.sh b/installer/install-linux.sh index 7fedf90..cd1bb27 100644 --- a/installer/install-linux.sh +++ b/installer/install-linux.sh @@ -7,7 +7,7 @@ set -e -HUB_VERSION="0.1.1" +HUB_VERSION="0.1.2" DEFAULT_HERMES_HOME="$HOME/.hermes" HERMES_HOME="${HERMES_HOME:-$DEFAULT_HERMES_HOME}" diff --git a/launcher/HermesHub.exe b/launcher/HermesHub.exe index a5aa2fb9e32ca3ed3495f24f72100cde7b65db6a..1f154d049cc7a1c4622ee1e878f38d4807f1eb0c 100644 GIT binary patch delta 36 ucmV+<0Nek7Fn})W9)UY@z2XK3;vJ?cZWj!_&USBe3hx{)02E6Oy#N3J diff --git a/launcher/HermesHubWeb.exe b/launcher/HermesHubWeb.exe index 04036e9853b371dc3b91a79c251fd0c73187c23e..fcf1375e1d8858e349bb9870b443cd09330b924f 100644 GIT binary patch literal 20480 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 delta 5084 zcmai23vg7`8UD}Ry>}l;E;+l|&2!mJLdb=%F%KRwU?Gt_KpxV75P^|RvICJMH{NU% zs%05l+U-a0yqYr4`=qcOmP2HK;B|!0@beACSBKp`pULJIh5#`#)Iu_gAtlIzKe6V784f_sO>DvWN!@JP_ z35)v1fWa`;*^{gy_H*GEPbXf5R2p7HR8&I5FvqLGX5IQlbb#{6Po;G#&GkqICj%k* zDQu`>h?W`f;P+e588#r|&+!;onm;_ng4Mh_u9IdJ3!cy3=qgJ4zzVv#+wjlGG;bA7 z2}GpEZ{!LQm8;fOP%Aa_#8l&2c*-pdHs2{_)o3%6mCKJE+njRKpyOIySeRN{Wv zhrE@Z2`Pu?WI~Ex4_35-=S1ghb3)3M^IXKB+k@_+w6M}D{DH*tc+OukRa(ni*jc^&IQ13rYDr-@uM*=^!r%1~`}b zd&mWKkL6-wPlRI7V{M$C6!4(jnz)-6)F?bi!4MBgicDG+S@%Phhpgj5r4ag7p+dvq zXueT|$^535Q5_yD4w_>i>%wT9HUf_ibu-CP{K>B`@k_H zn9b*5V=l&QK~;cx1WX=|?ucGwM!~X93Ns>@j7H&XjdWI}@XJ+-XRBm2ioaZ=#CmTg z#u970D;u!K8U^kwzm#|>PnVc61m~1@IWX*Db+C-A!;s@;W`$r@0?f|kyVr`X8kq-1 zFv24|WL61X9fJOPj0xsN zV48Kpb!@t_d2CkuK&3#i{tE<&$IJ%MW2exF#MyTGO_;~dXLOs5V*SCG)hOJSXUxlD zF5%_IVpxy>O5*SvO8_8NK6@*gK0<4W{Sx6DOCf-uqJ`UnQ67z6mT61prau3i&y{vt z$+{EHW-Opx2t8-30pJOyTz7SVU2U+(*E+ewaD3a@^8KEj+_BGG6*)OPl z+2lBn7a(oQ^j6`h$2 zfq+jw^P(HJNZf1{`=3H?aP{$+mtrDM(i9V$fe(Fr9muOemJM>G4OlLDWn;+mSw3N@ z9ke(mk?cesA@}4`FA751@OaG*2+=8;40xuA9!a!w^E%feI8Mcfa5rJN6nMi{BW!(- zdkd{24pNl4%UGqp%qapFYYF`v$%A${B;lASMiE zBkjzYiL}W2A!gtfXSujCINbomAg&OqvyzJQR`Q8nU9>@nN#D3-Icv!U;#)zwS!LIS=B4uyS>=sH;xv7TLappdS^Y!1M^KxzD~IR}RC?u> zE?R`Mi5nqRc5GR*8siGgPvL-8whov*LKqKLpIN{3OLd}5B)BS+&N$6+I;5V=c(`W>EDW##P(T{;^^fr49 z^hpW-$^HzyKoRt~gx4v;&f^jum6R8iv|yjZ#7~v32=h~|gv%vd52#VXC1f6S33Jc7 zgo9I{=%l*;?$T*c!dCz_I_(x*QU$zRU8!o+qYB+?CFK#|I{iUCq3ZNk34_{+G$u8g zAT0;fs9O`t*K0!UVeKwWqbC7HRz!XTWONhD$GWT0OT2ddzE%@tCaN;ZiX*mZ9l!K z>`a3+sU!izr!_-YS`;~2=IW*g0s6^#dJ)X zJ4R2r9;Mf%;}-gv>k0DFtB~15Z@G@p+jIuFu(KS}!u?4KyN^;DD29_%FJZg;1>jdo zIOcvC_}vo!KHyn8?tTUEx9&FpKXRX-Pbo*WfQQr*Fm0&s0G?G~iyGCCbT&zhZB@@e zW~W+7KDJl=3qrg_{REWb?sIfDP2ZA?r_?DbWRZ=8l(e6! zSP*L4*P9$p^_xSqJDIv_eR5+FT|qRY1?`cv(u zCE_H(?;1`FkvV)-*Jw}5O7zOrwp-?4SF+a}>KhTPby(%*J&7Uv)p?JVA%7|C)d;Ow z-9IvHjwE^plH{OC+pg-GI99E(3D<%GRuJl>Bv~{FI6^TrpHb?W2rbkU#wJP@z2%z7 zzvS2Mbi=PcczpA}Zta-Z)P7t3)64!y-siryR5WzJtt_c)FO!4ZxUd7<@Dw^Mee~JPvyiL#}E-&b5-7D