2026 OpenClaw v2026.5.20 гайд:
голос Discord в реальном времени followUsers, OAuth device-code xAI и lint Policy plugin doctor (изоляция на посуточном macOS)
После апгрейда self-hosted Gateway на v2026.5.20 текст в Discord часто работает, а голос — нет; xAI login падает на VPS без localhost-callback браузера; doctor внезапно показывает lint Policy, которого раньше не было. Это тема релиза, а не три случайных инцидента. Гайд даёт три кластера боли, матрицу голос/auth/policy, семь упорядоченных шагов, таблицу triage, три метрики и план аренды 1–3 дня со ссылками на руководство по установке, сопряжение Telegram/Discord и allowlist и FAQ SSH/VNC.
Содержание
- 01. Три кластера боли: follow голоса, headless OAuth xAI, lint Policy
- 02. Матрица: followUsers, bootstrapContextFiles, device-code, Policy plugin
- 03. Семь шагов: апгрейд → голос → xAI → doctor → доказательства
- 04. Triage: симптом → первое действие → ошибка
- 05. Метрики, мифы и план аренды 1–3 дня
- 06. Headless Linux VPS vs посуточный Mac для голоса и auth
01. Три кластера боли: follow голоса, headless OAuth xAI, lint Policy
1) Голос Discord «идёт не в ту комнату» или бот не заходит: v2026.5.20 добавляет voice.followUsers — бот входит, переходит и выходит вместе с настроенными Discord user ID, вместо ожидания /vc join или фиксированного autoJoin. Если вставить display name вместо snowflake или забыть guild/channel allowlists, DMs работают, голос — нет. Release notes подчёркивают проверки allowed-channel, multi-user handoff, ограниченную reconciliation и сохранение DAVE recovery — голос больше не «слушать везде». Сверьте с гайдом сопряжения и allowlist: spoken ingress проходит те же policy gates, что и текст.
2) Auth xAI ломается на VPS/SSH — OAuth ждёт браузер: До 5.20 команды копировали токены с ноутбука или делали хрупкие SSH port-forward для provider OAuth. Релиз добавляет device-code OAuth через openclaw models auth login --provider xai --device-code: URL и код в терминале, подтверждение на любом устройстве, credentials на headless хосте. Типичная ошибка смещается с «callback не доходит до localhost» на «код истёк, у терминала никого» или «неверный порядок auth-профилей после login». Device-code — действие change window с человеком у терминала, не unattended CI.
3) Lint Policy plugin после апгрейда: 5.20 включает Policy plugin для policy-backed conformance каналов, lint doctor и opt-in workspace repair. Строки WARN кажутся «Gateway сломан». На практике lint часто отмечает DM policies, дыры allowlist, plaintext secrets в openclaw.json или каналы вне security baseline. Doctor также предупреждает, если sandbox tool policy скрывает MCP tools, и про symlinked credential files (fail-closed). Запускайте doctor до прод-голоса — Policy дешевле чинить на арендном Mac, чем на live standup.
Три поверхности связаны: realtime голос по умолчанию инжектит IDENTITY.md, USER.md и SOUL.md в provider instructions — drift persona в голосе чаще проблема bootstrap-файлов, не routing. Device-code xAI даёт рабочий inference path для voice turns к моделям класса Grok. Lint Policy показывает, conformant ли канал Discord для follow-users с вашей историей pairing и allowlist.
02. Матрица: followUsers, bootstrapContextFiles, device-code, Policy plugin
Используйте таблицу в change window как acceptance sheet — не маркетинг. Архивируйте правую колонку на арендном хосте до удаления secrets.
| Поверхность (5.20) | Сигнал OK | Доказательство аренды |
|---|---|---|
voice.followUsers |
Бот входит, когда listed user заходит в allowed voice channel; переходит; выходит при disconnect | Redacted voice-state log + JSON channels status --channel discord |
voice.followUsersEnabled |
По умолчанию true при настроенном списке; false — пауза без удаления ID | Скриншот панели голоса Control UI |
voice.realtime.bootstrapContextFiles |
По умолчанию IDENTITY/USER/SOUL; subset или [] отключает; AGENTS.md остаётся в agent context |
Фрагмент transcript до/после persona grounding |
| xAI device-code OAuth | models auth login --provider xai --device-code завершён; model list показывает xAI |
Redacted auth profile list; без API keys в config JSON |
| Policy plugin / doctor lint | Conformance WARN устранён или waived с ticket; opt-in repair если выбран | stdout openclaw doctor до/после fix |
| Voice allowlist ingress | Речь non-allowlisted member отклонена до transcription | Probe allowlisted vs blocked test account |
Выбирайте join mode осознанно. followUsers, когда бот должен следовать за операторами между huddle rooms. autoJoin для фиксированных room assistants. /vc join для разовых сессий. Смешение всех трёх без документированного precedence даёт tickets «ghost bot в пустом канале».
bootstrapContextFiles: что меняется в realtime голосе
Realtime voice turns быстрые и lean; полный workspace context не replay автоматически. По умолчанию 5.20 инжектит IDENTITY.md, USER.md и SOUL.md, чтобы spoken replies совпадали с persona routed agent. Задайте voice.realtime.bootstrapContextFiles subset для leaner prompts или [] для нейтрального тона. Это не заменяет openclaw_agent_consult для tools, memory и актуальных фактов — только identity grounding для low latency. «Generic в голосе, нормально в тексте» — сначала bootstrap files.
Policy plugin: lint vs repair
Policy plugin добавляет doctor-visible lint для channel conformance — structured nudges при расхождении DM policy, guild allowlists или channel maps с declared security posture. Opt-in workspace repair применяет safe fixes при явном согласии; не silent auto-migrate в prod hours. Plaintext provider keys? Мигрируйте в SecretRef до голоса в customer guilds. Doctor 5.20 также снимает stale thinkingFormat compat keys на doctor --fix и предупреждает, если sandbox policy скрывает MCP tools — в том же отчёте, что Policy lint.
03. Семь шагов: апгрейд → голос → xAI → doctor → доказательства
- Заморозить baseline: Записать
openclaw --version, блок голоса Discord, xAI auth profiles иopenclaw channels status --json. Путьopenclaw.jsonи args запуска Gateway. - Backup и апгрейд: Snapshot config и workspace profile files (IDENTITY/USER/SOUL).
openclaw updateдо v2026.5.20; stdout, exit code и npm integrity при pin tarball. - Настроить followUsers Discord: Snowflake IDs (raw или
discord:<id>). Подтвердить guild/channel allowlists из гайда сопряжения. Restart Gateway после изменений голоса. - Настроить bootstrapContextFiles: С defaults; короткий spoken probe. Persona тяжёлая — subset; нужна нейтральность —
[]и generic tone. - Авторизовать xAI на headless: Device-code login по SSH/VPS; verification на phone/laptop в lifetime кода. Model list и одна completion до customer traffic.
- Policy plugin и doctor:
openclaw doctor; resolve lint или waivers. Opt-in repair сначала на disposable host. Re-run послеdoctor --fix. - Сверить каналы и архивировать доказательства: Discord configured/enabled vs успех voice probe. Redact logs; удалить demo tokens и temp OAuth profiles на rental machine.
# Апгрейд и baseline
openclaw --version
openclaw channels status --json | head -c 8000 | tee /tmp/oc520-channels-before.json
openclaw update
# Headless xAI OAuth (URL/code в любом браузере)
openclaw models auth login --provider xai --device-code
# Policy conformance и health каналов
openclaw doctor 2>&1 | tee /tmp/oc520-doctor.txt
openclaw channels status --probe --channel discord
Держите минимум 15 GB свободно перед parallel upgrade, voice provider warmup и doctor repair — 5.20 также bump bundled Codex harness и Baileys rc12. Bandwidth и cost аренды: FAQ SSH/VNC. Fresh installs: multiplatform guide для Node 24 (или ≥22.19).
Пример фрагмента followUsers
Voice settings под блоком Discord channel. IDs — numeric snowflakes из Developer Mode:
{
"channels": {
"discord": {
"voice": {
"enabled": true,
"followUsers": ["123456789012345678", "discord:987654321098765432"],
"followUsersEnabled": true,
"realtime": {
"bootstrapContextFiles": ["IDENTITY.md", "USER.md", "SOUL.md"]
}
}
}
}
}
После edit restart Gateway; followed user входит в allowlisted voice channel, tail logs. Bot не двигается — проверить followUsersEnabled, allowlist, Connect/Speak до смены model routes.
Device-code OAuth workflow на VPS
SSH на Gateway host, device-code login, держать session до завершения auth. URL на trusted device, code, scopes. Не paste codes в chat logs. Auth ok, completions fail — auth profile order и старый plaintext xAI key в config; doctor WARN про plaintext secrets для mixed storage bugs.
04. Triage: симптом → первое действие → ошибка
| Симптом | Первое действие | Ошибка |
|---|---|---|
| Bot игнорирует operator в голосе | User ID в followUsers; allowlisted channel; Connect permission |
Поставить groupPolicy: open на text чтобы «починить» голос |
| Voice persona ≠ text agent | Проверить bootstrapContextFiles и profile MD в workspace |
Дублировать весь AGENTS.md в voice config (unsupported) |
| xAI device-code expired | Re-run login с готовым operator; clock skew на VPS | Embed long-lived API keys в git-tracked JSON |
| Doctor floods Policy WARN | Triage: secrets, allowlists, sandbox/MCP; fix или waive с ticket | Disable doctor или delete Policy plugin blindly |
| Random speech transcribed в голосе | Tighten Discord member/channel allowlists; blocked account probe | Assume voice public потому что bot joined channel |
| Bot stuck после DAVE disconnect | Retry follow-user move; DAVE recovery notes 5.20; restart Gateway | Remove allowlists чтобы force join |
Text Discord ok, voice fail — split problem: app registration и OAuth shared, voice добавляет realtime provider, follow state machine и ingress allowlists. Capture channels status и voice log slice до трёх одновременных изменений — parallel re-auth xAI, rewrite SOUL.md и widen allowlists редко показывают, какой fix сработал.
05. Метрики, мифы и план аренды 1–3 дня
- Метрика 1: GitHub release v2026.5.20 опубликован 2026-05-21 с Discord
followUsers, realtime bootstrap injection, bundled Policy plugin и xAI device-code OAuth — audit anchor change ticket. - Метрика 2: npm integrity
openclaw@2026.5.20на release page (sha512-cgshS76CxS3Vp9NGtJR2UGtVZxVR5/4rvok8DKGGL19DugAftNabsXfYajyAEiJ3dC8QTXNqF62MdQNzUnQe8Q==); pin на rental hosts при repro customer incidents. - Метрика 3: Operator samples на M4 rental hardware — 3–5 часов на validate followUsers, device-code OAuth и clear Policy lint при documented Discord allowlists — дольше при pairing debt из pre-5.12 estates.
Миф A: «followUsers replaces allowlists.» Нет — ingress policy-gated. Миф B: «Device-code убирает SecretRef.» Plaintext WARNs relevant. Миф C: «Policy lint = rollback.» Чаще conformance debt, не runtime crash.
День 1 (freeze + upgrade + doctor): Утро channels status и auth profiles. День upgrade 5.20, archive doctor. Вечер followUsers для one operator ID в test guild.
День 2 (voice persona + xAI): Tune bootstrapContextFiles spoken probes; device-code login на same host shape как prod VPS; xAI completion на routed agent.
День 3 (Policy repair + handoff): Resolve/waive lint; allowlisted vs blocked voice probes; wipe rental secrets; runbook section с voice IDs, bootstrap choice, auth profile order.
Export четыре артефакта: redacted channels status JSON, doctor summary, voice probe transcript, auth profile list без secrets. Stakeholders — follow on-call engineer; auditors — allowlists и Policy lint addressed deliberately.
06. Headless Linux VPS vs посуточный Mac для голоса и auth
Linux VPS дешёв для 24/7 Gateway uptime и natural home для device-code OAuth — browser step на phone, credentials на server. Ломается, когда нужны Discord voice state debugging, Control UI voice toggles, Keychain deploy keys и чтение profile markdown под realtime audio. SSH logs, phone browser и personal Discord client скрывают wall-clock cost, часто выше короткой Apple Silicon rental.
Большая часть CLI checklist на VPS alone; prod может остаться Linux после acceptance. Rental value — rehearsal fidelity: native macOS — Gateway, Control UI, Discord desktop в одной session, followUsers evidence без log copy across machines, Policy repair на disposable workspace как Mac-centric dev habits. Containers для spike tests, плохо для voice latency tuning и follow-mode handoff UX.
Handoff-ready runbook за 1–3 дня без покупки hardware — и без prod OAuth codes на engineer personal Discord — посуточный Mac обычно smoother чем VPS SSH + phone OAuth + ad hoc audio. Пакеты: руководство по ценам M4; connectivity: FAQ SSH/VNC.