# `mix slink.smoke`
[🔗](https://github.com/wkirschbaum/slink/blob/v0.6.0/lib/mix/tasks/slink.smoke.ex#L1)

Verifies a real workspace end to end — `auth.test`, but for everything Slink
uses, including whether the **AI streaming surface** is enabled for the app.

    SLACK_BOT_TOKEN=xoxb-... mix slink.smoke C0123456789

It posts a couple of test messages to the given channel (invite the bot
first), so point it at a private testing channel. Steps:

  1. `auth.test` — who the token is.
  2. `chat.postMessage` — the base test message.
  3. `reactions.add` / `reactions.remove` — what `working/3` needs.
  4. `chat.startStream` → `appendStream` → `stopStream` into the test
     message's thread — **informational**: reports whether AI streaming
     (`stream_reply/3`) is available; many apps simply don't have the
     feature enabled, which is fine.
  5. `chat.update` — marks the test message done.

Each step prints its result; the task exits non-zero if a required step
fails. For offline handler tests, use `Slink.Testing` instead — this task is
the live half of the story.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
