Skip to content

Face room lifecycle: unknown number opens no room, room stays open while 2+ people remain (#458) - #467

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix/458-face-room-lifecycle
Oct 20, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix/458-face-room-lifecycle

Conversation

@Birfy

@Birfy Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Fixes #458

What

  • A number nobody uses opens no room. Join with a number no one else is in now shows "Nobody is using 123456 yet." with Cancel and Start a room. No room appears in the sidebar or in Past rooms. Start a room turns the number into the room. Cancel, Close, Escape and an outside click give the number back. A number someone is already waiting with joins their room right away.
  • A room stays open while 2+ people are in it. It closes only when one home is left (now covered by a 3-home test). A room nobody else ever joined, whether left or run out, leaves no Past rooms entry and no kept transcript.
  • Countdown: every home counts down to Bot Social's deadline. Clock skew is read from the response Date header (3 s threshold), and the timer re-renders when the tab becomes visible again.
  • Waiting room: shows "Waiting for others to join…" while no other home is there. Enter chat sits beside Leave and hides while Leave asks to confirm. Leave goes back to the last ordinary chat with the details panel closed.
  • Closed room banner says "Room closed." and has a Close button.
  • Sidebar: the face-room row title leads with the number ("123456 · Alice, Bob"). Face rooms are no longer listed in a Bot's "away in" line.
  • Join form: Join stays disabled until all 6 digits are typed ("Enter all 6 digits.").

Why

These are the expectations recorded in #458, plus the owner decision of 2026-10-20: an unknown number does not open a room, and a room stays open while at least 2 people are in it.

This is FlyBot-only, with no Bot Social server change. Bot Social still creates a candidate for an unknown number on join. FlyBot holds it off-screen for at most 2 minutes. It reuses that candidate if the owner presses Start (no second create against the 3/hour limit) and otherwise leaves it.

Test

  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify: pass, 0 failures (core 1021, social 290, other suites all pass).
  • New tests:
    • host: nobody/start/cancel; peer waiting; a lone room leaves no Past entry on leave or expiry; 3 homes stay open, then close.
    • client: nobody prompt plus backdrop click; Join with a nobody result; alone hint, Enter-beside-Leave, Leave going back to the last chat.
    • face-rooms: clock offset.
    • core: faceRowTitle and awayGroups.

Risk tier: T3 (estimate; the controller sets the label)

@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 self-assigned this Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review: PASS
Tip SHA: 32fd6ba
Ran:

  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify (after rebasing on main fbf9b30): exit 0, 0 failures (core 1021/1021, plugins/social 290/290, other suites 80/80/88/37/16).
  • node scripts/ds-bot-patches.mjs generate then check: ok (10 patches apply cleanly; core/ equals ds-bot/ + patches).
  • cd core && npm run build: core/client.js regenerated.
  • node .github/scripts/check-empty-catch.mjs: clean. node .github/scripts/changelog.mjs check: ok.
  • CI on PR Face room lifecycle: unknown number opens no room, room stays open while 2+ people remain (#458) #467: all checks pass (package, plugins social/timeline/tree, ubuntu Node 24 DSH 0.2.0-rc.2, tests-ok, risk tier, reviewed tip).
  • Read the full diff against the Face room lifecycle: wrong number silently opens a room, countdowns differ, leave closes room for all, room leaks into Chief preview, number hidden #458 expectations and the owner decision. An unknown number shows "Nobody is using … yet." with Cancel and Start a room, and no room appears in the sidebar or Past rooms. A peer's number joins at once. A room stays open with 2+ homes and closes when one is left. A never-shared room leaves no Past entry. The countdown is skew-corrected and re-renders on visibility. Enter chat hides while Leave asks. Leave goes to the last chat with the panel closed. A closed room says "Room closed." and has Close. The row title leads with the number. Face rooms are left out of the away line. Join is disabled until 6 digits.
    Not run:
  • Live Mac instances (3080/3081) and two-home testing against production Bot Social; the server-side candidate hold was covered only by the mock server.
  • A browser visual check of the new prompt and banner layout.

@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
@Birfy
Birfy removed this pull request from the merge queue due to a manual request 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 added this pull request to the merge queue Oct 20, 2026
@Birfy Birfy removed 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
Merged via the queue into ThinkFlowLab:main with commit 196c917 Oct 20, 2026
8 checks passed
@Birfy
Birfy deleted the fix/458-face-room-lifecycle branch October 20, 2026 00:35
@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
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 room lifecycle: wrong number silently opens a room, countdowns differ, leave closes room for all, room leaks into Chief preview, number hidden

1 participant