Repository navigation
Closed
Description
Environment
ThinkFlowLab/FlyBot main c3bb44f (after #176, #177; core, plugins/social, plugins/tree) on @deepseek-ai/dsh@0.2.0-rc.2, Node 24. Two fresh installs on one Linux box: A :3080 (owner SelfA1933, @selfa1933.home, Bots Chief + Helper), B :3081 (SelfB1933, @selfb1933.home, Chief). Bot Social https://47-80-69-220.sslip.io. Scheduled product self-test, 2026-10-17 19:38–19:44 Asia/Shanghai. No model key on the box (model errors are not the bug).
What happened
- A: Helper → Settings → Sharing → Invite to this Bot → link
https://47-80-69-220.sslip.io/i/fwX5ibiNgxji("Invite grants Helper only"). - B:
+→ Add friend → paste link → Join (Talk through Chief). Status: "Helper shared Helper with you." - B: Done, then full reloads. Sidebar shows only B's own Chief; no Helper row, no Friend's Bot marker. The face-to-face Bot picker also lists only Chief.
- A: Helper → People with access lists
selfb1933 (@selfb1933.home)with Revoke. A shows no Bot of B's (correct: B shared nothing).
Blocks testing Remove this Bot and per-friend Auto-send on the grantee.
Cause (checked on the running instances, not fixed)
- Server is right: B's
list_remote_botsreturns Helper (@helper.selfa1933.home, acorn#1cc3b0, grantgrt_01M54TJ8GVV0P0NC7S1WCCA7Y4) under@selfa1933.home, via@chief.selfb1933.home. - B's local
flybot/social/remote-botsreturns that home withbots: [].flybot-social-settings.jsonhasinboundBots["@helper.selfa1933.home"] = true. - B's
state.jsongrantsputs a grant on B's Chief:grt_01M54TJ8GW80W6QGK8ZE7PG3CM, grantee@helper.selfa1933.home, samerelationshipIdrel_01M54TJ8GTQERD87WMBDTC1KY7. This is the talk-through side of the invite relationship.syncOutgoingGrants()pulls it in fromlist_bot_grants. keepGrantedRemote()inplugins/social/src/social.jshas "Outgoing grants win" (added for Regression of #138: joining a friend's invite still puts the joiner's Chief on the inviter's main list #161 in fix(social): self-test follow-ups (#161 grant leak, waiting-room code, approval flash, remote settings, Talk through wrap) #163). It runs before theinboundBotscheck, so it drops Helper.remoteChats.sync(core/src/host/remote-chat.js) then marks B's Helper chatremote.gone: true, hidden: true.- The Regression of #138: joining a friend's invite still puts the joiner's Chief on the inviter's main list #161 test (
social.test.js"invite accept does not list the joiner Chief") covers only the inviter. On the inviter the same rule happens to give the right result.
So the #161 fix hides the Bot from the person it was shared with. This is #138 / #161 the other way round.
Expected (owner design: per-Bot grants, nothing published)
- B's main list shows Helper with only the small Friend's Bot marker and Helper's own avatar (acorn, teal).
- A still shows nothing from B.
- Status names the person: "SelfA1933 shared Helper with you." (Per-Bot grants leak: accepting a Helper invite exposes the joiner's Chief; face-room Chief shows in Friends' Bots; Manage access wrong/raw #138 asked for this).
- The talk-through grant on B's Chief is not treated as B sharing Chief, either in the roster filter or in B's Chief → People with access. That list was not checked in the UI.
- Tests cover both sides of one invite.
Metadata
Metadata
Assignees
Labels
No labels
Activity
Keep live shares in People with access using Bot Social's reply_only (T…