Skip to content

Friend's Bot named four ways in one DM; approval card reads 'Chief → Chief (SelfB1233)' after reload but 'Chief → SelfB1233' before; pick one person-first format #498

Closed

Description

@Birfy

Summary

In a friend DM, the same friend's Bot is named in different formats across surfaces, and the approval card changes its recipient text after a reload. The product principle for social surfaces is person-first (person · Bot, for example SelfA1233 · Chief), as in the face-room tiles from #457. Friend DMs and approval cards are still Bot-first and inconsistent.

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 prod https://47-80-69-220.sslip.io. Both Chiefs on ark/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

  1. Setup: A shared Chief with B. B sends hi from B to A's Chief, and A's Chief drafts a reply that is held for approval (Auto-send off).
  2. On B, look at the sidebar row and the chat header for A's Chief.
  3. On A, look at the held reply's approval card before and after a page reload.

Actual

Surface Text
B sidebar row Chief + grey SelfA1233 (two-tone, no separator)
B chat header pill / composer placeholder Chief (SelfA1233) / Message Chief (SelfA1233)
A sidebar row for B's Bot Chief + grey SelfB1233, second line Friend's Bot
A approval card, before reload Chief → SelfB1233
A approval card, after reload Chief → Chief (SelfB1233)
A chat line SelfB1233 via Chief (person-first)

So one screen mixes Bot (Person), Bot Person, Person via Bot and Bot → Person, and the card text depends on whether the page was reloaded. With two Bots both called Chief, Chief → Chief (SelfB1233) is hard to read: which Chief is mine?

Screenshot (A after reload): The approval card under the draft reply reads Waiting for approval / Chief → Chief (SelfB1233) with Auto-send from now on, Approve and Reject. The line above it is labelled SelfB1233 via Chief, and the sidebar shows Chief SelfB1233 / Friend's Bot. On B, the header pill reads Chief (SelfA1233) and the row reads Chief SelfA1233.

Expected

Design question for the owner (do not guess)

#384 settled on Helper (SelfB0023) (Bot first), and #457's implementation names Bots Bot (person) inside face rooms while tiles are person-first (SelfA0056 · Chief, Researcher). Should friend DMs, rows and cards move to Person · Bot everywhere, as the self-test principle says, or keep Bot (Person) and only make it consistent? Either way, the inconsistency and the reload-dependent card text are bugs.

Suggested scope

Acceptance criteria

  • One format (as the owner decides) on every surface listed above, on both homes.
  • The approval card names the receiving person, the same before and after a reload.
  • No surface shows two Bot names side by side without the person.

Related: #384, #418, #457, #305.

Activity

  1. added
    bugSomething isn't working
    area:socialFriends, invites, grants, Bot Social
    area:uiWeb/desktop UI and copy
    self-testFiled by the product self-test routine (issues only)
    on Oct 20, 2026
  2. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Triage (2026-10-20 12:57 Asia/Shanghai, Birfy maintenance). The format question was already decided for #384/#305 (2026-10-19): a friend's Bot is shown as Bot (owner), e.g. Chief (SelfA1233). Face rooms (#457) stay person-first because they show people. So the plan: one shared formatter for a friend's Bot name used by the sidebar row, chat header, composer placeholder, @ picker and approval card on both homes; the approval card names the receiving person (Chief → SelfB1233, per #418) from the held send's recipient, the same live and after a reload; chat lines from a friend read SelfB1233 via Chief stays (it labels a person's line).

    Waiting for the owner's confirmation before agent-ready (needs-human).

  3. added
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 20, 2026
  4. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Owner decision (2026-10-20): option (a) — unify friend Bot names as Chief (SelfB1233) via one formatter (list, title, placeholder, @ picker, approval cards). Approval cards show receiver (Chief → SelfB1233). Face rooms keep person-first per #457.

  5. added
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    and removed
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 20, 2026
  6. self-assigned this
    on Oct 20, 2026
  7. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Claimed by maintenance run (2026-10-20 13:54 Asia/Shanghai). Working on branch fix/498-friend-bot-name (fork Birfy/FlyBot), developed in parallel with #495-#499; scope per the Owner decision only.

  8. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Minor decisions (made by the maintenance worker, 2026-10-20 14:06 Asia/Shanghai), PR #502:

    • The sidebar row is one string, Chief (SelfB1233), exactly the header's text. The muted second span for the owner is gone (the two-tone look was one of the four formats). When the row is narrow it truncates at the end, and the full name stays in the hover text.
    • Owner precedence in the formatter: the human owner (ownerName / owner) before the home label (homeName), as ownerNameOf already does. Friend chats only carry homeName today, so nothing visible changes.
    • Approval cards: the stored recipient (recipientName / toOwner) wins, then the friend chat's owner, then the owner part of the handle. This covers the held reply on the bubble, the overlay pointer and the social dock, for local holds and Bot Social holds alike. The Sent to … / Auto-sent to … notes therefore name the person too.
    • The social plugin has no import path to the core, so it reads the same formatter from globalThis.__flybot__.names (set next to BotAvatar / lookOf), with a plain fallback for older hosts.
    • Face rooms and the SelfB1233 via Chief line label are unchanged (Face room still Bot-first: two tiles per person, Members counts Bots, '(you)' on Bots, mention re-binds after leave, bloated bubble headers #457).
  9. added a commit that references this issue on Oct 20, 2026
    cf61952
  10. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 20, 2026
  11. removed
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 21, 2026
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 copybugSomething isn't workingself-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