You are reading Nightly documentation for 0.12.4.dev0+g50bde75.

This documentation may describe behavior that differs from Stable.

Open Stable documentation

Documentation version

0.12.4.dev0+g50bde75 · Nightly

Messaging channels

Messaging channels

Open Settings → Messaging to manage chat identities that may converse with or supervise Holaryn.
The Channel Ecosystem section is separate from Connected Apps: a channel carries conversation
events; a Connected App searches or changes mail, calendar, and file resources.

What the channel cards mean

Telegram, Slack, and Discord cards show a three-stage signal rail:

  1. Identity — the exact external workspace, channel, and user that may speak with Holaryn.
  2. Policy — the Holaryn profile, autonomy, tool policy, rate limit, and optional quiet hours.
  3. Delivery — provider health, cursor, last event, error, and retry-safe delivery state.

The capability list explains whether a provider preserves threads, attachments, buttons, voice,
and other behavior. Unavailable means no live provider lifecycle is attached to this host; it
does not mean a hidden connection is running. Slack and Discord are Channel API reference adapters
in this Nightly and require an explicit host or executable-extension transport. Existing Telegram
polling remains the bundled live path.

Bind one external identity

Select the adapter and enter provider-issued IDs for:

  • Workspace — Telegram chat type, Slack team, Discord guild, or direct;
  • Channel — the exact chat/channel identifier;
  • User — the exact sender identifier;
  • Display name — only for operator recognition; it grants no authority.

Choose the effective Holaryn profile and set:

  • Observe for read/monitor behavior;
  • Assist for normal supervised tasks;
  • Execute only for a deliberately reviewed policy;
  • the tool policy name;
  • inbound events per minute;
  • optional start/end quiet-hour values and an IANA timezone.

Select Bind identity. The binding card shows the effective profile and policy. Provider roles
such as owner or administrator never create Holaryn authority on their own.

Revoke, stop, and resume

To revoke only one identity, enter the exact phrase shown:

REVOKE chb_<binding-id>

Revocation refuses future events but preserves the displayed audit snapshot.

To halt an entire adapter, select Stop channel and type:

STOP telegram

Use the adapter's actual ID for Slack or Discord. Resume requires RESUME <adapter>. Stop is the
right first response to suspected signature compromise, provider flooding, or unexpected activity.

Telegram compatibility

Existing Telegram users do not need to migrate. v0.10.6 keeps the current bot token, enabled
toggle, allowed chat list, profile-to-chat routing, tg:<chat-id> conversations, slash commands,
coding completion notifications, and team escalations.

Continue to configure the live bot in Settings → Messaging → Telegram:

  1. store the bot token;
  2. enable Telegram;
  3. add exact allowed chat IDs;
  4. select Test connection;
  5. restart the host after changing enablement or the token.

An unlisted chat receives its chat ID once and cannot reach the agent. A Channel Ecosystem binding
may be prepared alongside the existing allowlist; it does not remove or rewrite that allowlist.

What happens on retries

Holaryn verifies signatures before parsing and stores provider event identities durably. A webhook
retry, socket reconnect, simultaneous duplicate, or host restart cannot automatically create a
second confirmed run. Reusing an event ID with changed content is refused.

If Holaryn cannot determine whether a run or outbound send completed, it does not retry and risk a
duplicate. The card becomes degraded and explains the uncertain event. Review the run journal and
provider history before taking an explicit recovery action.

Capability fallback

Unsupported behavior is visible. For example:

[Capability fallback] This channel cannot play the voice response;
the text transcript is shown instead.

A missing thread or attachment is never silently flattened into a message that claims full
success. Approvals show the exact consequence and explicit decisions where buttons exist; otherwise
the message names the dashboard link or fallback code.

Troubleshooting

Adapter is unavailable

The host has no live transport attached. Telegram users should check the enabled toggle, token,
allowlist, and restart. Slack/Discord require a reviewed host or executable-extension integration.

Unbound identity

Copy provider IDs exactly and bind the workspace/channel/user tuple. A matching display name is not
enough.

Signature or replay error

Check the provider signing secret/public key and system clock. Never paste credentials into a
message or URL. Rotate a suspected credential, stop the adapter, then resume after review.

Rate limit or quiet hours

Inspect the binding's effective policy. Provider retries do not consume another rate event, but a
new provider event does.

Unknown prior outcome

Do not repeatedly resend. Compare the shown last event/cursor with the Holaryn run journal and the
provider's message history, then choose an explicit recovery.

Developer and security details are in the
multi-channel ADR and
channel SDK guide.