diff --git a/docs/uk/channels/slack.md b/docs/uk/channels/slack.md
index 102f903a1..2a94a8bf4 100644
--- a/docs/uk/channels/slack.md
+++ b/docs/uk/channels/slack.md
@@ -1,29 +1,29 @@
---
read_when:
- - Налаштування Slack або налагодження режиму socket/HTTP у Slack
+ - Налаштування Slack або налагодження режиму Slack socket/HTTP
summary: Налаштування Slack і поведінка під час виконання (Socket Mode + HTTP Request URLs)
title: Slack
x-i18n:
- generated_at: "2026-04-06T09:17:31Z"
+ generated_at: "2026-04-07T00:08:10Z"
model: gpt-5.4
provider: openai
- source_hash: 11571e7e10cfbf4de91dc1b1ed6582cd94afdcf6c3356fdd3ccc770096c6dd31
+ source_hash: 2b8fd2cc6c638ee82069f0af2c2b6f6f49c87da709b941433a0343724a9907ea
source_path: channels/slack.md
workflow: 15
---
# Slack
-Статус: готовий до продакшену для особистих повідомлень і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; HTTP Request URLs також підтримуються.
+Статус: готово до продакшну для приватних повідомлень і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; HTTP Request URLs також підтримуються.
-
- Особисті повідомлення Slack типово працюють у режимі зіставлення.
+
+ Приватні повідомлення Slack типово працюють у режимі сполучення.
-
+
Нативна поведінка команд і каталог команд.
-
+
Міжканальна діагностика та сценарії відновлення.
@@ -36,8 +36,8 @@ x-i18n:
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочу область для свого застосунку
- - вставте [приклад маніфесту](#manifest-and-scope-checklist) нижче й продовжуйте створення
+ - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку
+ - вставте [приклад manifest](#manifest-and-scope-checklist) нижче та продовжте створення
- згенеруйте **App-Level Token** (`xapp-...`) з `connections:write`
- установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -57,7 +57,7 @@ x-i18n:
}
```
- Резервне значення через env (лише для типового облікового запису):
+ Резервне джерело через env (лише для типового облікового запису):
```bash
SLACK_APP_TOKEN=xapp-...
@@ -82,8 +82,8 @@ openclaw gateway
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочу область для свого застосунку
- - вставте [приклад маніфесту](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням
+ - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку
+ - вставте [приклад manifest](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням
- збережіть **Signing Secret** для перевірки запитів
- установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -125,7 +125,7 @@ openclaw gateway
-## Контрольний список маніфесту та scope
+## Контрольний список manifest і scope
@@ -291,12 +291,12 @@ openclaw gateway
- Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (власне ім’я користувача та піктограму) замість типової ідентичності застосунку Slack.
+ Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (власне ім’я користувача та значок) замість типової ідентичності застосунку Slack.
- Якщо ви використовуєте піктограму emoji, Slack очікує синтаксис `:emoji_name:`.
+ Якщо ви використовуєте значок emoji, Slack очікує синтаксис `:emoji_name:`.
-
- Якщо ви налаштовуєте `channels.slack.userToken`, типовими scope для читання є:
+
+ Якщо ви налаштовуєте `channels.slack.userToken`, типовими scopes для читання є:
- `channels:history`, `groups:history`, `im:history`, `mpim:history`
- `channels:read`, `groups:read`, `im:read`, `mpim:read`
@@ -304,7 +304,7 @@ openclaw gateway
- `reactions:read`
- `pins:read`
- `emoji:read`
- - `search:read` (якщо ви залежите від читання через пошук Slack)
+ - `search:read` (якщо ви залежите від читання через Slack search)
@@ -312,31 +312,31 @@ openclaw gateway
## Модель токенів
- `botToken` + `appToken` обов’язкові для Socket Mode.
-- Режим HTTP вимагає `botToken` + `signingSecret`.
+- Для режиму HTTP потрібні `botToken` + `signingSecret`.
- `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті
рядки або об’єкти SecretRef.
-- Токени в конфігурації мають пріоритет над резервними значеннями env.
-- Резервні значення env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до типового облікового запису.
-- `userToken` (`xoxp-...`) задається лише в конфігурації (без резервного значення env) і типово працює в режимі лише для читання (`userTokenReadOnly: true`).
+- Токени в конфігурації мають пріоритет над резервним джерелом через env.
+- Резервне джерело через env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовується лише до типового облікового запису.
+- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного джерела через env) і типово працює в режимі лише для читання (`userTokenReadOnly: true`).
-Поведінка знімка стану:
+Поведінка знімка статусу:
- Перевірка облікового запису Slack відстежує поля `*Source` і `*Status`
- для кожних облікових даних (`botToken`, `appToken`, `signingSecret`, `userToken`).
+ для кожного облікового запису (`botToken`, `appToken`, `signingSecret`, `userToken`).
- Статус може бути `available`, `configured_unavailable` або `missing`.
- `configured_unavailable` означає, що обліковий запис налаштовано через SecretRef
- або інше не-inline джерело секретів, але поточний шлях команди/виконання
+ або інше не вбудоване джерело секрету, але поточна команда/шлях виконання
не зміг визначити фактичне значення.
- У режимі HTTP включається `signingSecretStatus`; у Socket Mode
обов’язковою парою є `botTokenStatus` + `appTokenStatus`.
-Для читання дій/каталогів перевага може надаватися токену користувача, якщо його налаштовано. Для запису пріоритет зберігається за bot token; запис через токен користувача дозволено лише коли `userTokenReadOnly: false` і bot token недоступний.
+Для дій/читання каталогу user token може мати пріоритет, якщо його налаштовано. Для запису bot token залишається пріоритетним; запис через user token дозволено лише коли `userTokenReadOnly: false` і bot token недоступний.
## Дії та обмеження
-Діями Slack керує `channels.slack.actions.*`.
+Дії Slack контролюються через `channels.slack.actions.*`.
Доступні групи дій у поточному інструментарії Slack:
@@ -348,34 +348,34 @@ openclaw gateway
| memberInfo | увімкнено |
| emojiList | увімкнено |
-Поточні дії для повідомлень Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`.
+Поточні дії з повідомленнями Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`.
## Керування доступом і маршрутизація
-
- `channels.slack.dmPolicy` керує доступом до особистих повідомлень (застаріле: `channels.slack.dm.policy`):
+
+ `channels.slack.dmPolicy` керує доступом до приватних повідомлень (застаріле: `channels.slack.dm.policy`):
- `pairing` (типово)
- `allowlist`
- - `open` (вимагає, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`)
+ - `open` (потрібно, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`)
- `disabled`
- Прапорці особистих повідомлень:
+ Прапорці для приватних повідомлень:
- `dm.enabled` (типово true)
- `channels.slack.allowFrom` (рекомендовано)
- `dm.allowFrom` (застаріле)
- - `dm.groupEnabled` (групові особисті повідомлення типово false)
+ - `dm.groupEnabled` (групові приватні повідомлення типово false)
- `dm.groupChannels` (необов’язковий allowlist MPIM)
- Пріоритет для багатьох облікових записів:
+ Пріоритет для кількох облікових записів:
- `channels.slack.accounts.default.allowFrom` застосовується лише до облікового запису `default`.
- - Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не заданий.
+ - Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не задано.
- Іменовані облікові записи не успадковують `channels.slack.accounts.default.allowFrom`.
- Зіставлення в особистих повідомленнях використовує `openclaw pairing approve slack `.
+ Для сполучення в приватних повідомленнях використовується `openclaw pairing approve slack `.
@@ -386,15 +386,15 @@ openclaw gateway
- `allowlist`
- `disabled`
- Allowlist каналів міститься в `channels.slack.channels` і має використовувати стабільні ID каналів.
+ Allowlist каналів розміщується в `channels.slack.channels` і має використовувати стабільні ID каналів.
- Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час виконання використовується `groupPolicy="allowlist"` і записується попередження (навіть якщо задано `channels.defaults.groupPolicy`).
+ Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час виконання використовується резервне значення `groupPolicy="allowlist"` і записується попередження в журнал (навіть якщо встановлено `channels.defaults.groupPolicy`).
- Визначення імені/ID:
+ Визначення імен/ID:
- - записи allowlist каналів і allowlist особистих повідомлень визначаються під час запуску, якщо доступ токена це дозволяє
- - нерозв’язані записи імен каналів зберігаються як налаштовані, але типово ігноруються для маршрутизації
- - авторизація вхідних подій і маршрутизація каналів типово орієнтовані на ID; пряме зіставлення за ім’ям користувача/slug вимагає `channels.slack.dangerouslyAllowNameMatching: true`
+ - записи allowlist каналів і allowlist приватних повідомлень визначаються під час запуску, якщо доступ токена це дозволяє
+ - записи з невизначеними іменами каналів зберігаються як налаштовані, але типово ігноруються для маршрутизації
+ - вхідна авторизація та маршрутизація каналів типово орієнтовані на ID; пряме зіставлення за ім’ям користувача/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
@@ -405,9 +405,9 @@ openclaw gateway
- явна згадка застосунку (`<@botId>`)
- шаблони regex для згадок (`agents.list[].groupChat.mentionPatterns`, резервно `messages.groupChat.mentionPatterns`)
- - неявна поведінка відповіді в ланцюжку боту
+ - неявна поведінка reply-to-bot у тредах (вимикається, коли `thread.requireExplicitMention` має значення `true`)
- Керування на рівні каналу (`channels.slack.channels.`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`):
+ Елементи керування для кожного каналу (`channels.slack.channels.`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`):
- `requireMention`
- `users` (allowlist)
@@ -415,35 +415,36 @@ openclaw gateway
- `skills`
- `systemPrompt`
- `tools`, `toolsBySender`
- - формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"`
- (застарілі ключі без префікса, як і раніше, зіставляються лише з `id:`)
+ - формат ключів `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"`
+ (застарілі ключі без префікса все ще зіставляються лише з `id:`)
-## Ланцюжки, сесії та теги відповіді
+## Треди, сесії та теги reply
-- Особисті повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
-- З типовим `session.dmScope=main` особисті повідомлення Slack згортаються в основну сесію агента.
+- Приватні повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
+- Із типовим `session.dmScope=main` приватні повідомлення Slack згортаються в основну сесію агента.
- Сесії каналів: `agent::slack:channel:`.
-- Відповіді в ланцюжках можуть створювати суфікси сесій ланцюжків (`:thread:`), де це застосовно.
+- Відповіді в тредах можуть створювати суфікси сесій тредів (`:thread:`), де це застосовно.
- Типове значення `channels.slack.thread.historyScope` — `thread`; типове значення `thread.inheritParent` — `false`.
-- `channels.slack.thread.initialHistoryLimit` керує тим, скільки наявних повідомлень ланцюжка отримується під час запуску нової сесії ланцюжка (типово `20`; задайте `0`, щоб вимкнути).
+- `channels.slack.thread.initialHistoryLimit` керує кількістю наявних повідомлень треду, які отримуються під час запуску нової сесії треду (типово `20`; установіть `0`, щоб вимкнути).
+- `channels.slack.thread.requireExplicitMention` (типово `false`): коли має значення `true`, пригнічує неявні згадки в тредах, тож бот відповідає лише на явні згадки `@bot` усередині тредів, навіть якщо бот уже брав участь у треді. Без цього відповіді в треді, де брав участь бот, обходять обмеження `requireMention`.
-Параметри ланцюжків відповідей:
+Елементи керування тредами відповідей:
- `channels.slack.replyToMode`: `off|first|all|batched` (типово `off`)
- `channels.slack.replyToModeByChatType`: для кожного `direct|group|channel`
- застаріле резервне значення для прямих чатів: `channels.slack.dm.replyToMode`
-Підтримуються ручні теги відповіді:
+Підтримуються ручні теги reply:
- `[[reply_to_current]]`
- `[[reply_to:]]`
-Примітка: `replyToMode="off"` вимикає **усі** ланцюжки відповідей у Slack, зокрема явні теги `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Різниця відображає моделі ланцюжків на платформах: ланцюжки Slack приховують повідомлення з каналу, тоді як відповіді Telegram лишаються видимими в основному потоці чату.
+Примітка: `replyToMode="off"` вимикає **усі** треди відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Різниця відображає моделі тредів платформ: у Slack треди приховують повідомлення з каналу, тоді як у Telegram replies залишаються видимими в основному потоці чату.
-## Реакції підтвердження
+## Ack-реакції
`ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення.
@@ -452,29 +453,29 @@ openclaw gateway
- `channels.slack.accounts..ackReaction`
- `channels.slack.ackReaction`
- `messages.ackReaction`
-- резервне значення emoji ідентичності агента (`agents.list[].identity.emoji`, інакше `"👀"`)
+- резервне значення emoji з ідентичності агента (`agents.list[].identity.emoji`, інакше "👀")
Примітки:
- Slack очікує shortcodes (наприклад, `"eyes"`).
- Використовуйте `""`, щоб вимкнути реакцію для облікового запису Slack або глобально.
-## Потокове передавання тексту
+## Потокова передача тексту
-`channels.slack.streaming` керує поведінкою попереднього перегляду в реальному часі:
+`channels.slack.streaming` керує поведінкою live preview:
-- `off`: вимкнути потоковий попередній перегляд у реальному часі.
+- `off`: вимкнути live preview streaming.
- `partial` (типово): замінювати текст попереднього перегляду останнім частковим виводом.
-- `block`: додавати порційні оновлення попереднього перегляду.
-- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати остаточний текст.
+- `block`: додавати фрагментовані оновлення попереднього перегляду.
+- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати фінальний текст.
-`channels.slack.nativeStreaming` керує нативним потоковим передаванням тексту Slack, коли `streaming` має значення `partial` (типово: `true`).
+`channels.slack.nativeStreaming` керує нативною потоковою передачею тексту Slack, коли `streaming` має значення `partial` (типово: `true`).
-- Щоб відображалося нативне потокове передавання тексту, має бути доступний ланцюжок відповіді. Вибір ланцюжка все одно підпорядковується `replyToMode`. Без нього використовується звичайний чорновий попередній перегляд.
-- Для медіа та нетекстових payload використовується звичайна доставка.
-- Якщо потокове передавання переривається посеред відповіді, OpenClaw повертається до звичайної доставки для решти payload.
+- Щоб з’явилася нативна потокова передача тексту, має бути доступний тред відповіді. Вибір треду, як і раніше, підпорядковується `replyToMode`. Без нього використовується звичайний чернетковий попередній перегляд.
+- Медіа та нетекстові корисні навантаження повертаються до звичайної доставки.
+- Якщо потокова передача зламається посеред відповіді, OpenClaw повернеться до звичайної доставки для решти корисних навантажень.
-Використовуйте чорновий попередній перегляд замість нативного потокового передавання тексту Slack:
+Використовуйте чернетковий попередній перегляд замість нативної потокової передачі тексту Slack:
```json5
{
@@ -489,12 +490,12 @@ openclaw gateway
Застарілі ключі:
-- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрується в `channels.slack.streaming`.
-- булеве `channels.slack.streaming` автоматично мігрується в `channels.slack.nativeStreaming`.
+- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрує до `channels.slack.streaming`.
+- булевий `channels.slack.streaming` автоматично мігрує до `channels.slack.nativeStreaming`.
-## Резервна реакція друку
+## Резервний варіант з typing reaction
-`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а після завершення виконання прибирає її. Це найкорисніше поза відповідями в ланцюжках, де використовується типовий індикатор стану "is typing...".
+`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це найкорисніше поза відповідями в тредах, де використовується типовий індикатор стану "is typing...".
Порядок визначення:
@@ -504,66 +505,66 @@ openclaw gateway
Примітки:
- Slack очікує shortcodes (наприклад, `"hourglass_flowing_sand"`).
-- Реакція надсилається за принципом best-effort, а очищення автоматично намагається виконатися після завершення відповіді або сценарію помилки.
+- Реакція надсилається за принципом best-effort, а очищення автоматично намагається виконатися після відповіді або завершення шляху помилки.
## Медіа, розбиття на частини та доставка
- Вкладення файлів Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються в сховище медіа, якщо отримання успішне та дозволяють обмеження розміру.
+ Файлові вкладення Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження розміру.
Типове обмеження розміру вхідних даних під час виконання — `20MB`, якщо не перевизначено через `channels.slack.mediaMaxMb`.
- - текстові частини використовують `channels.slack.textChunkLimit` (типово 4000)
+ - текстові фрагменти використовують `channels.slack.textChunkLimit` (типово 4000)
- `channels.slack.chunkMode="newline"` вмикає розбиття спочатку за абзацами
- - надсилання файлів використовує API завантаження Slack і може включати відповіді в ланцюжках (`thread_ts`)
- - обмеження вихідних медіа задається `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канал використовує типові значення kind MIME з конвеєра медіа
+ - надсилання файлів використовує API завантаження Slack і може включати відповіді в тредах (`thread_ts`)
+ - обмеження вихідних медіа дотримується `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канали використовують типові значення MIME-kind із конвеєра медіа
Бажані явні цілі:
- - `user:` для особистих повідомлень
+ - `user:` для приватних повідомлень
- `channel:` для каналів
- Особисті повідомлення Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
+ Приватні повідомлення Slack відкриваються через API бесід Slack під час надсилання до цілей користувача.
-## Команди та поведінка слеш-команд
+## Команди та поведінка slash
-- Автоматичний режим нативних команд **вимкнений** для Slack (`commands.native: "auto"` не вмикає нативні команди Slack).
+- Нативний автоматичний режим команд для Slack **вимкнено** (`commands.native: "auto"` не вмикає нативні команди Slack).
- Увімкніть нативні обробники команд Slack через `channels.slack.commands.native: true` (або глобально `commands.native: true`).
-- Коли нативні команди ввімкнені, зареєструйте відповідні слеш-команди в Slack (імена `/`), з одним винятком:
+- Коли нативні команди ввімкнено, зареєструйте відповідні slash-команди у Slack (імена `/`), з одним винятком:
- зареєструйте `/agentstatus` для команди status (Slack резервує `/status`)
-- Якщо нативні команди не ввімкнені, ви можете запускати одну налаштовану слеш-команду через `channels.slack.slashCommand`.
+- Якщо нативні команди не ввімкнено, можна запускати одну налаштовану slash-команду через `channels.slack.slashCommand`.
- Нативні меню аргументів тепер адаптують свою стратегію відображення:
- до 5 варіантів: блоки кнопок
- 6-100 варіантів: статичне меню вибору
- - понад 100 варіантів: зовнішній вибір з асинхронним фільтруванням варіантів, якщо доступні обробники опцій interactivity
+ - понад 100 варіантів: зовнішній вибір з асинхронною фільтрацією варіантів, якщо доступні обробники параметрів interactivity
- якщо закодовані значення варіантів перевищують обмеження Slack, потік повертається до кнопок
-- Для довгих payload варіантів меню аргументів слеш-команд використовують діалог підтвердження перед відправленням вибраного значення.
+- Для довгих корисних навантажень варіантів меню аргументів slash-команд використовують діалог підтвердження перед відправленням вибраного значення.
-Типові параметри слеш-команд:
+Типові параметри slash-команд:
- `enabled: false`
- `name: "openclaw"`
- `sessionPrefix: "slack:slash"`
- `ephemeral: true`
-Сесії слеш-команд використовують ізольовані ключі:
+Сесії slash використовують ізольовані ключі:
- `agent::slack:slash:`
-і все одно маршрутизують виконання команди до цільової сесії розмови (`CommandTargetSessionKey`).
+і все ще маршрутизують виконання команд відносно сесії цільової бесіди (`CommandTargetSessionKey`).
## Інтерактивні відповіді
-Slack може відображати інтерактивні елементи керування відповідями, створеними агентом, але ця функція типово вимкнена.
+Slack може відображати інтерактивні елементи керування відповідями, створеними агентом, але цю функцію типово вимкнено.
Увімкніть її глобально:
@@ -579,7 +580,7 @@ Slack може відображати інтерактивні елементи
}
```
-Або увімкніть її лише для одного облікового запису Slack:
+Або ввімкніть її лише для одного облікового запису Slack:
```json5
{
@@ -597,7 +598,7 @@ Slack може відображати інтерактивні елементи
}
```
-Коли це ввімкнено, агенти можуть виводити директиви відповіді лише для Slack:
+Коли функцію ввімкнено, агенти можуть надсилати директиви відповідей лише для Slack:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
@@ -607,33 +608,34 @@ Slack може відображати інтерактивні елементи
Примітки:
- Це UI, специфічний для Slack. Інші канали не перекладають директиви Slack Block Kit у власні системи кнопок.
-- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не сирі значення, створені агентом.
-- Якщо згенеровані інтерактивні блоки перевищують обмеження Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання недійсного payload blocks.
+- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не необроблені значення, створені агентом.
+- Якщо згенеровані інтерактивні блоки перевищать обмеження Slack Block Kit, OpenClaw повернеться до початкової текстової відповіді замість надсилання недійсного корисного навантаження blocks.
-## Exec approvals у Slack
+## Погодження exec у Slack
-Slack може працювати як нативний клієнт погодження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала.
+Slack може діяти як нативний клієнт погодження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала.
-- Для нативної маршрутизації в особисті повідомлення/канали використовуються `channels.slack.execApprovals.*`.
-- Погодження plugin також можуть визначатися через ту саму Slack-native поверхню кнопок, коли запит уже потрапляє в Slack і тип id погодження — `plugin:`.
-- Авторизація погоджувача все одно застосовується: лише користувачі, визначені як approvers, можуть погоджувати або відхиляти запити через Slack.
+- Погодження exec використовують `channels.slack.execApprovals.*` для нативної маршрутизації до приватних повідомлень/каналів.
+- Погодження plugin також можуть визначатися через ту саму поверхню нативних кнопок Slack, коли запит уже надходить у Slack, а тип ID погодження — `plugin:`.
+- Авторизація того, хто погоджує, як і раніше, примусово застосовується: лише користувачі, визначені як approvers, можуть погоджувати або відхиляти запити через Slack.
-Це використовує ту саму спільну поверхню кнопок погодження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на погодження відображаються як кнопки Block Kit безпосередньо в розмові.
+Це використовує ту саму спільну поверхню кнопок погодження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на погодження відображаються як кнопки Block Kit безпосередньо в бесіді.
Коли ці кнопки присутні, вони є основним UX погодження; OpenClaw
-має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що погодження в чаті недоступні або ручне погодження — єдиний шлях.
+має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що
+погодження в чаті недоступні або ручне погодження є єдиним шляхом.
Шлях конфігурації:
- `channels.slack.execApprovals.enabled`
-- `channels.slack.execApprovals.approvers` (необов’язково; за можливості використовується резервне значення з `commands.ownerAllowFrom`)
+- `channels.slack.execApprovals.approvers` (необов’язково; за можливості повертається до `commands.ownerAllowFrom`)
- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, типово: `dm`)
- `agentFilter`, `sessionFilter`
-Slack автоматично вмикає нативні exec approvals, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один
+Slack автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один
approver. Установіть `enabled: false`, щоб явно вимкнути Slack як нативний клієнт погодження.
Установіть `enabled: true`, щоб примусово ввімкнути нативні погодження, коли approvers визначаються.
-Типова поведінка без явної конфігурації Slack exec approval:
+Типова поведінка без явної конфігурації погодження exec для Slack:
```json5
{
@@ -643,8 +645,8 @@ approver. Установіть `enabled: false`, щоб явно вимкнут
}
```
-Явна конфігурація Slack-native потрібна лише тоді, коли ви хочете перевизначити approvers, додати фільтри або
-увімкнути доставку до початкового чату:
+Явна нативна конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити approvers, додати фільтри або
+вибрати доставку в чат походження:
```json5
{
@@ -660,41 +662,41 @@ approver. Установіть `enabled: false`, щоб явно вимкнут
}
```
-Спільне переспрямування `approvals.exec` — окреме. Використовуйте його лише тоді, коли запити на exec approval також мають
-маршрутизуватися до інших чатів або явно позасмугових цілей. Спільне переспрямування `approvals.plugin` також
-окреме; Slack-native кнопки все одно можуть визначати plugin approvals, коли ці запити вже потрапляють
-до Slack.
+Спільне переспрямування `approvals.exec` є окремим. Використовуйте його лише тоді, коли запити на погодження exec також мають
+маршрутизуватися до інших чатів або явних цілей поза основним каналом. Спільне переспрямування `approvals.plugin` також є
+окремим; нативні кнопки Slack усе ще можуть визначати погодження plugin, коли ці запити вже надходять
+у Slack.
-`/approve` у тому самому чаті також працює в каналах і особистих повідомленнях Slack, які вже підтримують команди. Повну модель переспрямування погоджень див. у [Exec approvals](/uk/tools/exec-approvals).
+Команда `/approve` у тому самому чаті також працює в каналах і приватних повідомленнях Slack, які вже підтримують команди. Див. [Погодження exec](/uk/tools/exec-approvals), щоб ознайомитися з повною моделлю переспрямування погоджень.
## Події та операційна поведінка
-- Редагування/видалення повідомлень і thread broadcast зіставляються в системні події.
-- Події додавання/видалення реакцій зіставляються в системні події.
-- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення pin зіставляються в системні події.
-- `channel_id_changed` може мігрувати ключі конфігурації каналів, коли ввімкнено `configWrites`.
-- Метадані topic/purpose каналу вважаються недовіреним контекстом і можуть бути впроваджені в контекст маршрутизації.
-- Початкова історія ланцюжка та заповнення контексту історії на початку ланцюжка фільтруються за налаштованими allowlist відправників, де це застосовно.
-- Дії блоків і взаємодії modal створюють структуровані системні події `Slack interaction: ...` з насиченими полями payload:
- - дії блоків: вибрані значення, мітки, значення picker і метадані `workflow_*`
- - події modal `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введеними даними форми
+- Редагування/видалення повідомлень і трансляції тредів зіставляються із системними подіями.
+- Події додавання/видалення реакцій зіставляються із системними подіями.
+- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення закріплень зіставляються із системними подіями.
+- `channel_id_changed` може мігрувати ключі конфігурації каналу, коли ввімкнено `configWrites`.
+- Метадані теми/призначення каналу вважаються недовіреним контекстом і можуть бути ін’єктовані в контекст маршрутизації.
+- Початкове повідомлення треду та початкове заповнення контексту історії треду фільтруються відповідно до налаштованих allowlist відправників, де це застосовно.
+- Дії block і взаємодії modal створюють структуровані системні події `Slack interaction: ...` із насиченими полями корисного навантаження:
+ - дії block: вибрані значення, мітки, значення picker і метадані `workflow_*`
+ - події modal `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введеними значеннями форми
-## Вказівники на довідник конфігурації
+## Вказівники на довідкову конфігурацію
-Основний довідник:
+Основне посилання:
- [Довідник конфігурації - Slack](/uk/gateway/configuration-reference#slack)
Високосигнальні поля Slack:
- mode/auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
- - доступ до особистих повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- - перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний режим; тримайте вимкненим, якщо немає потреби)
+ - доступ до приватних повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
+ - перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний варіант; тримайте вимкненим, якщо не потрібно)
- доступ до каналів: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- - ланцюжки/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
+ - треди/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- доставка: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `nativeStreaming`
- операції/можливості: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
-## Усунення несправностей
+## Усунення проблем
@@ -715,12 +717,12 @@ openclaw doctor
-
+
Перевірте:
- `channels.slack.dm.enabled`
- `channels.slack.dmPolicy` (або застаріле `channels.slack.dm.policy`)
- - погодження зіставлення / записи allowlist
+ - дозволи сполучення / записи allowlist
```bash
openclaw pairing list slack
@@ -728,17 +730,17 @@ openclaw pairing list slack
-
+
Перевірте bot token + app token і ввімкнення Socket Mode в налаштуваннях застосунку Slack.
Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або
`appTokenStatus: "configured_unavailable"`, обліковий запис Slack
налаштовано, але поточне середовище виконання не змогло визначити значення,
- яке зберігається через SecretRef.
+ що підтримується SecretRef.
-
+
Перевірте:
- signing secret
@@ -748,27 +750,27 @@ openclaw pairing list slack
Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках
облікового запису, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло
- визначити signing secret, який зберігається через SecretRef.
+ визначити signing secret, що підтримується SecretRef.
-
- Перевірте, що саме ви мали на увазі:
+
+ Перевірте, чи ви справді мали на увазі:
- - режим нативних команд (`channels.slack.commands.native: true`) з реєстрацією відповідних слеш-команд у Slack
- - або режим однієї слеш-команди (`channels.slack.slashCommand.enabled: true`)
+ - режим нативних команд (`channels.slack.commands.native: true`) з відповідними slash-командами, зареєстрованими у Slack
+ - або режим однієї slash-команди (`channels.slack.slashCommand.enabled: true`)
Також перевірте `commands.useAccessGroups` і allowlist каналів/користувачів.
-## Пов’язані матеріали
+## Пов’язані розділи
-- [Зіставлення](/uk/channels/pairing)
+- [Сполучення](/uk/channels/pairing)
- [Групи](/uk/channels/groups)
- [Безпека](/uk/gateway/security)
- [Маршрутизація каналів](/uk/channels/channel-routing)
-- [Усунення несправностей](/uk/channels/troubleshooting)
+- [Усунення проблем](/uk/channels/troubleshooting)
- [Конфігурація](/uk/gateway/configuration)
-- [Слеш-команди](/uk/tools/slash-commands)
+- [Slash-команди](/uk/tools/slash-commands)