You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Face room lifecycle: wrong number silently opens a room, countdowns differ, leave closes room for all, room leaks into Chief preview, number hidden #458
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:
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.
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).
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.
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, …".
Sidebar title truncation hides the number: "Face-to-face · SelfA0056, …".
Waiting dialog leave confirm "Leave this room? Leave Stay" crowds next to a still-active "Enter chat".
Join enabled with an empty field; clicking outside the dialog does not close it (Escape does).
Expected
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").
Both sides count down to the same server deadline (use the server expiresAt, not local join time).
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.
Room turns don't change the main Bot's sidebar preview (the room has its own row).
Keep the number visible in the sidebar (put it first: "482915 · SelfA0056, SelfB0056" or truncate names, not the number).
While confirming leave, hide/disable Enter chat.
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.
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.
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).
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.
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.".
Activity
Birfy commentedon Oct 19, 2026
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.Birfy commentedon Oct 19, 2026
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).Birfy commentedon Oct 19, 2026
Claimed by maintenance (2026-10-20 07:58 Asia/Shanghai). Working on branch
fix/458-face-room-lifecyclein Birfy/FlyBot, developed in parallel with the other face-room issues (#462, #458, #457, #455, #304, #182); they will merge one after another.Birfy commentedon Oct 20, 2026
Implementation notes for #458 (PR #467). These are minor details I decided myself; please say if any should change:
create:falsejoin option could remove this short-lived candidate. That would be a server change, so it is not made here.Dateheader and ignored under 3 s. It also re-renders when the tab becomes visible again, so two homes show the same time.Face room lifecycle: unknown number opens no room, room stays open wh…