Skip to content

Face room titles/Past rooms: number dropped from title, Past rows show start or future deadline time, staying home marked 'Left' and never leaves on Bot Social, closed tab title (#250 regression) #304

Closed

Description

@Birfy

Summary

Face-to-face room naming and the ended-room state disagree between the core title, the plugin rows and the two homes:

Environment

FlyBot main a003044, dsh 0.2.0-rc.2, Node 24. Fresh A :3090 (SelfA1622) / B :3091 (SelfB1622), Bot Social prod (1870786). Self-test 2026-10-18 16:27–16:33 Asia/Shanghai.

Repro

  1. A: Face-to-face group → Chief → 482913 (room frm_01M571ZK5FZCKPS54G5J27B4ZS, created 16:27:49). B joins with Chief (16:27:58). Enter chat (started 16:28:07). Chat a little.
  2. B: details → Leave → Leave (16:31:25).
  3. B: Face-to-face group → 482913 again. This makes a new waiting room frm_01M5727TP4FT01AQ06DF4C23R4 at 16:32:19, because start voids the number (by design). Then Leave from the waiting dialog.
  4. Look at both homes' sidebars, tab titles and Past rooms.

Actual

  1. Title uses the date, not the number. Both homes: Face-to-face · SelfA1622, SelfB1622 · Oct 18 16:27, although both joined by 482913. The plugin builds … · 482913 (faceRoomTitle(snapshot, { code: joinCode })). But core upsertFaceRoom recomputes every auto title from spec.joinCode || spec.code (core/src/host/room-membership.js L1247–1254, L1290), and applyFaceSnapshot (plugins/social/src/social.js L2172) never passes joinCode. So the number is always dropped.
  2. Past rooms use a third title builder. shownFaceTitle() in plugins/social/client.js L738–764 takes startedAt || expiresAt. So:
    • B's closed row reads Face-to-face · … · Oct 18 16:28 (the start, while the title says 16:27).
    • B's never-started waiting room reads Oct 18 16:42, the joining deadline, 10 minutes in the future. It was created 16:32 (stored name … · Oct 18 16:32).
    • A's row reads Face-to-face · SelfA1622 · 482913: number, and only A, because the leave/past path passes members: [].
    • Three formats in one list. Screenshot: Past rooms with "Closed · Oct 18 16:28", "Face-to-fa…" clipped, "Oct 18 16:42".
  3. Ended-room status is backwards.
    • A never left, but its Past row has the Left chip. faceSnapshotPast (L2158) returns left when the last remote seat empties.
    • B, who left, shows Closed (B's pastFaceRooms stores status: closed).
    • A gets "SelfB1622 left the room. This room is closed.", yet A never leaves on Bot Social. At 16:36, GET /v1/face-rooms/frm_01M571ZK… as A still returns status: open with A's Chief as the only member. A's settings.faceRooms still holds it with asBots: [@chief.selfa1622.home]. So the room-only identity is not released and A keeps polling a room it shows as past.
  4. Tab title after close stays Face-to-face · SelfA1622, SelfB1622 · Oct 18 16:27 on B instead of Face-to-face · closed (regression of tab title keeps the member list after a face-to-face room is closed (#244 follow-up) #250).
  5. Sidebar row:
    • A's live room row has no person/people mark and no open chip, and wraps to two lines.
    • After the close, A's row vanished until a reload.
    • Past rows clip the name (Face-to-fa…).
  6. Left room details (Past rooms → Open, read-only) still show the Auto-send checkbox and a Leave button.
  7. B's own transcript has no "You left the room" line. A sees "SelfB1622 left the room".

Expected

Activity

  1. Birfy commented on Oct 18, 2026

    @Birfy
    CollaboratorAuthor

    PR #340 covers items 1 (the number stays in the title: joinCode goes with every upsert and core keeps it on room.face.joinCode), 2 (Past rooms show that same title; no joining deadline as the time), 3 (the leaver keeps Left; the home that stayed reads Closed and leaves on Bot Social too, releasing its room-only identity), 6 (read-only details for a past room) and 7 (You left this room. for the leaver). Still open here: item 4 (closed tab title, #250 regression) and item 5 (sidebar row layout and moving to Past rooms without a reload).

  2. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Maintenance on main 0e72bb8 (2026-10-19): #376 covered the one-line Past/face row part. Still open per prior notes: closed tab title (#250 regression) and any leftover Past-rooms/sidebar reload behavior. Not implementing those this run (need a focused repro or a small clear slice).

  3. 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)
    needs-infoWaiting for the reporter or a maintainer decision
    on Oct 19, 2026
  4. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Triage on main 7b9e90b, 2026-10-19 ~12:10 Asia/Shanghai: needs-info. Items 1-3, 6, 7 landed (#340), the one-line Past/face rows in #376. Still listed as open: item 4 (closed tab title should read Face-to-face · closed) and item 5 (row moves to Past rooms without a reload; row on one line with people mark and status chip). core/src/client/brand.js already returns Face-to-face · closed for an ended auto-titled face room, so item 4 may be fixed. Blocking: re-check items 4 and 5 on current main in a two-home self-test and list exactly what still differs.

  5. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Triage on main 0852b3f, 2026-10-19 16:59 Asia/Shanghai: still needs-info. No face-to-face self-test has run since the last check.

    Repro for the next face-to-face self-test (fresh A/B): A starts a room with Chief and gives B the number; B joins and both Enter chat. B clicks Leave → Leave. Without reloading, check:
    (1) B's browser tab title reads Face-to-face · closed;
    (2) A's live room row moves to Past rooms with a chip and does not vanish;
    (3) both Past rows show Face-to-face · A, B · <number>.
    Close this issue if all three pass. Otherwise list here what differs.

  6. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Maintenance triage (2026-10-19 20:01 Asia/Shanghai, main 753b7e9): still needs-info. No new live self-test since the 16:59 check. Leaving open; next face/friend self-test should run the repro notes on the previous comment. Not pushing design questions while this waits on live confirmation.

  7. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Self-test 2026-10-20 ~01:00 Asia/Shanghai at main 84a95a6 (room 482915, A SelfA0056 / B SelfB0056). Status per side is now right (A "Closed", B "Left", Open is read-only with "You left this room.") but:

  8. 1 remaining item

  9. 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-infoWaiting for the reporter or a maintainer decision
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 19, 2026
  10. Birfy commented on Oct 19, 2026

    @Birfy
    CollaboratorAuthor

    Owner decision (2026-10-20): Confirmed as proposed: Past rooms titles list all participants, each row shows its time, the whole row opens the room, and expand state survives refresh.

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

    @Birfy
    CollaboratorAuthor

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

  14. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Minor details decided while implementing (PR #463, 2026-10-20 08:06 Asia/Shanghai):

    • Root cause of the dropped name: the home that stayed built its Past row from Bot Social's live member list after the peer left. Past rows now list everyone who was ever in the room (same rule as the room header); the person who left is kept, marked as left, so reopening a dropped room does not seat them again. Rows saved before the fix are refreshed from the kept room.
    • Row time: end time if the room ended here, else its start (or creation) time, in local time. Today shows 14:05, an earlier day shows Oct 19, and hovering shows the full Ended Oct 19 14:05. This keeps the one-line row readable in a narrow sidebar.
    • Row opens the room: the whole row is one button (mouse, Enter or Space) with a hover band. The separate Open button is removed.
    • Fold state: saved in this browser (localStorage), so each browser remembers its own choice. If storage is unavailable, it starts folded as before.
  15. added 2 commits that reference this issue on Oct 20, 2026
    48975f9
    fbf9b30
  16. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    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

area: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