Repository navigation
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
Copy link
Copy link
Closed
Labels
area:socialFriends, invites, grants, Bot SocialFriends, invites, grants, Bot Socialarea:uiWeb/desktop UI and copyWeb/desktop UI and copybugSomething isn't workingSomething isn't workingself-testFiled by the product self-test routine (issues only)Filed by the product self-test routine (issues only)
Description
Summary
Face-to-face room naming and the ended-room state disagree between the core title, the plugin rows and the two homes:
- The title shows a date even though the room number is known.
- Past rooms show the start time, or a future time (the joining deadline).
- The home that did not leave is labelled "Left" and stays a member of an open room on Bot Social.
- The leaver is labelled "Closed".
- The closed tab title regresses tab title keeps the member list after a face-to-face room is closed (#244 follow-up) #250.
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
- A: Face-to-face group → Chief →
482913(roomfrm_01M571ZK5FZCKPS54G5J27B4ZS, created 16:27:49). B joins with Chief (16:27:58). Enter chat (started 16:28:07). Chat a little. - B: details → Leave → Leave (16:31:25).
- B: Face-to-face group →
482913again. This makes a new waiting roomfrm_01M5727TP4FT01AQ06DF4C23R4at 16:32:19, because start voids the number (by design). Then Leave from the waiting dialog. - Look at both homes' sidebars, tab titles and Past rooms.
Actual
- Title uses the date, not the number. Both homes:
Face-to-face · SelfA1622, SelfB1622 · Oct 18 16:27, although both joined by482913. The plugin builds… · 482913(faceRoomTitle(snapshot, { code: joinCode })). But coreupsertFaceRoomrecomputes every auto title fromspec.joinCode || spec.code(core/src/host/room-membership.jsL1247–1254, L1290), andapplyFaceSnapshot(plugins/social/src/social.jsL2172) never passesjoinCode. So the number is always dropped. - Past rooms use a third title builder.
shownFaceTitle()inplugins/social/client.jsL738–764 takesstartedAt || 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 passesmembers: []. - Three formats in one list. Screenshot: Past rooms with "Closed · Oct 18 16:28", "Face-to-fa…" clipped, "Oct 18 16:42".
- B's closed row reads
- Ended-room status is backwards.
- A never left, but its Past row has the Left chip.
faceSnapshotPast(L2158) returnsleftwhen the last remote seat empties. - B, who left, shows Closed (B's
pastFaceRoomsstoresstatus: 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 returnsstatus: openwith A's Chief as the only member. A'ssettings.faceRoomsstill holds it withasBots: [@chief.selfa1622.home]. So the room-only identity is not released and A keeps polling a room it shows as past.
- A never left, but its Past row has the Left chip.
- Tab title after close stays
Face-to-face · SelfA1622, SelfB1622 · Oct 18 16:27on B instead ofFace-to-face · closed(regression of tab title keeps the member list after a face-to-face room is closed (#244 follow-up) #250). - Sidebar row:
- A's live room row has no person/people mark and no
openchip, and wraps to two lines. - After the close, A's row vanished until a reload.
- Past rows clip the name (
Face-to-fa…).
- A's live room row has no person/people mark and no
- Left room details (Past rooms → Open, read-only) still show the Auto-send checkbox and a Leave button.
- B's own transcript has no "You left the room" line. A sees "SelfB1622 left the room".
Expected
- One title builder for core, plugin and client:
Face-to-face · Alice, Bob · 482913when a number is known, else the creation time (docs/subsystems/social.md"Past rooms, unique titles"; Face-to-face room titles don't tell repeat rooms with the same people apart (remainder of #132) #132, Face-to-face: the same room has different titles in each home (A omits the other member) #172, Face room title time differs before and after Enter chat (join deadline vs start) #194). The same string goes everywhere: row, tab, details and Past rooms, on every home. - Status chips are honest. The leaver sees Left. The other home sees Ended or Closed, and its client also leaves on Bot Social, so its room-only identity is released (social.md invariant 4: revoke when the Bot leaves its last face room or the room closes).
- Closed rooms: tab
Face-to-face · closed(tab title keeps the member list after a face-to-face room is closed (#244 follow-up) #250). The row moves to Past rooms without a reload. Read-only details hide Auto-send and Leave. The leaver's transcript ends with a short "You left the room." line. - Rows stay on one line with a people mark and status chip, with the full title in a tooltip (aesthetics and consistency; Social UI polish round 3: truncation, duplicate Add friend/Accept invite, Manage access depth, wording (#166 follow-up) #173 item 2).
Metadata
Metadata
Assignees
Labels
area:socialFriends, invites, grants, Bot SocialFriends, invites, grants, Bot Socialarea:uiWeb/desktop UI and copyWeb/desktop UI and copybugSomething isn't workingSomething isn't workingself-testFiled by the product self-test routine (issues only)Filed by the product self-test routine (issues only)
Activity
Birfy commentedon Oct 18, 2026
PR #340 covers items 1 (the number stays in the title:
joinCodegoes with every upsert and core keeps it onroom.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).fix(face-rooms): retry the automatic leave on the next poll when it f…
Face rooms: the title keeps its number, honest Left/Closed, and the h…
Docs: one-line face-room rows and hover titles (ThinkFlowLab#304)
A friend's Bot sidebar row: name and owner on one line, a second line…
Birfy commentedon Oct 19, 2026
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).Birfy commentedon Oct 19, 2026
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 readFace-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.jsalready returnsFace-to-face · closedfor 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.Birfy commentedon Oct 19, 2026
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.sessionTabLabel(core/src/client/brand.js, fix(ui): tab title says closed for an ended face-to-face room #251) returnsFace-to-face · closedfor a closed or left auto-titled face room, and the tab re-reads on roster changes (fix(ui): tab title follows a room the roster names after it opened (#173) #244). Thea003044self-test ran before Face rooms: the title keeps its number, honest Left/Closed, and the home that stayed leaves too #340 changed the title format, so it needs one live 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.
Birfy commentedon Oct 19, 2026
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.Birfy commentedon Oct 19, 2026
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:1 remaining item
Birfy commentedon Oct 19, 2026
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.
Birfy commentedon Oct 19, 2026
Claimed by maintenance (2026-10-20 07:58 Asia/Shanghai). Working on branch
fix/304-face-room-titles-pastin 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
Minor details decided while implementing (PR #463, 2026-10-20 08:06 Asia/Shanghai):
14:05, an earlier day showsOct 19, and hovering shows the fullEnded Oct 19 14:05. This keeps the one-line row readable in a narrow sidebar.Past rows: one CSS rule for the row band, drop the unused Open-button…
Past rooms: list everyone, show each row's time, open from the row, r…
Show one look per Bot on every home in face-to-face rooms (ThinkFlowL…