From 5371b6aa369319c2384c279a6ae9a0894ad82962 Mon Sep 17 00:00:00 2001 From: dttb Date: Tue, 9 Jun 2026 13:15:15 +0300 Subject: [PATCH] =?UTF-8?q?swarmclaw:=20=D1=84=D0=B8=D0=BA=D1=81=20=D1=87?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D0=B2=20=D0=BD=D0=B0=20iPad/Safari=20(NPM=20?= =?UTF-8?q?proxy=5Fbuffering=20off=20=D0=B4=D0=BB=D1=8F=20SSE-=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B8=D0=BC=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- decisions/2026-06-08-swarmclaw-lxc135-deploy.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/decisions/2026-06-08-swarmclaw-lxc135-deploy.md b/decisions/2026-06-08-swarmclaw-lxc135-deploy.md index 4167135..aae19c6 100644 --- a/decisions/2026-06-08-swarmclaw-lxc135-deploy.md +++ b/decisions/2026-06-08-swarmclaw-lxc135-deploy.md @@ -70,6 +70,17 @@ SwarmClaw имеет раздел **Knowledge** (`/api/knowledge`), и аген ## OmniRoute «out of usage» = баг версии (2026-06-09) Агенты на `cc/claude-opus-4-8` начали падать `400 You're out of extra usage`. Оказалось — НЕ лимит Max, а баг устаревшего OmniRoute (стоял 3.8.7, актуально 3.8.16). Обновление вылечило. Грабля апдейта: entry-point переехал `app/server.js`→`dist/server.js` → поправлен `ExecStart` в `omniroute.service` (иначе crash-loop). Подробно — [[../claude-memory/omniroute]] + memory `feedback_omniroute_update`. Агенты SwarmClaw остаются на **Opus 4.8** (Sonnet Олега не устроил). +## iPad/iPhone Safari — чаты не отвечали (2026-06-09) +На Mac (Chromium/Yandex) чаты работали, на iPad Safari открывалось, но ответы агента не приходили. Причина — чат отдаёт ответ через **SSE** (`text/event-stream` из `POST /api/chats/[id]/chat`), а NPM (nginx) по умолчанию буферизирует proxy → Safari iOS/iPadOS строг к буферизированному стриму. **Фикс — `advanced_config` у NPM-хоста #32:** +``` +proxy_buffering off; +proxy_request_buffering off; +proxy_set_header X-Accel-Buffering no; +proxy_read_timeout 3600s; +proxy_send_timeout 3600s; +``` +После reload — чаты на iPad заработали. Покрывает и iPhone. (Применять к любому SSE/стрим-сервису за NPM.) + ## Схема API (для будущих правок headless) - `POST /api/providers` → `{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`. - `POST /api/agents` → zod `AgentCreateSchema`; обяз. `name`,`provider`; `ollamaMode` только `local|cloud|null` (не `off`).