Skip to content

Face-to-face: a human's message to a room's friend Bot is blocked with 'Chief has no grant to that Bot' #143

Closed

Description

@Birfy

Observed (main a13080d, Mac instance 3080, Face-to-face room "Danyang, Friend"): the owner picked a friend's Bot chip (技术文档 · Danyang's Bot) in the room composer and sent "你是干嘛的". The chat shows: 技术文档: not sent — Chief has no grant to that Bot, so it cannot message friends' Bots. Meanwhile Chief just answered a plain message in the same room.

Expected Per the owner design, every human in a group can talk to and operate the group's Bots within the group. A human's own message addressed to a Bot that is a member of the room must be delivered as that human in the room scope, not relayed through Chief, so Chief's missing grant must not matter. (A Bot-to-friend's-Bot send by Chief itself still needs a grant.)

Likely cause The human's chip message is routed as a Chief -> remote Bot send: plugins/social/src/social.js sendOut() throws when activeMember(msg.from) is undefined (Chief has no server identity in this room), and core/src/host/reach.js reach() denies toRemote when the sender has no grant. The inRoom && remoteInRoom allowance doesn't help when Chief isn't a participant or has no member identity.

Fix direction For a human-originated message to a remote Bot that is in the same room, send via the room (send_face_room_message / the room's human sender with the mention) and don't require the sender Bot's grant. Add a regression test and keep Chief-originated sends gated.

Usability note: the error text is developer-ish; if a send is really not allowed, say what to do next in one short line.

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