Skip to content

Show one look per Bot on every home in face-to-face rooms - #464

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix/182-face-room-avatars-title
Oct 20, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix/182-face-room-avatars-title

Conversation

@Birfy

@Birfy Birfy commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #182

What

  • Owner's look reaches the other home. A Bot with no stored shape or color is drawn at home with an id-picked look (core characters.js), but Bot Social got nothing, so the other home invented a handle-seeded one. syncBotLook now sends the look the home draws (shownLook in plugins/social/src/look.js, the same functions as core, checked equal by a test). A stored image or emoji is sent as is, in the order BotMark draws them (image, emoji, shape).
  • Look before join. A new (room-only) identity gets its look before registerOnce returns, so the first members[] the peer sees already has it.
  • My own Bot in the waiting dialog uses its roster look. Before, it was handle-seeded because the Bot list was read before the join created the identity (the purple acorn in the 01:00 self-test). It is now found by its room record (remote: false, local id) or by this join's joinedAs.
  • Chat bubbles in a face room draw a friend's Bot with its seat's look (members[]), the same as Members, the room avatar and the waiting tiles (the teal blob vs blue whale).
  • People show their initial on a color picked from their name, the same on both homes, not a grey silhouette (PersonMark({ name })).

Scope. Room titles were made consistent across homes in #186. The number in the title and the Past rows are #304, and own-bubble avatars are #457, so neither is in this PR. Two Bots that both carry the owner-stored default Chief look (whale) still look the same: each home draws its owner's own look, and the owner name tells them apart.

Test

  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify: pass, 0 failures (core 1019, social 279, tree 80, timeline 80, scripts, interop, live-e2e unit).
  • New tests: the generated look equals core for 200+ ids, and the sent look equals what core draws. A Bot with no look gets it on Bot Social before POST /face-rooms/join. The waiting dialog uses the roster look right after a join and after a poll. remoteSpeaker uses the seat look in a face room. PersonMark draws the initial and a stable color.
  • Not run: a live two-home face-room check on Mac instances.

Risk tier: T3 (estimate, matching the risk-tier report check; the controller sets the label)

…ls mark (ThinkFlowLab#182)

A Bot with no stored look now sends the look its home generates (core
defaultShape/defaultColor, mirrored in social look.js and checked equal) to
Bot Social, before a new identity joins a room. The waiting dialog finds my
own Bot by its room record or this join's joinedAs and uses the roster look.
A face room's remote Bot speaks with its seat's look, as Members and tiles
draw it. PersonMark draws a person's initial on a name-picked color.
@Birfy Birfy self-assigned this Oct 20, 2026
@Birfy Birfy added agent-pr Pull request opened by an agent bug Something isn't working area:social Friends, invites, grants, Bot Social area:ui Web/desktop UI and copy labels Oct 20, 2026
@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review: PASS
Tip SHA: 75da40b
Ran:

  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify: exit 0. Core lint + arch-docs OK (20 files), plugin lint, build-client check, ds-bot-patches check, core 1019/0 fail, social 279/0, tree 80/0, timeline 80/0, scripts, interop and live-e2e unit tests all pass.
  • node scripts/ds-bot-patches.mjs generate then check: core equals ds-bot plus patches.
  • CI at this tip: tests-ok green (test, plugins social/tree/timeline, package). Risk tier (report only): T3.
  • Diff read against the owner design rules:
  • A live two-home face-to-face check on the Mac instances (3080/3081) or on fresh A/B homes. The next self-test should re-run the repro in this issue: waiting dialog, tiles, chat, Members and sidebar on both homes, then a second room.

@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
Merged via the queue into ThinkFlowLab:main with commit fbf9b30 Oct 20, 2026
8 checks passed
@Birfy
Birfy deleted the fix/182-face-room-avatars-title branch October 20, 2026 00:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-pr Pull request opened by an agent area:social Friends, invites, grants, Bot Social area:ui Web/desktop UI and copy awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Face-to-face: avatars and room title differ per home (regressions of #137/#172); Leave is abrupt and not seen by the peer

1 participant