VIRGO

Channel adapters

원본
docs/design/CHANNEL-ADAPTERS.md
고정된 커밋
d62e85485903a5537ee2b73c14201597e29bdaa5
sha256
50de97c84b911c0389a50ba81acec5ec3214f21f80fbd0ad0cdff8938360b2d7

이 페이지는 요약이 아니라 명세 원문입니다. 위에 고정된 원본에서 그대로 렌더링되며, 본문은 한 글자도 바뀌지 않고 표현만 더해집니다.

명세 본문은 영어가 정본입니다. 번역본을 두면 진실의 출처가 둘이 되므로 의도적으로 번역하지 않습니다. 제목·목차·안내는 한국어로 제공합니다.

Hub channel adapters

Status: implementation contract decided by Henry on 2026-08-04

Personas use the transport-neutral human_* capability surface. The hub owns channel credentials and implements that surface through adapters; Teams is adapter number one, not a special persona runtime dependency.

Every adapter declares support for send, reply, ack, reaction, card, file, typing, and status. send, reply, ack, and status are the required delivery baseline. Missing optional behavior is never silently dropped:

Missing capabilityResult
reaction or fileloud refusal
cardloud refusal unless the caller supplied an explicit text fallback
typingreported no-op degradation

A persona/lane binding records the exact persona_address, channel_type, adapter_id, and the adapter lane. Switching Teams to Telegram, Slack, or email replaces that binding; the persona stamp's tool names and runtime do not change. Binding and adapter channel types must match before any operation is admitted. The hub also compares that address to the calling persona's stamped path identity on every operation; a syntactically valid binding for another scope or project is still refused.