From bc7b7223a9eaf2236a6242f73b18c52389fe814b Mon Sep 17 00:00:00 2001 From: dttb Date: Fri, 12 Jun 2026 01:38:31 +0300 Subject: [PATCH] =?UTF-8?q?swarmclaw:=20drag&drop=20=D0=BA=D0=B0=D1=80?= =?UTF-8?q?=D1=82=D0=B8=D0=BD=D0=BE=D0=BA=20=D0=B2=20=D1=87=D0=B0=D1=82=20?= =?UTF-8?q?(=D0=BF=D0=B0=D1=82=D1=87=20chat-input.tsx=20+=20dragdrop.patch?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20re-apply),=20vision-=D0=BA=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- decisions/2026-06-08-swarmclaw-lxc135-deploy.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/decisions/2026-06-08-swarmclaw-lxc135-deploy.md b/decisions/2026-06-08-swarmclaw-lxc135-deploy.md index 12084df..fcbba45 100644 --- a/decisions/2026-06-08-swarmclaw-lxc135-deploy.md +++ b/decisions/2026-06-08-swarmclaw-lxc135-deploy.md @@ -109,6 +109,12 @@ Device SwarmClaw (10.0.0.135) спарен на openclaw с `operator.admin` (ap - **Как мерить:** `sqlite3 /root/.omniroute/storage.sqlite "SELECT tokens_in,tokens_cache_read FROM call_logs WHERE model LIKE '%opus-4-8%' ORDER BY timestamp DESC LIMIT 5"` на LXC 132. - Урезаны Dirizhyor (0d388a87) + Ассистент (default, был сломан 0 tools — восстановлен через БД-INSERT). Прочие агенты Олега (Pochtalion/Бухгалтер/Бенелюкс/НИИКН-Ассистент/Nastavnik) — по 7 tools, не трогал. +## Картинки/скриншоты в чат (2026-06-12) +- **Канал vision работает** — проверено end-to-end: upload PNG (`POST /api/upload`, header `x-filename`, → `data/uploads/`, `resolveImagePath` читает файл → base64 → `image_url` формат → OmniRoute → `cc/claude-opus-4-8` (input_modalities text+image) → агент описал картинку. +- **Из коробки работают:** вставка `Cmd+V` (`handlePaste` ловит `image/*` из clipboard) + кнопка «Add image». Vision-гейта по провайдеру НЕТ (не блокирует custom omniroute). +- **Drag&drop НЕ был реализован** (в `chat-input.tsx` не было `onDrop`). **Допатчил:** добавил `handleDrop/handleDragOver/handleDragLeave` + state `isDragging` + `onDrop` на корневой div (переиспользует `uploadAndAdd`). Патч сохранён: **`/opt/swarmclaw/dragdrop.patch`** (`git apply`). +- **Требует пересборки образа** (`docker compose build` — `npm ci` из кэша, переедет `next build` ~5-10 мин, затем `docker compose up -d`). **Слетает при `docker compose pull`/обновлении** → переприменить: `cd /opt/swarmclaw && git apply dragdrop.patch && docker compose build && docker compose up -d`. + ## Схема 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`).