Repository navigation
Description
Summary
On the home whose Bot a friend is talking to (A), a friend's first line still does not arrive live. B sent hi from B to A's Chief, and for 8 s or more nothing changed on A: no row update, no line in the chat, no approval card. Only after a page reload did A show the Inbox badge 1, the line, the drafted reply and the Waiting for approval card. #420 fixed exactly this ("First friend line shows on A within one poll without reload", closed 2026-10-19 by #432), so this is a regression of #420.
Environment
- FlyBot main
a7adfe0882d3e37c81616871e24b442bd4a5047f, core + plugins/social + plugins/tree on@deepseek-ai/dsh@0.2.0-rc.2, Node 24.21.0. - Two fresh installs on one Linux box: A
:3090(owner SelfA1233,@selfa1233.home, one Bot: Chief =@chief.selfa1233.home) and B:3091(owner SelfB1233,@selfb1233.home, one Bot: Chief =@chief.selfb1233.home). Bot Social prodhttps://47-80-69-220.sslip.io. Both Chiefs onark/deepseek-v4-flash. - Product self-test 2026-10-20, focus C (Invites and grants), browser run 12:37–12:42 Asia/Shanghai, API checks about 12:45 Asia/Shanghai. Screenshots stayed on the test machine; what they show is written out below.
Reproduction
- Setup: A shared Chief with B (A: + New… > Add friend > Copy invite link for Chief; B: Add friend, paste, Accept invite). Auto-send is off (the default).
- Open A in one tab on A's Chief chat (or anywhere in A), and B in another tab.
- On B, open
Chief SelfA1233and sendhi from B(about 12:39 Asia/Shanghai). - Watch A without reloading for 8 s or more. Nothing changes: A's Chief row has no preview update and no unread mark, the Inbox count does not change, and the open chat shows no new line.
- Reload A. Now the Inbox badge shows
1. A's Chief chat showsSelfB1233 is talking to Chief through Bot Social, thenSelfB1233 via Chief: hi from B, then the drafted replyHey B! 👋 Good to hear from you. What's up?, then the cardWaiting for approval / Chief → Chief (SelfB1233)with Auto-send from now on, Approve and Reject.
Screenshot (A after reload): The sidebar shows Inbox with a blue 1, A's Chief row selected (preview Hey! I'm your Main Bot —…), and Chief SelfB1233 / Friend's Bot below it. The chat shows A's own onboarding message from Chief, then the grey line SelfB1233 is talking to Chief through Bot Social, B's line, the draft reply and the approval card. Before the reload none of this was visible.
Actual vs expected
- Actual: the friend's line, the draft and the approval card show only after a manual reload.
- Expected (Friend's line on the sharing home: lands unmarked in the Bot's own chat with no unread badge, first line needs a reload; social/overview lists no per-Bot friendships #420 acceptance criteria, in-chat approval): the line and the approval card appear on A within one poll, with no reload, and A's Chief row gets an unread badge until the chat is seen. Approvals are only useful if the owner sees them when they arrive.
Note: friend's lines inside A's own Chief chat (not asked to change)
B's conversation is mixed into A's own chat with Chief, right after A's onboarding. The self-test flagged this as confusing again. It matches the owner-delegated decision recorded on #420 (2026-10-19): a grantee's lines stay in the Bot's own chat, with no per-person thread (social.md invariant 8, #254/#272). Leave it as is unless the owner reopens that decision.
Suggested scope
- Find what changed since Mark a Bot unread for a friend's line, say who is talking on first contact, and list per-Bot friendships #432 on the inbound path:
pollOnceinplugins/social/src/social.js(event cursor andseen, see thecursorsentry inflybot-social-settings.json) →core/src/host/remote-chat.js→core/src/host/flybot-feed.js→ client feed. Hunch: the inbound line and the approval are written to the host state, but no feed or revision event is pushed to an open client, so only a full reload (state) shows them. - Add or restore a test that an inbound friend line, and the held reply's approval, cause a client feed event without a fresh
statecall.
Acceptance criteria
- With A open, B's first line appears in A's Chief chat within one poll (no reload).
- The held reply's Waiting for approval card appears live, as does the Inbox count.
- A's Chief row shows an unread badge until the chat is seen (Friend's line on the sharing home: lands unmarked in the Bot's own chat with no unread badge, first line needs a reload; social/overview lists no per-Bot friendships #420 criterion 2).
- Regression test covers live delivery of the first line and the approval.
Activity
Birfy commentedon Oct 20, 2026
Triage (2026-10-20 12:57 Asia/Shanghai, Birfy maintenance): confirmed regression of #420 (fixed by #432). Scope as written: find what broke live delivery of an inbound friend line and its held-reply approval card on the sharing home, restore the live feed event (no reload), the Inbox count and the unread badge, and add a regression test that a first inbound line and its approval reach an open client without a fresh
statecall. The note about the friend's lines staying in A's own Chief chat stays as decided on #420.Waiting for the owner's confirmation before
agent-ready(needs-human).Birfy commentedon Oct 20, 2026
Owner decision (2026-10-20): option (a) — restore live push for friend first message, approval cards, inbox count and unread badges; add regression tests.
Birfy commentedon Oct 20, 2026
Claimed by maintenance run (2026-10-20 13:54 Asia/Shanghai). Working on branch
fix/497-live-friend-line(fork Birfy/FlyBot), developed in parallel with #495-#499; scope per the Owner decision only.Birfy commentedon Oct 20, 2026
Development (2026-10-20 14:24 Asia/Shanghai), PR #505. Root cause and the minor details I decided:
a7adfe0(local Bot Social, mock model, browser on A's Chief chat), the first line, the Waiting for approval card, the Inbox count and the badge all appear without a reload, just late. The social plugin reads Bot Social only on its 15 s idle inbox poll, and the card then waits for the model. The self-test's own logs show it: B sent at 12:39:26, A got the line at 12:39:34 and the card at 12:39:41. Mark a Bot unread for a friend's line, say who is talking on first contact, and list per-Bot friendships #432 never fixed this criterion (its PR said so).facePollMs, 4 s, the same cadence face rooms already use). "On screen" means a visible window polled the team in the last 8 s. A hidden tab does not count. With no window open, polling stays at 15 s, so Bot Social sees the faster reads only while someone watches.Birfy commentedon Oct 20, 2026
Cleanup 2026-10-20 14:54 Asia/Shanghai: PR merged; removed
agent-working/ assignee.Show a friend's first line and its approval card live: read friends' …