meta(tasks): session handoff — qwen-web unblocked via browser path (ForgetMeAI), next: close/streams-smoke, gemini/kimi/grok

This commit is contained in:
2026-08-22 22:41:18 +03:00
parent ab9df5e5d7
commit 4e15ebc4e4

View File

@@ -1,32 +1,36 @@
---
_last_updated_: 2026-08-22T15:40:00Z
session_id: qwen-web-waf-wall-2026-08-22
_last_updated_: 2026-08-22T18:45:00Z
session_id: forgetmeai-qwen-browser-path-2026-08-22
---
# Next session handoff
## Recent commits
- lwp `74a271a`: feat(notify) — информативные toast'ы token-expired (combo + actionable detail из ошибки executor'а), v0.1.8, 94 теста
- lwp `6ef57bc`: feat(qwen-web) — executor (v2 API, cookie jar, captcha/WAF-детект), --executor CLI, v0.1.7, запушено
- .admin `591ad2ac`/`9d0c2c05`: подзадача llm-web-proxy-qwen-web (заведена → executor готов)
- Бонус-фикс: **Docker Desktop починен** — Electron GPU-крэш (AMD-драйвер нояб 2021) → `DisableHardwareAcceleration: true` в `%APPDATA%\Docker\settings-store.json` (бэкап .bak-20260822). Холодный старт 36с, 0 крэшей.
- lwp `43840ce`: **feat(qwen-web) — браузерный путь через baxia-WAF (v0.1.9)**. src/lib/qwen-browser.js (lazy puppeteer-core, persistent-профиль, фингерпринт-спуфинг, lock-cleanup) + executor runFlow/browser-fallback/force + CLI `--browser [fallback|force]`. Тесты 25/25 новые. **LIVE GREEN: qwen-web HTTP 200 headless** (2+2→«4»), капча руками не понадобилась.
- lwp `27a9e86`: docs(reference/forgetmeai/) — FreeQwenApi browser-fetch паттерн, фингерпринт-сниппет, PoW-солвер, cloakbrowser-заметки; вики-ингест qwen-waf-browser-path.
- .admin `ab9df5e5`: подзадача llm-web-proxy-qwen-web **UNBLOCKED** (статус + таска).
- .admin `46c8a092`: ингест ForgetMeAI-анализа (concept + raw) в .admin вики.
## Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| [llm-web-proxy-qwen-web] (🟡 paused) | executor готов+задеплоен (v0.1.8, комбо qwen-web/qwen-main, свежий cookie юзера в secrets.json); СТЕНА: baxia-WAF капча | **юзер покажет рабочий подход** («из под omniroute работает»); сравнить с executor'ом В КОНТЕЙНЕРЕ omniroute (≠ GitHub main, который я портировал) |
| [llm-web-proxy] (🔴 active) | остаток: п.2 mac/linux autostart live-тест, п.5 gemini/kimi/grok-web | `.tasks/llm-web-proxy.md` |
| Docker Desktop | починен; наблюдать — не рецидивирует ли GPU-крэш (если да → обновить AMD-драйвер) | `docker ps` + `%LOCALAPPDATA%\Docker\log\host\electron-*.log` |
| [llm-web-proxy-qwen-web] (🟡 → фактически DONE) | **РАЗБЛОКИРОВАНА**: браузерный путь работает live (headless, 12s, 200). qwen-main: `browser:{enabled:true,force:true,headless:true}` в live secrets.json. Осталось опц.: live-smoke стриминга + tool-calls через браузер (юнит-тестами покрыты, вживую не гонял) | закрыть таску (ритуал: предложено юзеру) |
| [llm-web-proxy] (🔴 active, claimed vitya) | qwen-web (п.4) снят. Остаток: п.2 mac/linux autostart live-тест, п.5 gemini/kimi/grok-web**та же схема браузерного пути** (kimi cfbt endpoint — FreeKimiAPI референс; z.ai — cloakbrowser-заметки) | `.tasks/llm-web-proxy.md` |
| Вики-знание lwp | qwen-waf-browser-path (implemented), forgetmeai-qwen-browser-fetch (source), docs/reference/forgetmeai/ | `.wiki/` lwp |
## Спроси user'а
- qwen-web: юзер обещал показать что-то интересное (вероятно, рабочий путь через omniroute). Начать с этого.
- Если qwen-web останется капчей-заблокированным — решить: (а) CDP-драйвеный executor, (б) портировать рабочую версию из контейнера omniroute, (в) закрыть подзадачу как «WAF-wall, не масштабируется».
- Закрывать [llm-web-proxy-qwen-web] или сначала live-smoke стриминга/тулов? (acceptance в таске: «lwp test qwen-web — 200, стриминг, tool-calls работают»; 200 ✓ live, стриминг/тулы — только юнит-тесты)
- Следующий провайдер по схеме браузерного пути: gemini-web / kimi-web / grok-web? (FreeKimiAPI/FreeGLMKimiAPI — готовые референсы в docs/reference/forgetmeai/)
## Не делать (preemptive guards)
- НЕ переписывать qwen executor'а с GitHub main ещё раз — в контейнере omniroute лежит РАБОЧАЯ версия (проверить `/app/open-sse/executors/qwen-web.ts` в docker exec, diff с портом).
- НЕ вставлять cookie'и в коммиты/handoff (секреты). Cookie: lwp `secrets.json` (gitignored), /tmp/qwen_cookie_new.txt (свежий, от юзера), /tmp/qwen_cookie.txt (старый из omniroute DB).
- НЕ трогать CDP-браузер :9222 без нужды — там юзер разгадывал капчу вручную, сессия хрупкая.
- НЕ закрывать [llm-web-proxy-qwen-web] без явного решения юзера.
- НЕ закрывать [llm-web-proxy-qwen-web] без coverage-проверки (ритуал: предложено, ждёт «да»).
- НЕ переписывать qwen executor с GitHub main — рабочий путь найден и задеплоен (браузер), сравнение с версией в контейнере omniroute больше не нужно.
- НЕ трогать CDP-браузер :9222 без нужды (хрупкая сессия, капча уже не нужна).
- НЕ вставлять cookie/токены в коммиты и handoff. Cookie qwen — в lwp `secrets.json` (gitignored).
- НЕ пушить в lwp без прогона `npm test` (109 тестов).
## Memory updates за сессию
- (нет на этом раунде — предлагается ингест в вики, см. ритуал закрытия)
- `.admin/.wiki/concepts/forgetmeai-free-web-chat-proxies.md` + `raw/forgetmeai-repo-analysis-2026-08-22.md` — разбор аккаунта ForgetMeAI, карта «что берём в lwp».
- lwp `.wiki/concepts/qwen-waf-browser-path.md` — статус → implemented, гочи: (1) esbuild ренеймит модульную `fetch``fetch2`, имя утекает в page.evaluate-колбэк (фикс: `browserFetch`); (2) осиротевший Chrome держит SingletonLock профиля → cleanProfileLocks().
- lwp `.wiki/sources/forgetmeai-qwen-browser-fetch.md` — ingested (FreeQwenApi).
- Обновлён `.admin/.wiki/concepts/omniroute-combo-deepseek-web-tuning.md` (qwen-секция: браузерный путь подтверждён).