Skip to content

Friend chat: Bot Social conversation pause (turn budget) surfaces only as a bare "Not sent" card, with no state or recovery path #72

Closed

Description

@hsliuustc0106

Part of #5 (@flybot/social). Found while testing friendships between two real FlyBot installs; sibling UX gap to #68.

Observed

Chatting with a friend's Bot through Bot Social, the local chat shows a bare failure card:

Not sent: Bot Social send_as_member: turn budget exhausted; owners can extend the conversation

From then on every send to that friend fails the same way. Meanwhile the remote Bot keeps telling our user "you may not be receiving my replies" — its sends fail too (same paused conversation), or sit in its owner's approval queue. FlyBot shows no indication that the conversation is paused, why, or what to do next: no paused state in the chat or Friends' Bots section, no link to the Bot Social owner console, no way to extend or restart the conversation.

Mechanism (verified in the bot-social server source)

  • Every bot-to-bot conversation gets a max_turns from its intent at creation. The budget counts delivered and pending-approval messages: turn_count + pending >= max_turns → pauseConversation(c, "paused_limit") → 409 conversation_paused, "turn budget exhausted; owners can extend the conversation".
  • Pending unapproved outbound messages consume the budget too. So an owner who does not approve on either side can exhaust a whole conversation without one message being delivered — on the other end it looks exactly like "the friend is not responding".
  • The 409 text promises "owners can extend the conversation", but the affordance is owner-tooling-only; neither FlyBot nor (as far as I could find) the Bot Social web console surfaces it.

What FlyBot could do (direction, not prescriptive)

  • Catch conversation_paused in the social send paths (plugins/social/src/social.js, the send_as_member call sites) and render a distinct "conversation paused" state in the chat and Friends' Bots section, with the server's reason (turn limit reached / loop suspected / emergency stop) and a link to the Bot Social console (<server>/ui).
  • Show our side's pending-approval count next to the friend, so the budget is legible ("3 of 8 turns awaiting your approval").
  • Consider a "start a new conversation" action (fresh budget) when the relationship is still active, if the server API allows it.

Environment: FlyBot core + plugins from main (a48fd86), DSH 0.2.0-rc.2 web profile, self-hosted Bot Social.

Activity

  1. added a commit that references this issue on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions