PlatformsFacebook

Facebook groups: the page and its requests

The groups domain of Facebook's client (rule 48): the requests a group page makes, one doc each, built by log facebook capture --docs from the runs' recordings. The code that works on groups is its own library, src/facebook/group/<domain>/ (rule 45): join (request to join), answer (the membership questions), read (the posts, issue #27, docs/groupRead.md), members (the People tab's newest members, rule 77, docs/groupMembers.md).

What can be done on a group page

Every interactive element on a group's Discussion tab, as the accessibility snapshots of run 20261020T143506 recorded them (Bethlehem, a group it is a member of: load, a snapshot, three scrolls; log inspect, rule 29). There were 810 refs on the page after the scrolls; these are the 110 kinds they fall into. Writes is what changes something on Facebook, which needs matt and --live (rule 8). Request is what the page sends, linked to its doc where a run has recorded it; "not recorded" means no run has clicked it yet, and code that clicks it waits for a recording that does (rule 29).

Top bar (every Facebook page, not the group's)

ControlWhat it doesWritesRequest
link "Facebook", "Home", "Reels", "Friends", "Groups"Navigate away from the groupnothe target page's root query
combobox "Search Facebook"Facebook-wide searchnoCometSearchBootstrapKeywordsDataSourceQuery (on load), SearchCometResultsInitialResultsQuery
button "Facebook menu", "Messenger", "Your profile"Open the menusnonot recorded
button "Notifications, N unread"The notifications listnoCometNotificationsDropdownQuery (on load)

Group header

ControlWhat it doesWritesRequest
link "Cover photo"Opens the cover photononot recorded
heading (the group's name)The group—CometGroupRootQuery, GroupsCometDiscussionLayoutRootQuery (on load)
link "N members", "See everyone"The People tabnonot recorded
20 links, one per member's avatarThat member's profile; resting the cursor shows their hover cardnoCometHovercardQueryRendererQuery
button "Invite"Invite friendssending an inviteopening: GroupsCometInviteFriendsDialogQuery, triggerGroupsCometHeaderInviteWithEmailExposureQuery, GroupsCometInviteFriendsCategorizedInviteSearchQuery (run 20261020T153648; sending not recorded)
button "Share group"The share sheet for the groupsharingCometUnifiedShareSheetDialogQuery, UnifiedShareSheetMessengerSectionQuery; opening it also sends, by itself, useLinkSharingCreateWrappedUrlMutation, useIncrementLinkSharingDisclosureImpressionCountMutation, CometLinkSharingInlineDisclosureCountQuery, MAWFetchXMAData_fetchXmaPreviewDataQuery and the composer's mention queries (useFeedComposerCometMentionsBootloadDataSourceQuery and its two tagging versions)
button "Joined"The membership menu: Manage notifications, Unfollow group, Leave groupeach of its itemsopening: GroupsCometJoinedActionMenuQuery (run 20261020T153648; no item recorded). For a non-member it is Join: useGroupRequestToJoinMutation, log facebook join group
button "See Recommended Groups"Other groups Facebook suggestsnoGroupsCometRecAffordanceSectionQuery
button "Search within this group"Search the group's postsnoopening: GroupsEntityScopedCometTypeaheadDialogQuery, useGroupsEntityScopedRecentSearchAndExploreDataSourceQuery, withSearchCometTypeaheadSERPWarmCallDecoratorQuery (typing not recorded)
button "More"The group's menu: Your content, Share, Manage notifications, Pin group, Report groupdepends on the itemopening: GroupsCometMoreActionMenuQuery (no item recorded)

The header repeats as a sticky bar once the page scrolls (the group's name as a link, Invite, Share, Joined): the same controls.

Group tabs

ControlWhat it doesWritesRequest
tab "Discussion" (selected)The feed belownoCometGroupDiscussionRootSuccessQuery (on load)
tab "Featured"/announcements, the featured postsnoCometGroupAnnouncementsRootFeedQuery
tab "Open questions"/questions, the question posts, each with its first commentsnoGroupsCometQuestionsRootSuccessQuery
tab "People"/members: admins, moderators, members in commonno (its Follow buttons are)GroupsCometMembersRootQuery
tab "Events"/events: upcoming and pastno (Interested, Going are)CometGroupEventsRootQuery
tab "Media"/media: the photos grid (Photos, Videos, Albums)noGroupsCometPhotosRootQueryContainerQuery
tab "Files"/files/files: shared filesnoGroupsCometFilesTabRootQuery
tab "About"/about: description, history, rulesnoCometGroupAboutRootQuery

Every tab also sends CometGroupRootQuery (the header) and /ajax/navigation/; back on Discussion, useGroupsCometVisitMutation. Flow: groupTabs (run 20261020T153648).

A second, sticky copy of the tabs is in the page with every tab disabled and unnamed (24 refs): it isn't clickable.

ControlWhat it doesWritesRequest
link "<account>'s profile"The account's own profileno—
button "Write something..."Opens the post composerpostingnot recorded
button "Anonymous post", "Feeling/activity", "Poll"The composer, in that modepostingnot recorded
button "About featured section", "Expand/Collapse featured section"The featured posts' panelnonot recorded

Feed

ControlWhat it doesWritesRequest
button "sort group feed by New posts"The sort switcher (the read keeps New posts: CHRONOLOGICAL)nonot recorded; the choice is the feed query's sort
(scrolling)Loads three more postsnoGroupsCometFeedRegularStoriesPaginationQuery: what src/facebook/group/read reads

Each post

ControlWhat it doesWritesRequest
link (the author's name)The author's profile; resting the cursor shows the hover cardnoCometHovercardQueryRendererQuery
link "N hours ago" (the time)The post's own page (its permalink)noCometSinglePostDialogContentQuery
button "Actions for this post by <author>"The post's menu: Turn on notifications, Report to group admins, Hide post, Report posteach of its itemsopening: CometFeedStoryMenuQuery and useCIXLogMutation (no item recorded)
button "Follow" / "Follow <page>"Follow the authoryesnot recorded
button "See more"Shows the rest of a long text (the feed query already holds all of it)nonone
link "May be an image of …", "No photo description available.", "N remaining items"Opens the photo viewer (/photo/, dialog "Photo viewer": Previous, Next, Zoom, full screen, View Post, the post's comments)noCometPhotoRootContentQuery, CometPhotoTagLayerQuery
link "<page>, view story", "<page>"A shared post's story, and its pagenonot recorded
link "Open reel in Reels Viewer", button "Unmute", "<page> · Original audio", link "See owner profile"A reel in the feednoFBReelsEntityDialogImplQuery (when it comes into view)
button "AI content"The AI label's explanationnonot recorded
(the reaction icons)Who reacted, on hovernoCometUFIReactionIconTooltipContentQuery
button "Like"Likes the postyesCometUFIFeedbackReactMutation
button "React"The reaction picker; picking one sets ityesCometUFIFeedbackReactMutation. Opening the picker is not recorded: the button sits under the Like button (it opens on hover), the cursor check refuses the click, and log inspect has no hover step (run 20261020T153648 steps 37, 38, 44)
button "Leave a comment"On Discussion: opens the post in its dialog and focuses the comment box. On Open questions: opens the comments inline under the postno (until one is sent)Discussion: CometSinglePostDialogContentQuery and the comment box's three queries below; Open questions: none (the tab's feed already holds them). Flows: groupPostDialog, groupPostComments
textbox "Submit your first comment…"The comment boxsending a commenton focus: useGroupsCometTypeaheadBootloadDataSourceQuery, useGroupsCometMentionsBootloadDataSourceWithTaggingTransparencyQuery, CometUFIConversationGuideContainerQuery
button "Comment with an avatar sticker", "Insert an emoji", "Attach a photo or video", "Comment with a GIF", "Comment with a sticker"Parts of a commentwith the commentnot recorded
button "Share, send this to friends or post it on your profile."The share sheet for the postsharingCometUnifiedShareSheetDialogQuery
button "View more comments"Loads more of the post's commentsnonot shown on run 20261020T151100: scrolling the post's dialog loads them, CommentsListComponentsPaginationQuery
button "Most relevant" (in the post)The comments' sort: Most relevant, Newest (every comment, newest first), All comments (with potential spam)noopening it sends nothing; picking All comments: CommentListComponentsRootQuery (run 20261020T153648, inline and in the dialog). Under All comments the replies show inline; this run met no "View … replies" button

Each comment (shown under a post)

ControlWhat it doesWritesRequest
link (the commenter), link (the comment's time)Their profile; the comment's own linknoCometHovercardQueryRendererQuery
button "Like", "React"React to the commentyesCometUFIFeedbackReactMutation
button "Reply"The reply boxsending a replynot recorded
button "Share"Share the commentsharingnot recorded
button "Edited"The comment's edit historynonot recorded
button "Hide …"Hides the comment for the accountyesnot recorded

Elsewhere on the page

ControlWhat it doesWritesRequest
button "New message"A Messenger chatsending a messagenot recorded
button "Choose File"The page's hidden file input——

What the read uses

The group read touches none of these: it scrolls, and reads the posts from what the page already sent, the group page's HTML and the feed query (rule 22, src/facebook/group/read). Comments are read too (matt, 2026-10-20): from the post's dialog or its own page, sorted Newest, scrolled until the list ends (commentsFromResponse, commentsFromPostPage, recorded on run 20261020T151100). Every control marked "not recorded" is one log inspect step away from a doc of its own. Run 20261020T153648 (Bethlehem, 48 steps) recorded the tabs, the header's menus and dialogs, a post's menu, its comments and the photo viewer; its flows are groupTabs, groupHeaderMenus, groupPostComments and groupPostDialog (docs/platforms/facebook/flows/).