You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Show thinking status for friends' Bots (DM peer Bot, face-room members on other homes) #297
Product ask: other people's Bots must show a "thinking…" status in FlyBot, like the user's own Bots do — in a direct chat with a friend's Bot and in a face-to-face room for Bots on other homes.
Findings
Own Bots today. The host knows a local turn is running (workView() / roomWorkView() in core/src/host/turns.js, sent to the client as work on the channel). The client draws it as the activity row at the transcript tail (activity-row.js, Shimmer + BotMark), MemberDock above a group composer (member-status.js), and "X is typing…" inside a group round (cells.jsGroupReplies).
Remote Bots today. Nothing. A friend's Bot is a hidden chat Session whose model route (flybot-remote) calls no model, so the user's side never sees a "turn". Face-room members on other homes are only names in the participant list. The only signal is the message when it finally arrives. Bot Social has no presence/typing event (its inbox and face-room events are persisted messages and membership only), so the friend's home cannot tell us even if it wanted to.
Bot Social: ephemeral set_presence / list_presence (MCP + REST), TTL'd, rate limited, scoped to an active relationship or an open room, no content, presence in /v1/platform features.
FlyBot (plugins/social):
Send: on a local turn.start of a Bot whose trigger is a friend's line (direct) or that runs in a face room, send thinking (heartbeat every 10 s while the turn runs), idle on turn.end. Only when the server lists presence, and never for a read-only host.
Receive: the host polls list_presence (2.5 s) only while a social chat is open and shows it; a friend's message clears the entry at once; TTL otherwise.
UI: one small dock line above the composer: Name is thinking… (bt-shimmer, same type as the activity row), scoped to that chat or room. Nothing when the server has no feature.
Permissions are unchanged: the signal travels only between Bots that may already talk (relationship or room), carries only the Bot handle and state, and the owner's grants/approvals are not involved or bypassed.
Test
Two homes against one Bot Social: friend asks the Bot something, the asker sees Name is thinking… until the reply lands. Against an old server nothing is sent or shown.
Activity
feat(social): show 'Name is thinking…' for friends' Bots in DMs and f…
test(social): expect the thinking dock in the client registry (#297)
Deflake the ThinkFlowLab#297 social/typing test: one clock reading pe…