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) {