Skip to content

A Bot named "Your Bot" reads as "Your Your Bot is shared back" #1037

Closed

Description

@Birfy

Owner: Dev

Written-by: Dev

Found while closing out #1026 (merge 3368fa53); Reviewer flagged it as non-blocking there and said to wait until a real Bot has that name. Filed so it is a record, not a remark.

What

sharedBackLine (plugins/social/client.js:31) always prefixes Your to the name the server sends:

const sharedBackLine = name => `${name ? `Your ${name}` : 'Your Bot'} is shared back, so they can reach you too.`

If a user names their Bot Your Bot (or any name that already starts with Your ), the Add friend line reads:

Alice shared Helper with you. Your Your Bot is shared back, so they can reach you too.

Expected

No doubled prefix. Either drop the prefix when the name already starts with Your (case-insensitive), or render it as Your Bot is shared back … for that name — the same sentence the unnamed fallback uses.

#1026's case only asserts the fallback path never doubles (/Your Your/ over the no-name row), so this shape is not covered.

Scope

  • plugins/social/client.js — the one helper, both call sites (:2901, :2910) keep working unchanged.
  • plugins/social/test/social.test.js — one row in the #1026 copy case: a sharedBackBotName of Your Bot must not produce Your Your.

Not this issue

Two different friends whose person display name and Bot name are both identical still read the same sentence; the friend side is named by person display name (#178), and that is a naming change, not this copy edge.

Activity

  1. added
    bugSomething isn't working
    area:socialFriends, invites, grants, Bot Social
    area:uiWeb/desktop UI and copy
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 25, 2026
  2. Birfy commented on Oct 25, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    Triage at main 3ff1ce23: confirmed at the single source, plugins/social/client.js:31

    const sharedBackLine = name => `${name ? `Your ${name}` : 'Your Bot'} is shared back, so they can reach you too.`

    Both call sites go through it (:2933, :2942), so one guard fixes both. The prefix is unconditional, which is why a Bot whose display name is literally Your Bot (or Your Chief) reads Your Your Bot ….

    Expected: the sentence never repeats the possessive. When the resolved name already reads as Your …, print it as it is (Your Bot is shared back …, Your Chief is shared back …); otherwise keep Your <name>. Unknown name keeps Your Bot — and Your Bot must not become Your Your Bot through the same guard.

    Acceptance:

    1. Name Your Bot → Your Bot is shared back, so they can reach you too.; name Writer → Your Writer is shared back …; no name → Your Bot is shared back ….
    2. No case matches /Your Your/ or /Your Your Bot/; the two copy tables and the #1026 case stay green.
    3. Knife: drop the guard → the new case goes red.
      Wording only, no changelog.d/ fragment. bug, area:social, area:ui, agent-ready, Owner: Dev.
  3. Birfy commented on Oct 25, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Dev

    Claimed: branch dev/fix/1037-your-your-bot, from main 02a77af6.

    Test first: a Bot whose owner already named it Your Bot (row in the #496 table) and Your Chief (the #1026 case) must not print Your Your. Both call sites (client.js:2933, :2942) go through the one helper, so the table row covers the re-accept line and the second row covers the new-friend line.

  4. self-assigned this
    on Oct 25, 2026
  5. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 25, 2026
  6. removed
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 25, 2026
  7. Birfy commented on Oct 25, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Dev

    done — the four wrap-up checks on the merge commit 699d03d9:

    • #1037 is closed/completed (labels bug|area:social|area:ui); Fixes #1037 points at #1043, whose merge commit is 699d03d9 and whose head is still the PASSed 59585ad9.
    • The change that landed is code, not only docs: plugins/social/client.js carries the guard (const ours = !name ? 'Your Bot' : /^your\b/i.test(name) ? name : Your ${name}``), plugins/social/test/social.test.js has the two new copy-table rows and the extended `The accept line names two Bots both called Chief, so "Chief is shared back" cannot be told apart #1026` case, and `docs/subsystems/social.md:136` states the rule — with `The re-accept grant falls back to friend_home, which Bot Social never receives #1024`'s sentence still in front of mine on that line.
    • changelog.d/1037-your-your-bot.fixed.md is on main (+1 −0); #1043 touched exactly four files, no core/ file, so no patch regeneration and no release change are involved.
    • Fixes and the two line-enders in social.md survived the rebuild: #1024 at 2175, #1026 at 2344, #1037 at 2501 in that same bullet.

    Your two non-blocking items are filed as #1060 instead of staying in the PR thread: the /^your\b/i boundary has no case (YourBot/Yours must still read Your YourBot …, and a later startsWith('your') would stay green), and the #1026 positive assertion is unanchored so only its doesNotMatch(/Your Your/) neighbour is load-bearing. Both are test-only, with the mutation that must go red written down.

    Labels: agent-working removed from #1037; agent-pr removed from #1043 (pass stays).

  8. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 25, 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 working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions