docs: clarify generic channel approval capabilities

This commit is contained in:
Peter Steinberger
2026-03-30 08:46:36 +09:00
parent 3b878e6b86
commit cf84a03ecf

View File

@@ -34,6 +34,18 @@ shared `message` tool in core. Your plugin owns:
Core owns the shared message tool, prompt wiring, session bookkeeping, and
dispatch.
## Approvals and channel capabilities
Most channel plugins do not need approval-specific code.
- Core owns same-chat `/approve`, shared approval button payloads, and generic fallback delivery.
- Use `auth.authorizeActorAction` or `auth.getActionAvailabilityState` only when approval auth differs from normal chat auth.
- Use `outbound.shouldSuppressLocalPayloadPrompt` or `outbound.beforeDeliverPayload` for channel-specific payload lifecycle behavior such as hiding duplicate local approval prompts or sending typing indicators before delivery.
- Use `approvals.delivery` only for native approval routing or fallback suppression.
- Use `approvals.render` only when a channel truly needs custom approval payloads instead of the shared renderer.
For Slack, Matrix, Microsoft Teams, and similar chat channels, the default path is usually enough: core handles approvals and the plugin just exposes normal outbound and auth capabilities.
## Walkthrough
<Steps>