Skip to content

Extend a paused friend chat in FlyBot, approved on the chat's card - #429

Merged
Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:fix/404-in-chat-extend
Oct 19, 2026
Merged

Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:fix/404-in-chat-extend

Conversation

@Birfy

@Birfy Birfy commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

Fixes #404

Bot Social's owner-confirmed extend_conversation MCP tool is live (bot-social de57a91, production 7fb211c), so a paused friend chat can be recovered inside FlyBot instead of removing and re-adding the friend.

  • Paused notice: a send that Bot Social refuses with conversation_paused (direct chat or a Bot's send through the transport) marks that friend's chat paused. The friend's chat shows a Chat paused card in the session dock (social-paused) with one button, Extend….
  • Approval card: Extend… makes Bot Social's first extend_conversation call (extra_turns: 4; changes nothing, returns a one-time code). The code stays on the host (never sent to the browser or a model); the browser shows the normal approval card Waiting for approval / Extend this chat by 4 turns / 20 of 20 turns used. with Approve · Reject. Only Approve makes the confirming call with the code and the same arguments; Reject drops the code and calls nothing on the server. A decided card cannot be used again. No model tool, no typed approval ([Feature RFC] Agent inbox board: one place for tasks, approvals and failures (personal first, team second) #349).
  • The paused conversation is found with list_conversations (the error names none): newest paused_* conversation between one of my members and that Bot.
  • The notice clears on a successful send, on Extend, or on a conversation.resumed event for that conversation. After Extend the owner sends again; nothing is resent automatically.
  • Wording: mapSendError returns a structured error (code: 'conversation_paused', paused, extendable) that names Extend; notSentLine (core remote-chat.js, patches regenerated) says "Not sent: this chat is paused. Use Extend below to add turns, or remove and re-add this friend to start a new chat." only for an extendable error. Still no pointer to the Bot Social console.
  • Docs: social.md (invariant 3 + "Extend a paused friend chat"), core-host.md. Changelog: changelog.d/404-in-chat-extend.added.md. Mocks copy the server's answers (bot-social de57a91).

Owner-delegated details (recorded on #404): 4 extra turns per Extend (server default), card buttons Approve / Reject like every other approval card, no automatic resend.

Ran at the tip: ARCH_DOCS_BASE=upstream/main TZ=UTC npm run verify → pass (core 959, social 260, tree 56, timeline 80, scripts 88, interop 37, live-e2e 16; arch-docs OK). The three new #404 tests fail without the change.
Not run: smoke bench, live run against production Bot Social (a real paused chat), Desktop.

Birfy added 2 commits October 19, 2026 16:31
Bot Social now has the owner-confirmed extend_conversation MCP tool
(deployed 7fb211c), so a paused friend chat no longer has to be removed
and re-added.

- A conversation_paused send marks that friend's chat paused; the chat
  shows a Chat paused notice with Extend... (session dock, PausedChat).
- Extend... makes Bot Social's first extend_conversation call (changes
  nothing, returns a one-time code kept on the host) and shows the normal
  approval card. Only Approve makes the confirming call with the code;
  Reject drops it and calls nothing. No model tool, no typed approval.
- mapSendError returns a structured error (code, paused, extendable)
  that names Extend; the remote-chat line points to Extend below.

Fixes ThinkFlowLab#404
@Birfy Birfy added agent-pr Pull request opened by an agent enhancement New feature or request labels Oct 19, 2026
@Birfy Birfy self-assigned this Oct 19, 2026
@Birfy Birfy added area:social Friends, invites, grants, Bot Social area:ui Web/desktop UI and copy labels Oct 19, 2026
@Birfy

Birfy commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review (Birfy, owner's Bot)

Read the full diff of #429 against main. Findings:

  • A paused friend chat (conversation_paused) is recorded per handle and cleared on a successful send or conversation.resumed; the conversation id comes from list_conversations (the paused error does not carry it).
  • Extend is two explicit steps in the chat: Extend… asks Bot Social for the confirmation (code kept on the host, never sent to the browser), then Approve / Reject buttons; only Approve makes the second extend_conversation call with the code bound to the same args. No typed-reply approval, no auto resend.
  • notSentLine for an extendable pause points to Extend; other errors unchanged. Patches regenerated.
  • No blocking issues found.

Tip SHA: c4b9b30
Ran: ARCH_DOCS_BASE=upstream/main TZ=UTC npm run verify → pass (all suites, arch-docs OK); CI green at this head.
Not run: smoke bench; two-instance live run against prod Bot Social (real pause + extend); Desktop app.
Verdict: PASS

@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 19, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 19, 2026
Merged via the queue into ThinkFlowLab:main with commit 0852b3f Oct 19, 2026
8 checks passed
@Birfy
Birfy deleted the fix/404-in-chat-extend branch October 19, 2026 08:54
@Birfy Birfy removed awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip agent-pr Pull request opened by an agent labels Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:social Friends, invites, grants, Bot Social area:ui Web/desktop UI and copy enhancement New feature or request

Projects

None yet

1 participant