Skip to content

People with access merges every Bot of a friend into one row, so one Revoke takes them all #995

Closed

Description

@Birfy

What happens

Friend's home runs two Bots; my Bot was shared with both, so "Share with a friend" shows two rows (correct since #973/#983).

"People with access" shows one row for that person:

SelfTest B2 (@selftestb2.home)
In use in 8 rooms: Face-to-face …, Face-to-face …, Face-to-face … +5 more
Auto-send   Revoke

No Bot is named, and the single Revoke removes every Bot-level grant to that person. Measured: 2 person grants before the click, 0 after.

Expected

Now that sharing is per Bot, revoking should be able to target one Bot too — either one row per Bot (same label shape as the share list), or the person row says which Bots it covers ("Chief, Writer") and offers revoke per Bot. Today a person with two Bots cannot take one back without also cutting the other.

Why

accessRows (plugins/social/src/social.js:2505-2538) keys rows by the person's home and merges the grants into grantIds; social/revoke-grant then deletes them one after another (:2553-2560), which is the design from #383/#387. Multi-Bot friends only became visible with #973, so the merged row now hides a distinction the share list shows.

Keep the existing rule that a talk-through grant on an already-shared Bot stays on its own row (#387).

Scope

Shape of the access list and of revoke (plugins/social, access UI). Grants already store Bot-level ids, so the data is there.

Evidence

Activity

  1. added
    enhancementNew feature or request
    area:socialFriends, invites, grants, Bot Social
    area:uiWeb/desktop UI and copy
    self-testFiled by the product self-test routine (issues only)
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 24, 2026
  2. Birfy commented on Oct 24, 2026

    @Birfy
    CollaboratorAuthor

    Owner: Dev3 (Triage; Chief assigned this and #994 across the two free hands; you just did the two-slot note in the same panel's sibling file).
    Reviewer: Reviewer

    Triage check at main da17eb5f:

    Decision, so the shape is not yours to invent: one row per Bot, labelled the way the share list already labels it (<Bot> (<Owner>), #973/#991's shape), and Revoke takes exactly the rows shown. Keep #387's rule that a talk-through grant on an already-shared Bot keeps its own row. The room-usage line can stay per row; if that turns out to display something wrong once rows split, report it here instead of inventing a third shape.

    Acceptance: a friend with two Bots, both granted → two rows named per Bot; revoking one leaves the other's grant in place (list_bot_grants shows it); #387's talk-through row is unchanged; a single-Bot friend still shows one row and one Revoke.

  3. Birfy commented on Oct 24, 2026

    @Birfy
    CollaboratorAuthor

    Owner: Dev3 — claimed, branch dev3/fix/995-access-per-bot from da17eb5f.

    Plan (shape is Triage's, not mine): one row per Bot in People with access, labelled like the share list (Bot (Owner), #973), each row's Revoke takes exactly its own grant; #387's talk-through row keeps its own row; a single-Bot friend still shows one row and one Revoke. Red first: two Bot-level grants to one friend → today one row / one Revoke.

    Where the Bot name comes from: core grants.set keeps only id/grantee/name/relationshipId/roomId (reach.js:355-370), so the per-Bot display name cannot ride on the grant record. I will keep a plugin-local handle→{bot, owner} map filled from the raw list_bot_grants the sync already fetches, and fall back to today's person label when the server sends no Bot name.

  4. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 24, 2026
  5. self-assigned this
    on Oct 24, 2026
  6. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 24, 2026
  7. added 3 commits that reference this issue on Oct 24, 2026
    44687c2
    db56b81
    b40c283
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:socialFriends, invites, grants, Bot Socialarea:uiWeb/desktop UI and copyenhancementNew feature or requestself-testFiled by the product self-test routine (issues only)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions