> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coderabbit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Collaborate in Slack and Discord

> Carry a Change Stack review into a Slack or Discord thread, subscribe the pull request to events, and choose how autofixes land.

export const EarlyAccessBadge = ({tip = "This feature is in early access. Enable it by setting `early_access: true` in your `.coderabbit.yaml`, or by toggling Early Access on the web interface.", title = "Early Access", cta = "View configuration", href = "/reference/configuration#param-early-access", disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="flask-conical" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const DiscordBadge = ({tip = "This feature is available with CodeRabbit Agent for Discord.", title = "Discord", cta = "Learn more", href = "/discord-agent", disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="discord" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

export const SlackBadge = ({tip = "This feature is available with CodeRabbit Agent for Slack.", title = "Slack", cta = "Learn more", href = "/slack-agent", disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="slack" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

<SlackBadge /> <DiscordBadge /> | <EarlyAccessBadge title="Preview" tip="Change Stack is in preview and still changing." />

A review that needs other people usually needs them somewhere other than the pull request. Change Stack can start a discussion in a connected Slack or Discord destination, keep that thread fed with pull-request events as the change moves, and let you run a small set of CodeRabbit actions from the thread itself.

A discussion starts from the snapshot you are displaying, so what you send is what you were reading. See [snapshots](/change-stack/snapshots) for what that pins and what it does not.

## Start a discussion

You can start and update a Change Stack discussion through supported provider-connected destinations. Which destinations you get depends on the connected Slack or Discord provider and the channel access it resolves — a destination you cannot see is a connection or channel-permission question, not a Change Stack setting.

Updating an existing discussion is part of the same capability: a discussion is a living thread you can push back into, not a one-shot post.

<Info>
  This is about Slack and Discord destinations specifically. **Native provider discussion threads outside GitHub are not surfaced as a Change Stack discussion capability** — a GitLab, Azure DevOps, or Bitbucket discussion thread on the provider itself is not something Change Stack starts or updates.
</Info>

## Subscribe the pull request to events

You can subscribe the pull request to Change Stack event delivery, or unsubscribe it, so the thread keeps up with the change without anyone re-checking the provider.

The choice available to you is **all or none**.

| Subscription            | What you get                                |
| ----------------------- | ------------------------------------------- |
| All pull-request events | Deliver every supported pull-request event. |
| None                    | Disable pull-request event delivery.        |

There is no per-event selection: you take the whole set or none of it.

<Warning>
  A subscription change can fail after it has partly applied — the destination is updated but CodeRabbit's own record of it is not, or the reverse. CodeRabbit reports the failure rather than dropping it silently, but the thread and the subscription control can briefly disagree. Re-apply the change if they do.
</Warning>

## What gets delivered

A subscription delivers thirteen pull-request events, in four groups:

* **Lifecycle** — opened, reopened, ready for review, merged, closed.
* **Change** — new commits or state updates, and edits to the pull request's own metadata or labels.
* **Conversation** — a pull-request comment, an inline review comment, or a resolved review thread.
* **CodeRabbit and CI** — a CodeRabbit comment updated, and CI failing.

## Act from the thread

Eight actions run from a Slack thread. This is the complete set — anything else belongs in Change Stack itself or on the provider. These actions and the event subscription are Slack features; a Discord destination receives the discussion, not this action set.

| Action                                | What it does                                                   |
| ------------------------------------- | -------------------------------------------------------------- |
| Ask CodeRabbit                        | Ask CodeRabbit from the pull-request thread.                   |
| Apply fixes as a commit               | Apply automated fixes in a commit on the pull-request branch.  |
| Apply fixes as a stacked pull request | Apply automated fixes through a separate stacked pull request. |
| Fix CI                                | Ask CodeRabbit to repair CI.                                   |
| Fix unresolved comments               | Ask CodeRabbit to fix unresolved review comments.              |
| Mark comment handled                  | Mark a review comment handled.                                 |
| Subscribe to all events               | Subscribe the thread to all pull-request events.               |
| Unsubscribe                           | Remove pull-request event delivery.                            |

## Choose how autofixes land

You can choose whether supported pull-request events trigger an autofix as a commit or as a stacked pull request. The difference is where the fix lands.

| Mode                         | Where the fix lands                                                                                                                     |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Autofix commit               | A commit on the pull-request branch. It shows up in the author's branch immediately and in the same diff everyone is already reviewing. |
| Autofix stacked pull request | A separate stacked pull request. The fix stays reviewable on its own and the original branch is untouched until someone merges it.      |

For what these automated fixes contain, see [Finishing Touches](/finishing-touches).

## The close checklist

When work on a pull request is about to be wrapped up, CodeRabbit checks five conditions and reports each as **pass**, **fail**, or **unknown**. A fail is a reason to look before closing; an unknown means the condition could not be determined, which is not the same as a pass.

| Condition                      | What a fail means                               |
| ------------------------------ | ----------------------------------------------- |
| Failing checks                 | Required or reported checks are failing.        |
| Merge state                    | The provider's merge state needs attention.     |
| Requested changes              | A submitted review is still requesting changes. |
| Stale branch                   | The pull-request branch is behind its base.     |
| Unresolved CodeRabbit comments | CodeRabbit review comments remain unresolved.   |

## Link expiry

<Warning>
  A Slack unsubscribe link expires after **30 days**. An old thread's unsubscribe link stops working, and unsubscribing then means using the subscription control again rather than the stale link.
</Warning>

## What's next

<CardGroup cols={1}>
  <Card title="Review and merge" icon="git-merge" href="/change-stack/reviewing" horizontal>
    Act on the pull request directly instead of from the thread.
  </Card>

  <Card title="Snapshots" icon="camera" href="/change-stack/snapshots" horizontal>
    See what a discussion pins to and why a thread can fall behind the live pull request.
  </Card>
</CardGroup>
