From c3c470d48b1fe9aa5380e7d06b8aae26971132ac Mon Sep 17 00:00:00 2001 From: zuevav Date: Thu, 24 Sep 2026 22:56:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BA=D0=BD=D0=BE=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F:=20=D0=B1=D1=8B?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=8B=D0=B9=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=20bj=20(=D0=B1=D0=B5=D0=B7=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D1=8B=D0=B2=D0=B0=20=D0=BC=D0=B5=D0=B6=D0=B4?= =?UTF-8?q?=D1=83=20=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D0=B0=D0=BC=D0=B8)=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BF=D0=BE=D0=B7=D0=BD=D0=B0=D1=91=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=BF=D0=BE=20=D1=81=D0=BC=D0=B5=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8/=D1=81=D0=B1=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D1=83=20=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=B0;=20=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BE=D0=B6=2090=20=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi --- internal/lkgateway/web/templates/layout.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/lkgateway/web/templates/layout.html b/internal/lkgateway/web/templates/layout.html index 48e8232..70d7525 100644 --- a/internal/lkgateway/web/templates/layout.html +++ b/internal/lkgateway/web/templates/layout.html @@ -607,8 +607,8 @@ label { font-size:13px; font-weight:500; } } function run(form){ var lastChange=Date.now(), lastKey=''; - // сторож: если отчёт не меняется 2 минуты, перезагружаем страницу — не оставляем «зависшее» окно - (function watch(){ if(finished) return; if(Date.now()-lastChange>120000){ location.reload(); return; } setTimeout(watch,5000); })(); + // сторож: если отчёт не меняется полторы минуты, перезагружаем страницу — не оставляем «зависшее» окно + (function watch(){ if(finished) return; if(Date.now()-lastChange>90000){ location.reload(); return; } setTimeout(watch,5000); })(); var note='', startVer=null, target='', seenActive=false, postDone=false, lost=false, t0=Date.now(), seq0=null; show(); stageEl.textContent='Отправка запроса…'; bar.style.width='3%'; detail.textContent=''; // номер последнего отчёта до отправки: отчёт прошлой попытки (например, с ошибкой) не показываем @@ -633,6 +633,9 @@ label { font-size:13px; font-weight:500; } var key=[p.seq,p.step,p.done,p.finished,p.version].join('/'); if(key!==lastKey){ lastKey=key; lastChange=Date.now(); } if(p.target) target=p.target; if(p.note) note=p.note; + // bj перезапустился так быстро, что обрыв связи между опросами не попался: версия ядра + // сменилась или отчёт начался заново (новый процесс) — обновление завершено + if(!lost && startVer!==null && (p.version!==startVer || (seq0>0 && p.seq===0 && !p.active))){ lost=true; } if(lost){ // bj вернулся после перезапуска if(!target || p.version===target || p.version!==startVer){ finish('Готово: bj перезапущен, работает версия '+p.version+'.', true); detail.textContent=note ? note.charAt(0).toUpperCase()+note.slice(1)+'.' : ''; return; } }