Skip to content

Face room lifecycle: wrong number silently opens a room, countdowns differ, leave closes room for all, room leaks into Chief preview, number hidden #458

Closed

Description

@Birfy

Found by the product self-test on 2026-10-20 ~01:00 Asia/Shanghai (focus: Face-to-face room). Setup: ThinkFlowLab/FlyBot main 84a95a6, dsh 0.2.0-rc.2, two fresh homes A SelfA0056 (:3090, Bots Chief + Researcher) and B SelfB0056 (:3091, Bot Chief), not friends (two strangers meeting in person), Bot Social server https://47-80-69-220.sslip.io, Bots on ark/deepseek-v4-flash. Room 482915.

Problem

Room lifecycle and lists:

  1. Wrong 6-digit number silently opens a new room: on B, typing 111111 opened a new waiting room "Face-to-face · SelfB0056 · 111111" with no hint that nobody is there yet. Leaving it while waiting is recorded in Past rooms exactly like a real room ("Left"), and it vanished from the sidebar then reappeared under Past rooms.
  2. Countdowns differ: right after B joined, B showed "9:15 left to join" while A showed "8:35"; later A 8:35 vs B 8:26 (same room).
  3. One person leaving closes the room for everyone: when B left, A got "SelfB0056 left the room. This room is closed." and has no Leave step; B was thrown back to the Chief chat with Chief's settings panel open.
  4. Room activity leaks into the main Bot preview: during the room, A's sidebar Chief preview read "Face-to-face · SelfA0056, SelfB0056 · 482915 · Thinking about it…", B's Chief preview "Face-to-face · SelfA0056, …".
  5. Sidebar title truncation hides the number: "Face-to-face · SelfA0056, …".
  6. Waiting dialog leave confirm "Leave this room? Leave Stay" crowds next to a still-active "Enter chat".
  7. Join enabled with an empty field; clicking outside the dialog does not close it (Escape does).

Expected

  1. Joining a number nobody created says so ("Nobody is using 111111 yet. Waiting for others…" with a clear Cancel); a room nobody else ever joined is not kept in Past rooms (or is labelled "Nobody joined").
  2. Both sides count down to the same server deadline (use the server expiresAt, not local join time).
  3. A leaving person leaves; the room stays open for the others while 2+ people remain (or, if closing is intended with 2 people, say "Room closed" and keep a single Close/Archive action, not a dead room). After Leave, return to where the user was, without opening Bot settings.
  4. Room turns don't change the main Bot's sidebar preview (the room has its own row).
  5. Keep the number visible in the sidebar (put it first: "482915 · SelfA0056, SelfB0056" or truncate names, not the number).
  6. While confirming leave, hide/disable Enter chat.
  7. Join disabled until 6 digits; outside click closes like Escape.

Scope

Face room join/leave/list behaviour in social plugin + core; titles/Past-rooms times continue on #304.

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 19, 2026
  2. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Maintenance triage (2026-10-20 01:58 Asia/Shanghai, main 84a95a6): bug/lifecycle. Minor details I decided (owner-delegated): both sides count down to the server's expiresAt; room turns don't touch the main Bot's sidebar preview; sidebar title keeps the number first ("482915 · SelfA0056, SelfB0056"); Enter chat hidden while the leave confirm shows; Join disabled until 6 digits; outside click closes like Escape; after Leave return to the previous chat without opening Bot settings. Two owner questions: (1) joining a number nobody created: recommended don't create a room, show "Nobody is using 111111 yet" with Cancel (vs. keep create-on-join but show a clear "waiting for others" hint), and never keep a never-joined room in Past rooms; (2) when one person leaves: recommended the room stays open while 2+ people remain and closes only when one is left, showing "Room closed" with a single Close action (vs. any leave closes it for everyone, as now). Marking needs-human.

  3. added
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    and removed
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 19, 2026
  4. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Owner decision (2026-10-20): Confirmed: unknown room number → don't create a room, show 'Nobody is using yet' (option a). When someone leaves, the room stays open while 2 or more people remain (option a).

  5. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 19, 2026
  6. self-assigned this
    on Oct 19, 2026
  7. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Claimed by maintenance (2026-10-20 07:58 Asia/Shanghai). Working on branch fix/458-face-room-lifecycle in Birfy/FlyBot, developed in parallel with the other face-room issues (#462, #458, #457, #455, #304, #182); they will merge one after another.

  8. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Implementation notes for #458 (PR #467). These are minor details I decided myself; please say if any should change:

    • Start a room (needs your confirmation). A number nobody uses now opens no room. It shows "Nobody is using 123456 yet. Check the number with the people you are meeting, or start a room with it and wait for them." with Cancel and Start a room. Without Start, the first person could never open a room. Start uses the number as typed. If you'd prefer a different way to open a room (for example, FlyBot picking the number), tell me.
    • No server change. Bot Social still creates a candidate for an unknown number on join. FlyBot holds it off-screen for at most 2 minutes and reuses it on Start, so there is no second create against the 3/hour limit. On Cancel, Close, Escape, an outside click or a timeout, FlyBot leaves it. A later Bot Social create:false join option could remove this short-lived candidate. That would be a server change, so it is not made here.
    • No Past entry for lone rooms. A room nobody from another home ever joined leaves no Past rooms entry and no kept transcript, whether you left it or its joining window ran out. It wasn't a meeting.
    • 2+ people rule. A room stays open while 2 or more homes are in it and closes only when one is left. This was already the behavior; it is now covered by a 3-home test.
    • Countdown. It follows Bot Social's clock: the skew is read from the response Date header and ignored under 3 s. It also re-renders when the tab becomes visible again, so two homes show the same time.
    • Waiting room. It says "Waiting for others to join…" while no other home is in it. Enter chat sits beside Leave and hides while Leave asks "Are you sure?".
    • Leave goes back to the last ordinary chat you had open (or the main Bot) and closes the details panel.
    • Closed room. The banner says "Room closed." (or "X left the room. Room closed.") and has a Close button.
    • Sidebar. The face-room row title starts with the number, e.g. "482913 · Alice, Bob". Face rooms are left out of a Bot's "away in …" line.
    • Join form. Join is disabled until all 6 digits are typed, with the tooltip "Enter all 6 digits.".
  9. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a templatearea: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