Skip to content

[Team] Add human and Chief membership to native rooms #50

Closed

Description

@hsliuustc0106

Planning ID: TODO-E

Proposed issue / PR title: feat(rooms): support human and Chief participants with attributed messages.

Goal: two people and their Chiefs share one FlyBot room without collapsing people into “User.”

Scope: typed room membership, room roles, permitted participant management, persistent human/bot author IDs and visible attribution; update composer, @ menu, history and event delivery. Use Chiefs as the agent participants of cross-owner rooms. Keep specialist conversations private to the owner.

Out of scope: cross-owner task execution, channels in Slack/Teams and threaded project management.

Dependencies: TODO-C (#48), TODO-D (#49).

Code area: group/roster/channel state, client group settings, cells, composer, sidebar and mention handling.

Acceptance and tests: Alice, Bob and both Chiefs appear with distinct authorship; concurrent messages retain order/identity; unauthorized history reads fail; joining/leaving follows the documented history-visibility rule; nonmembers cannot inject messages. Existing single-owner groups still display and function.

Delivery

One focused implementation PR for this issue. This is planned work, not a claim of shipped multi-human support. Preserve the pristine upstream pin and generated patch/client boundaries. Keep team mode disabled until the documented authorization gates pass. Record exact tested head, executed checks, missing checks and independent review. No production credentials or live deployment are part of this issue.

Activity

  1. Birfy commented on Oct 15, 2026

    @Birfy
    Collaborator

    Design change after review (PR #82, head 52657b3)

    Decision from Danyang: a user can connect to another person's Chief or any Bot that person has published to friends, message it directly, and add it to a room. Cross-owner rooms are no longer limited to humans plus designated Chiefs. Unpublished Bots stay owner-private (denied server-side). This also sets the direction for #51: published Bots can be reached directly, a Chief is just one kind of published Bot, and #51 only has to keep unpublished Bots unreachable from outside.

    Model changes

    What each viewer sees

    Viewer Sees May do
    Inviter Remote Bots as <Bot> · <owner>'s Bot (Chief: <owner>'s Chief) with an owner badge, attributed lines Manage and post
    Other human in the room Same labels, from their own join point Speak, leave
    Remote owner A "Shared room from " sidebar entry: participants, who invited their Bot and when, lines from the Bot's join point Remove their Bot, approve or reject its replies
    Remote Bot Fenced room lines from its join point only Reply through Bot Social, held unless the owner has auto-approve on

    The DM sidebar and chat header use the same naming.

    Checks

    Run on 52657b3: core 641 pass, tree 49, social 38, build-client check, lint and arch-docs, patches generate and check. GitHub CI is green. Not run: smoke/Desktop, real model, live Bot Social, independent review.

    Related

  2. added 2 commits that reference this issue on Oct 15, 2026
    0dc6b59
    9034e9e
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