Repository navigation
Improve the group-link join entry and show feedback when Join group is clicked #1021
Copy link
Copy link
Closed
Labels
area:uiWeb/desktop UI and copyWeb/desktop UI and copyenhancementNew feature or requestNew feature or request
Description
Problem
When trying to join an existing group by link, the entry point and the join flow are confusing and provide no clear feedback.
Screenshot: the entry card is titled “面对面建群或用链接加入”. After opening it and pasting a group link, the preview shows “Waiting for FlyBot … to let you in. If the group does not appear, press Join group to ask again.” There is a “加入群” button in the group card. Clicking it appears to do nothing.
Steps to reproduce
- Open the entry point for creating/joining a room.
- Paste a valid group invitation link and click “用链接加入”.
- When the group preview/card appears, click “加入群”.
- Observe the UI and the room list.
Actual behavior
- The entry title “面对面建群或用链接加入” mixes two different actions and is hard to understand when the user's intent is to join an existing group.
- Clicking “加入群” gives no obvious confirmation, progress state, error, or explanation of what happens next.
- It is unclear whether the join request succeeded and is waiting for the host, failed, or needs to be retried. The existing hint mentions waiting for the host, but the button itself does not make the state transition clear.
Expected behavior
- Use a clear entry label such as “加入群聊” for the join-existing-group flow. Keep group creation as a distinct action/entry where possible.
- After the user clicks “加入群”, provide immediate and truthful feedback:
- If the request was sent and host approval/invitation is pending, show a clear pending / waiting for host state and explain whether the user needs to do anything else.
- If the request succeeded, confirm that the group was joined and show/open it.
- If the request failed, show the actionable error and a retry action.
- If the button retries a previous request, label it accordingly (for example, “重新请求加入”) and show that the retry was sent.
- Do not silently treat a claimed invitation as a successful join unless the room is actually present in the local room list.
- Add UI tests for pending, success, failure and retry states.
Related issues
- A local room's invite link has no Members-card row and no redemption dialog, and the preview card would be copied a second time #876 — invite-link UI and join flow
- Group link join fails when a Chief holds a room-only identity; dialog then says 'already joined' #899 — a claimed group link could be reported as “already joined” even when the room was not present
- a link-admitted guest still needs a friendship: its room envelopes are carded, and approving the card ends in no_relationship #923 — link-admitted room messages were incorrectly sent through the ordinary friendship/approval path
These issues cover adjacent invite-link mechanics. This issue focuses on the entry-point wording and making the user's click and resulting join state understandable; please check the current behavior against those fixes before changing the underlying ticket logic.
Acceptance criteria
- A user can distinguish “create a group” from “join an existing group”.
- Every click on the join/retry action results in a visible pending, success, or failure state.
- Pending host approval is explicitly explained; users are not left guessing whether the click worked.
- Repeated clicks do not create duplicate joins or falsely claim success.
- Tests cover the UI state transitions without weakening invitation, membership or authorization checks.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:uiWeb/desktop UI and copyWeb/desktop UI and copyenhancementNew feature or requestNew feature or request
Activity
Birfy commentedon Oct 25, 2026
Written-by: Triage
Thanks for the write-up — it is a real problem, but I need two facts before this can be worked as its own issue, because two older issues already cover most of this surface:
What I need from you: (1) which FlyBot build this is (the version in the sidebar, or the release tag), and (2) whether the group ever appeared after "Join group" — waiting forever is #1064, while a group that appears with no confirmation is the copy problem in #1053. With those two answers this turns into either a pointer to the existing fix or a new issue with a narrow acceptance.
One part is genuinely not covered by either: the entry card's title mixes "face-to-face" and "by link" in one label. That is
plugins/social/client.jscopy, and it will be filed separately if it survives the two answers above.Birfy commentedon Oct 25, 2026
Written-by: Triage
Narrowed to
agent-ready, owner Dev. The two larger halves of this report are already fixed or filed (#1053for the join/create wording,#1064for the stuck "Asked to join…"), so one thing is left that neither covered:the entry card's title mixes two different actions in one label — a face-to-face room and joining by link are different intents, and the title names both, so a user who wants to join has to read past a create path to find it.
Scope:
plugins/social/client.js— split the entry into two clearly labelled rows/paths ("Join by number or link" / "Start a face-to-face room") with the existing handlers unchanged, and keep the 6-digit helper text on the join path. No new endpoint, no server change, no behaviour change beyond which control the user taps.Acceptance: a test that asserts both labels exist and that the join-shaped label is the one carrying the code input; existing #1019/#1038/#1061 cases stay green.
If after that the reporter's "clicking Join group does nothing" still reproduces on current main, that is
#1064's surface and belongs there — I will re-point it rather than widen this.feat(social): offer joining and starting a face-to-face room as two e…
feat(social): offer joining and starting a face-to-face room as two e…
feat(social): offer joining and starting a face-to-face room as two e…
feat(social): offer joining and starting a face-to-face room as two e…
feat(social): offer joining and starting a face-to-face room as two e…
Birfy commentedon Oct 25, 2026
Written-by: Dev
done —— #1021 随 #1135 合入
5841467c(squash 题目#1021 …),四项在 main 上核过:closed/completed,agent-working已摘;PR Offer joining and starting a face-to-face room as two entries #1135merged: true,Fixes #1021指向的就是它。changelog.d/1021-join-and-start-are-two-entries.changed.md在 main 上。docs/subsystems/social.md(两行入口与各自带什么)、plugin-runtime.md(三条flybot.new-chat.action)、core-client.md(那四个 i18n key)都在这一版里。Fixes #1021与合入 commit 一一对应,没有第二张 PR。Offer joining and starting a face-to-face room as two entries (ThinkF…