Repository navigation
Conversation
Builds Looking for group from the Storybook prototype on the API in daily-api #4414, #4417, #4419, #4420 and the gaps PR that adds LfgPost.utcOffset, LfgPost.acceptedReachOuts and userLfgPost. - /lfg is the board (kind tabs, time zone, topics and reputation filters in the header, one list newest first) or, before launch, the Opening soon page. /lfg/:id is a post, /lfg/new and /lfg/:id/edit the composer. - Two flags, both off by default: `lfg` gates every surface and rides on direct messages, since an accepted reach-out is a chat. `lfg_launched` off keeps the board in Opening soon: people post and opt in to helping, nothing is listed and nobody can reach out. - Reach-outs open from the board, a post and a profile, with the poster's asks, a link check against the sender's verified GitHub, Stand out nudges into the real GitHub link, work experience and CV flows, and the receipts the author will see. - The author answers in Messages' Requests tab: reach-outs grouped under the post, a filtered folder, and a pane to accept into a chat, decline with undo or report and block. A chat that started from a reach-out names the post and carries a safety note. - The LFG badge on comment and post author avatars, a strip under hover cards, a section and ribbon on profiles, an LFG tab on the v2 rail and the phone bar, an entry in the legacy sidebar, and switches for the three LFG notifications. - Board widgets, the helper count and other secondary reads go through gqlBatchRequest; the board and the post stay on their own requests. The prototype's client-side pay, contact and duplicate-pitch blocks are not carried over: the API dropped the same regexes (#4420) because they rejected normal developer text, and spam is left to vordr and jev. Copy that promised a heads-up to people who follow a post's tags is gone, since only Help posts notify (Open to helping). Remind me on the pre-launch post page is gone too, with nothing behind it. The modals put their action in the sheet's pinned bar on phones (formProps), where Modal.Footer renders nothing.
Looking for group now lives in the app, so the prototype flows in packages/storybook/stories/lfg go.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…real link Found in the two-account test on the preview. A post that failed to load said it wasn't there anymore, which reads like the author deleted it; it now offers a retry. A link answer without http(s) kept Send disabled with only the GitHub verification line under it; it now says what's missing.
Found in the two-account test: the title in the LFG strip under a hover card inherited the tooltip's dark text color and was nearly invisible on the card.
The note about blocking the sender sits beside Submit in the dialog footer. The global flex-shrink reset kept it at full width, so it pushed the button past the dialog's right edge. It now shrinks and wraps.
Accepting a reach-out from someone the poster already chats with reuses that conversation, so its request message stays the old one and the new pitch never appeared. The conversation query now reads the pair's accepted reach-outs (daily-api#4432), and the thread places each pitch it doesn't already open with as the sender's message, before the first message sent after it. Needs daily-api#4432 deployed: until then the conversation query fails validation and the "You met through" card hides.
Product gaps:
- Report post calls reportLfgPost with a reason picker (the reasons the
API takes) instead of reporting the author, logs once it's sent, and
the board drops the post.
- "Your past posts" on the board lists found and expired posts from
myLfgPosts, so an author can get back to one and reopen it. A post past
its expiresAt reads as expired even before the expiry cron runs.
- A GitHub or GitLab link in a chat that began with a reach-out asks
before it opens ("Before you open this"), with Report and Open anyway.
- The Messages dot counts reach-outs waiting on the viewer's posts,
seeded by the shell state query (lfgReachOutWaitingCount).
- A reach-out shows the sender's time zone, their job title as a
receipt, and "Not verified" under links that aren't their own repos.
Opened by link after it was answered, it says what came of it.
- The pitch no longer claims copy-paste pitches get held back; nothing
checks for that.
Fixes:
- Deleting a post or marking it found refreshes Messages, so the closed
reach-outs leave Requests; accept shows the API's reason when the post
closed meanwhile.
- The edit form locks kind and asks on the API's hasReachOuts, which
counts declined reach-outs too.
- The reach-out pane in Messages follows the lfg flag.
- Hitting the hourly send cap no longer reads as used-up credits.
- A profile without a time zone shows UTC+0 like the API, with a link to
set one.
- A failed background refetch keeps a loaded post on screen; the board
drops rows a later page repeats; Requests keeps reach-outs when message
requests fail and doesn't flash "No message requests" while they load.
- Connect GitHub opens its window on the click (Safari blocked the one
opened after an await) and says when it fails.
- Open to helping prefilled from the board keeps to its 10-topic cap; a
first post shows the house rules while actions load; a blank custom ask
is dropped; notes the API keeps (a request, a pitch) can't be reacted to.
Needs daily-api#4432 and #4434 deployed first: the shell state query
asks for lfgReachOutWaitingCount, and the conversation query for
lfgReachOuts.
- The repo-link warning also catches middle clicks (auxclick), and gists, raw files and archive downloads on any GitHub, githubusercontent or GitLab subdomain. It guards the reach-out pane too, where a stranger's repo answer is the first link a poster sees, and its Report starts with Block ticked. - People with direct messages off see a "Turn on" notice in the composer and the Open to helping modal, as the reach-out modal already did: every reach-out becomes a chat, so both dead-end without it. - A declined reach-out opened later can be restored, past the toast's Undo. - Connect GitHub hides where the window can't open (the iOS app, mobile Brave); a redirect there would lose the pitch being written. - After a post mutation the post query reloads, since the result lacks hasReachOuts and the edit lock read stale counts. Answering a reach-out refreshes the board, where your row counts what waits. - Analytics: sends carry the reach-out id so they join accepts and declines; found, renew, delete, report, accept, decline and restore carry the post kind; board row clicks (click lfg post, with position) and opening Open to helping (open lfg helper) are logged; agreeing to the house rules logs once the first post is saved, not on every try.
Signing in on an LFG page, or a boot that swaps the user, renders once with the new user before GrowthBookProvider's effect hands GrowthBook their id. The lfg flag reads false for that render, the gate's redirect fires before the attributes land, and someone inside the flag is sent home. Found in the round-2 test, where a freshly signed-in profile loading /lfg landed on the feed. The gate now waits until GrowthBook's userId matches the signed-in user; setAttributes re-renders the tree, so the real answer follows right after.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Looking for group, built from the Storybook prototype (#6914) on the API in dailydotdev/daily-api#4414, #4417, #4419, #4420 and dailydotdev/daily-api#4428. The prototype's stories are removed in a separate commit.
Routes
/lfgis the board. Before launch it's the Opening soon page./lfg/:idis a post./lfg/newand/lfg/:id/editare the composer.All of them are signed-in only and
noindex.Flags (both off by default)
lfgcontrols who has Looking for group at all: the board, posts, reach-outs, the badge, the hover strip, the profile section, the nav entries and the notification switches. It's evaluated only for people who have direct messages (direct_messagesplus a chat server), because an accepted reach-out becomes a chat. Anyone outside it is redirected home.lfg_launchedoff is "Opening soon". People can post and opt in to helping, and the badge shows. Nothing posted is listed, and nobody can reach out. Turning it on opens the board.What's in it
?reachOut=<id>opens a pane to Accept (into the chat), Decline (Undo restores it) or Report, which reports, blocks and declines their other requests.lfgKindis added toUserAuthor; it's already live in prod).icons/Signal).lfg_reach_out_received,lfg_help_matchandlfg_still_looking.open lfg board,filter lfg board,open lfg poststart/publish/edit/delete/renew lfg post,agree lfg house rules,mark lfg post found,report lfg poststart/send lfg reach out,click lfg stand outopen/accept/decline/restore/report lfg reach outsave/remove lfg helper,click lfg striptarget_id, withTargetType.LfgPost/LfgReachOut.gqlBatchRequest: facets, your post, helper, credits, inbox, person, streak, user post and conversation post. The board and the post itself stay ongqlClient.request.Decisions worth a look
LfgPostreport with the post attached would give moderators more context; that would be an API follow-up.formProps, becauseModal.Footerrenders nothing in a phone sheet. A spec caught this: the prototype's footers would have had no Send button on phones.SquadSubPageHeadergetsphoneActions,UserEntityCardgetsfooter, andProfileHeadergetsavatarBadge.ReportUserModalexports its reasons.Deploy order
lfgfor a cohort that hasdirect_messages.lfg_launchedwhen connections open.Merging this before the API deploys is safe, since nothing LFG-specific runs while
lfgis off. The one always-on change islfgKindonUserAuthorand the hover query, which production already serves.Testing
tscpasses and lint is clean. The shared and extensiontscerrors are pre-existing on main.Preview domain
https://lfg.preview.app.daily.dev