Two changes that came out of a real "I said hey steve, bot didn't reply"
report:
1) Persona-name addressing in groups. botAddressed now ALSO triggers
when the message text contains the bot's persona name (regex
/\b(redstone|steve)\b/i, case-insensitive, word-boundary). The
persona prompt already invites users to call the bot "Redstone" or
"Steve" — without this matcher, those messages were silently
dropped in groups because Telegram didn't recognise the plain
word as a @-mention. Private chats still trigger on every text
message (unchanged).
2) Slow-tool indicator for wiki_* calls. minecraft.wiki can lag /
rate-limit. New withSlowToolIndicator(chatId, toolName, fn) wraps
the tool execution: if the call takes longer than 1500 ms,
send a "🔍 looking it up…" placeholder message into the chat
and rotate through a 4-phrase loop ("📖 reading the wiki…",
"🔎 searching…", "🧭 cross-referencing…") every 900 ms. When
the tool resolves, the timer + interval are cleared and the
placeholder is deleted, so fast calls (<1.5 s) leave no trace
in the chat. Only fires for tools whose name matches /^wiki_/.
Wired through the dispatch chain — runRedstoneTurn,
runRedstoneTurnViaOpenRouter, and runRedstoneTurnViaGemini all
gained a `chatId` parameter so the indicator knows which chat to
post into.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>