Explorar el Código

Document inbound media and reaction forwarding in the README

The capability matrix and Features sections omitted two behaviours the
adapter implements: inbound attachments being downloaded into the media
cache and handed to the agent as typed media, and human reactions being
forwarded through the gateway reaction hook. Both exist in adapter.py
(_cache_attachments / _forward_reaction), so the docs now match reality.
Paul Klumpp hace 6 días
padre
commit
0a69a54fb3
Se han modificado 1 ficheros con 8 adiciones y 1 borrados
  1. 8 1
      README.md

+ 8 - 1
README.md

@@ -32,9 +32,10 @@ Capabilities natively implemented by the Chatto plugin adapter:
 | text | yes |
 | markdown | yes |
 | threads | yes |
-| reactions | yes |
+| reactions | yes (lifecycle 👀/✅/❌/🚫 outbound; inbound reactions forwarded to Hermes user hooks as `reaction:added` / `reaction:removed`) |
 | message editing | yes |
 | inbound edit processing | yes (correction / late-mention / ignored, see behavior table) |
+| inbound media | yes (attachments downloaded into the media cache, delivered as image/document/etc.) |
 | message deletion | yes |
 | typing indicators | yes |
 | processing notifications | yes (👀/✅/❌/🚫) |
@@ -223,6 +224,8 @@ Hermes uses emoji reactions for processing lifecycle notifications:
 
 Disable the lifecycle reactions with `CHATTO_REACTIONS=false`.
 
+Inbound reactions from other users are forwarded to user hooks as `reaction:added` / `reaction:removed` events, carrying the reactor's user ID, the room ID and the message ID. The bot's own lifecycle reactions (👀/✅/❌/🚫) are not forwarded — they would feed the agent its own markers. `CHATTO_REACTIONS=false` disables only the outbound lifecycle reactions; inbound forwarding is unaffected.
+
 ### Message Editing and Deletion
 
 The adapter supports editing existing messages (via chattolib's `update_message`) and deleting them (via `delete_message`). Streaming replies are delivered as incremental edits to a single message.
@@ -247,6 +250,10 @@ File attachments are uploaded via chattolib's chunked upload API:
 
 Images, videos, audio and documents are posted as native Chatto attachments; several images can be bundled into a single message.
 
+### Inbound Media
+
+Attachments sent *to* the bot are downloaded into the gateway's media cache (bounded against the download cap) and handed to the agent as image, document, video or audio — an image arrives as a viewable media URL and media type, not as a bare link. A message that is only an attachment (an image or PDF with an empty body) is still delivered rather than dropped. A download that fails is logged and skipped, so the surrounding text — and the turn — still reaches the agent.
+
 ### Auto-Reconnect
 
 If the realtime stream drops, the adapter reconnects automatically with exponential backoff (1 s → 30 s max, jittered) and honours server-provided retry hints. Events the Chatto server redelivers after a reconnect are recognised by an in-memory event-ID list and processed only once.