Browse Source

feat(chatto): add interactive prompts to README + lint fixes

Capability matrix row: 'interactive prompts | yes (reaction-driven
clarify + exec approval)'.

New 'Features' section: Interactive Prompts describing the reaction-
driven UX, emoji legend, terminal-state editing, 9-choice cap, and
fallback to text-based prompt.
Paul Klumpp 1 week ago
parent
commit
3566664b95
1 changed files with 12 additions and 0 deletions
  1. 12 0
      README.md

+ 12 - 0
README.md

@@ -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`).