From 3586e32a8909a8a360627bac1b90581b78d20dda Mon Sep 17 00:00:00 2001 From: Alex Cube Date: Wed, 12 Aug 2026 00:16:08 +0300 Subject: [PATCH] =?UTF-8?q?=C2=ABServer=20is=20busy=C2=BB=20=E2=80=94=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82,=20=D0=B0=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Мост сам жмёт Retry, но попытки там не бесконечны. Если текст про занятость всё же доехал, разбирать его как ответ нельзя: блоков-запросов в нём нет, и цикл решил бы, что запросов не поступило, и молча закончил работу. Co-Authored-By: Claude Opus 5 --- deepwork.mjs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/deepwork.mjs b/deepwork.mjs index 82dccf8..3e7e333 100644 --- a/deepwork.mjs +++ b/deepwork.mjs @@ -267,9 +267,22 @@ async function callBridge(cfg, text, { fresh, temp, n, log }) { const answer = await readFile(aFile, 'utf8'); log(` ответ ${answer.length} символов за ${Math.round((Date.now() - started) / 1000)} с`); + + // Мост сам жмёт Retry, когда DeepSeek отвечает «Server is busy», но попытки + // там не бесконечны. Если такой текст всё-таки доехал — это не ответ, и + // разбирать его как ответ нельзя: в блоках-запросах и правках его нет, + // а цикл решил бы, что запросов не поступило, и молча закончил работу. + if (isServerBusy(answer)) throw new Error( + 'DeepSeek занят: «Server is busy». Мост исчерпал повторы — попробуйте позже.'); return answer; } +// Ответ, которого на самом деле нет: сервер занят и просит повторить. +function isServerBusy(text) { + const t = String(text || '').trim(); + return t.length < 400 && /server is busy|сервер занят|try again later/i.test(t); +} + // ------------------------------------------------------------------ цикл async function buildFirst(root, files, question) {