From b9478cc0fdbcd3edf9eb5b2e43b88c6f999a0170 Mon Sep 17 00:00:00 2001 From: dttb Date: Tue, 30 Jun 2026 14:38:49 +0300 Subject: [PATCH] =?UTF-8?q?Open=20WebUI:=20ENABLE=5FFORWARD=5FUSER=5FINFO?= =?UTF-8?q?=5FHEADERS=3Dtrue=20=E2=80=94=20=D1=84=D0=B8=D0=BA=D1=81=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=82=D0=B5=D1=80=D0=B8=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82=D0=B0=20cptr=20(=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=BE=D1=81=20X-OpenWebUI-Chat-Id)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- decisions/2026-06-30-cptr-on-mac.md | 5 +++++ projects/dttb/proxmox-inventory.md | 1 + 2 files changed, 6 insertions(+) diff --git a/decisions/2026-06-30-cptr-on-mac.md b/decisions/2026-06-30-cptr-on-mac.md index e1fa91f..3f81d10 100644 --- a/decisions/2026-06-30-cptr-on-mac.md +++ b/decisions/2026-06-30-cptr-on-mac.md @@ -32,6 +32,11 @@ tags: [dttb, mac, ai, agent, open-webui, cptr, netbird, macos-tcc] - «Рулить откуда угодно» работает, пока **Mac в домашней сети** (Open WebUI без NetBird тянется только по 10.0.0.180). Для полного роуминга — добавить NetBird на LXC 142 (отложено). - Мозг агента зависит от NetBird на Маке (100.70.92.138). NetBird ляжет → агент без мозга (`reference_mac_sudo` для рестарта). +## ⚠️ Грабля 2: cptr теряет контекст между ходами в Open WebUI +**Симптом:** в UI Олег ответил «Да» на предложение агента — cptr: «мы ещё ничего не обсуждали». Каждое новое сообщение приходило как пустая сессия. +**Причина:** cptr — агент с **серверной сессией**, склеивает ходы по заголовку **`X-OpenWebUI-Chat-Id`** (без него — каждый запрос = новая сессия, историю из тела он НЕ использует). Open WebUI по умолчанию этот заголовок **не шлёт** (`ENABLE_FORWARD_USER_INFO_HEADERS` не задан = false). Проверено напрямую: при стабильном `X-OpenWebUI-Chat-Id` cptr помнит (ход2 без истории в теле → верный ответ); без него — забывает. +**Фикс:** на Open WebUI (LXC 142) выставлен `ENABLE_FORWARD_USER_INFO_HEADERS=true` (форвардит `X-OpenWebUI-User-*` + `X-OpenWebUI-Chat-Id`). Это env, не persistent-config → контейнер пересоздан: `docker inspect open-webui` → дамп всех env в `/root/owui.env`, добавлен флаг, `docker run … --env-file /root/owui.env` (том `open-webui` тот же, логины/токены живы; старый контейнер держал как `open-webui-old` для отката, затем удалил). E2E через Open WebUI с одним `chat_id`: ход1 «ок» → ход2 (без истории) «73» = контекст держится. + ## Проверено (e2e) chat.dttb.ru → `cptr/ai` → агент на Маке → `hostname; sw_vers; ls ~/Desktop|wc -l` = `MacBookPro.lan` / `macOS` / `16`. Список `~/Desktop` совпал с реальным. Прямой вызов cptr `/v1` и через Open WebUI — оба ок. diff --git a/projects/dttb/proxmox-inventory.md b/projects/dttb/proxmox-inventory.md index 3bf01da..2ddbe25 100644 --- a/projects/dttb/proxmox-inventory.md +++ b/projects/dttb/proxmox-inventory.md @@ -244,6 +244,7 @@ tags: [dttb, proxmox] | Бэкенд | OmniRoute `http://10.0.0.179:20128/v1` (OpenAI-совместимый; ключ коннекта = **пустая строка**, НЕ dummy — с непустым неизвестным ключом OmniRoute отдаёт 0 моделей) → 242 модели; дефолт `cc/claude-opus-4-8` (делит Max-кап с german/openclaw/swarmclaw/code-server, бывает 400 «out of extra usage», fallback `kr/claude-sonnet-4.5`) | | Авторизация | встроенная Open WebUI (1 admin = Олег). Открытую регистрацию выключать в Admin Panel → Settings (env `ENABLE_SIGNUP` не рулит — persistent config в БД) | | Коннекты | 5 OpenAI-бэкендов: idx0 OmniRoute, idx1 German/Hermes (`hermes-agent`), idx2 GLM z.ai, idx3 openclaw/Антошка, **idx4 cptr (Mac)** (`cptr/ai` — агент на Маке Олега, `http://10.0.0.180:8000/v1`, рулит реальными файлами Мака; мозг OmniRoute via NetBird). Был песочница LXC 146 → перенаправлен на Mac 2026-06-30, см. [[../../decisions/2026-06-30-cptr-on-mac]] | +| ⚠️ env-флаг для cptr | `ENABLE_FORWARD_USER_INFO_HEADERS=true` (добавлен 2026-06-30) — иначе Open WebUI не шлёт `X-OpenWebUI-Chat-Id`, и **агент cptr теряет контекст между ходами** (каждое сообщение = новая сессия). Это env, не persistent-config → контейнер пересоздан с `--env-file /root/owui.env` (туда сдамплены все 44 env через `docker inspect`, добавлен флаг); том `open-webui` сохранён | | Назначение | Личный веб-клиент «как ChatGPT» поверх OmniRoute. Грабли: первый старт тянет embedding-модель с HuggingFace (~1 ГБ, медленно из РФ → DNS контейнера = 1.1.1.1 против FakeIP роутера). См. [[../../decisions/2026-06-22-open-webui-deploy]] | ---