|
|
@@ -49,6 +49,7 @@ Capabilities natively implemented by the Chatto plugin adapter:
|
|
|
| member directory | yes (cached) |
|
|
|
| room member context | yes (roster on every channel turn, presence kept live from a per-room cache) |
|
|
|
| presence broadcasting | yes (online, refreshed) |
|
|
|
+| interactive prompts | yes (reaction-driven clarify + exec approval, see [Interactive Prompts](#interactive-prompts)) |
|
|
|
| custom status | yes |
|
|
|
| read state management | yes |
|
|
|
| auto-reconnect | yes (with duplicate-event suppression) |
|
|
|
@@ -225,6 +226,17 @@ Seeding happens once per session, not per message and not per restart: later tur
|
|
|
How the plugin keeps track of that is a developer question:
|
|
|
[CONCEPTS.md](CONCEPTS.md#thread-sessions-and-the-frontier).
|
|
|
|
|
|
+### Interactive Prompts
|
|
|
+
|
|
|
+The plugin replaces the default text-based clarify and exec-approval
|
|
|
+prompts with reaction-driven ones. A clarify question is posted as a
|
|
|
+numbered list with one emoji reaction per option (1️⃣ … 9️⃣) plus ✏️
|
|
|
+for free-text input; the exec-approval prompt offers ✅ once, 🌀 session,
|
|
|
+♾️ always, ❌ deny. The prompt message is edited to a terminal state
|
|
|
+(e.g. "✅ Alice chose: …") after a reaction resolves it, and timed out
|
|
|
+prompts are retired with a notice. When more than 9 choices are offered
|
|
|
+the adapter falls back to the default text-based prompt.
|
|
|
+
|
|
|
### Room Member Roster
|
|
|
|
|
|
Hermes cannot see who else is in a room: unaddressed channel messages are dropped by the mention gates long before they could teach him a name. So every turn in a channel carries the member roster alongside the message text — one entry per member as `@login (Display Name, presence)`, e.g. `@alice (Alice, online), @bob (Bob, offline)`. The bot's own account and deleted users are left out; rooms larger than 20 members end with `… and N more`. Presence is the Chatto status (`online`, `away`, `do not disturb`, `offline`).
|