Skip to content

Approval Flow

Bridges talk to real people in real channels, so they're held to a higher bar than the local chat. The approval flow is the moment when the agent stops and surfaces a confirmation card in Ghast Desktop before it does something with downstream effects.

What triggers an approval

The agent does not stop for every reply. Trivial chat exchanges are auto-sent. Approval triggers fire on:

TriggerWhy
Long replyAnything over a configurable size threshold (default 800 chars).
Outbound file or attachmentSending media to a channel.
Side effects in tool callsA tool the agent uses has writes: true or destructive: true — e.g. posting to another channel, modifying remote state.
Non-actor message in a groupA user who isn't on the channel's approved-actor list asked the agent to do something.
First reply in a newly mapped channelTreated as a sanity check; subsequent replies in that channel run without prompting.
Auto-apply review hitIf Partner Mode's auto-apply rules say to pause, the agent does.

You can tune most of these in Settings → Channels → [Platform] → Approval Rules.

What the approval card shows

The card appears in the desktop client (not in the remote channel). It contains:

  • The channel name and platform.
  • The triggering user's identity.
  • A preview of the message the agent intends to send.
  • A list of any tool calls the agent is about to make (with parameters).
  • Three buttons: Send, Edit & Send, Cancel.

While the card is up, the agent stalls. Other channels and conversations continue working — only the one waiting on approval is paused.

Edit & Send

Sometimes the agent's draft is 90% right. Edit & Send opens an inline editor so you can tweak the message before posting. The edited content is what's sent; the agent doesn't re-generate.

Timing out

If you don't respond within 30 minutes, the request is treated as Cancel. The agent posts a brief "I held off on this — let me know if you still want me to" reaction in the channel (configurable per channel).

Logging

Every approval (granted or denied) is logged in Settings → Channels → [Platform] → Approval Log. The log shows:

  • Timestamp
  • Channel / user
  • Action type
  • Decision
  • Final message content (if sent)

Useful for review or compliance.

Bypassing approvals

You can lower the approval bar per channel, per platform, or per workspace. Reasonable choices:

  • DMs in Telegram — bypass approval (you're the only one in the chat).
  • High-trust internal Slack channels — bypass for short replies, keep for tool calls with side effects.
  • Public-facing channels — keep all approvals.

Settings → Channels → [Platform] → Approval Rules lets you set thresholds.

When approval doesn't trigger

A few cases where the agent posts without pausing, even for non-trivial work:

  • Reactions — emoji reactions are too lightweight to gate.
  • Confirmations and acknowledgements — "got it, working on it" is auto-sent.
  • Already-approved tool calls — if the same exact tool call shape has been approved recently, repeat calls within a short window pass through.

These are conveniences. You can disable each in the rules.