Feedback telegram bot ux reactions
Justin pushed back on the noisy two-bubble flow ("Got it." → "
Why: every bubble is something Justin's eyes have to skim. Two bubbles per message = 2x noise on the day's hourly check-ins (13 fires/day). At 26 noisy bubbles/day, the UX rots fast. Reactions land instantly without taking visual space.
How to apply:
- New Telegram bot work: react via setMessageReaction (Bot API 7.0+). Don't send "Got it." / "Thinking..." / "On it." text bubbles.
- For waiting feedback longer than 5s: sendChatAction(typing) with a heartbeat thread (refresh every 4s; Telegram's typing indicator has ~5s TTL).
- On success: change reaction from 👀 to 👌. On failure: change to 🤔.
- For voice messages: keep the "🎤 Heard:
Implementation reference: all 4 bots now share the same react() + typing() helpers + handle_message() flow:
- forge/scripts/forge_telegram_capture_bot.py
- forge/scripts/forge_telegram_coordinator_bot.py
- forge/scripts/forge_telegram_notify_bot.py (added 2026-04-29 evening)
- forge/scripts/forge_telegram_remote_bridge.py (added 2026-04-29 evening)
Action-prefix companion rule (added 2026-04-29 evening):
Reactions tell Justin "I heard / I'm done"; the prefix tells him "what I did." Every outbound text bubble that confirms a tool action now starts with a labeled prefix (e.g. Food Item Logged:, Calendar Event Created:, Task Created:, Inbox Item Saved:, Session Spawned:, Failed: <tool>). Multi-action replies stack each prefix on its own line. Conversational replies (no tool ran) stay prefix-free. Capture + coordinator brains have the full prefix table in their system prompts; the remote bridge wraps prefixes around brain output in execute_brain_decision.
[Claude Code, bot-refiner-v2, 2026-04-29; expanded to all 4 bots + action prefixes 2026-04-29 evening]