Recent Updates
Every documented change from the last 14 days, newest first — one row per update, so a guide edited several times shows each change separately.
Each line is the guide author's own What's new entry — what changed for the client, not what the commit did. Open the guide for the detail. Regenerated on every deploy.
| Date | Guide | What changed |
|---|---|---|
| 2026-11-06 | Mobile Posts — Feed & Detail Data Structure | New field likedBy on every post (list, feed, detail): up to 3 of the viewer's mutuals who liked it, plus mutualCount. Use it for "Liked by Charlie and 37 others". Same shape as repostedBy. null whe… |
| 2026-11-06 | Mobile Posts — Integration Guide | Breaking: GET /api/posts/:id/likes is now paged: 20 likers by default, newest first. Send limit (max 100) and pass nextCursor back as cursor for more. The followers-first sort is gone; use isFollow… |
| 2026-11-06 | Mobile Posts — Integration Guide | GET /api/posts/saved now works for unverified students. It no longer returns 403 STUDENT_VERIFICATION_REQUIRED. Users can open their own saved list before they verify. Nothing to change in the client. |
| 2026-11-06 | Mobile Activities & Achievements — Integration Guide | shareToFeed / shareCaption no longer return 400. The server now ignores them and saves the entry. This keeps older app builds working. Still no feed post is created. New builds should still not sen… |
| 2026-11-04 | Mobile Post Interactions — Integration Guide | When an original post is deleted, its reposts are deleted too. They no longer show "Original removed" in profiles and lists. Drop any reposts you hold in local state for that post. Reposts that wer… |
| 2026-11-03 | Mobile Chat — Integration Guide | If you delete a message request, then open a chat with that person yourself, the conversation comes back status: "ACCEPTED" — no Accept / Delete / Block. Call POST /chat/conversations as before and… |
| 2026-11-03 | Post Share (in-app) — Mobile Integration Guide | docs(mobile-guides): replace sample test password with placeholder |
| 2026-11-03 | Mobile Posts — Integration Guide | The author can now edit externalFormUrl with PATCH /api/posts/:id. Send a new https link to replace it. This works only on a post created with an external form. On any other post it returns 400. Yo… |
| 2026-11-02 | Mobile Post Request ↔ DM Wiring — Integration Guide | Posts with an external form (cta.handledExternally) never create a request or a DM. On the author's responses screen show "responses handled externally" copy for them. Nothing changes for other posts. |
| 2026-11-02 | Mobile Post Requests (CTA) — Integration Guide | Posts can now use an external form (cta.externalUrl, see the posts guide §1.5). On such a post POST /:id/requests returns 409 EXTERNAL_FORM_POST, and GET /:id/requests returns handledExternally: tr… |
| 2026-11-02 | Mobile Posts — Integration Guide | New optional field externalFormUrl on the 3 CTA kinds. Send an https link (for example a Google Form) when the author wants to collect responses outside the app. Every post object then has cta.exte… |
| 2026-10-30 | Mobile Posts — Integration Guide | GET /api/posts/saved takes a new optional type query. Send one post type (FIND_TEAMMATES, INVITE_PEOPLE, START_SOMETHING, SHARE_OPPORTUNITY or ANYTHING) to see only saved posts of that type. Leave… |
| 2026-10-30 | Student Verification — Integration Guide | A verified student who moves school now verifies the new school before their education changes, and signup no longer verifies anyone. New POST and DELETE /api/student-verification/school-change, ne… |
| 2026-10-30 | Student Verification — Integration Guide | A rejected student can now appeal to support, once per rejected document. New POST /api/student-verification/appeal { message } and new /status fields canRetry, canAppeal, appeal. Show "Try again"… |
| 2026-10-30 | Mobile Profile — Edit Profile Integration Guide | schoolName on education entries now allows up to 500 characters (was 120). Raise any client-side limit. Nothing else changes. |
| 2026-10-30 | Mobile Onboarding — Integration Guide | Signup no longer verifies the student, even with a trusted school email. POST /api/onboarding/signup now always returns isStudentVerified: false. Verification happens after the education screen (Sc… |
| 2026-10-29 | Mobile Chat — Integration Guide | New §5.3a: how to render every message type. A POST_SHARE row is the shared-post card plus its content as a text bubble. On a post-request seed that text is the requester's note, so the post author… |
| 2026-10-29 | Mobile Post Request ↔ DM Wiring — Integration Guide | The seed message's content (the requester's note) must be drawn as a text bubble with the card, for the author too. The old "no special casing" line hid this. See the chat guide §5.3a. |
| 2026-10-29 | Mobile Post Requests (CTA) — Integration Guide | Submitting again while a request is PENDING now returns 409 "Request already pending". It used to overwrite the note and add a second request card to the chat. Disable the Request button on PENDING… |
| 2026-10-29 | Support (Contact us) — Mobile Integration Guide | First version. POST /api/support/tickets is new. Build the Contact us screen on it. |
| 2026-10-28 | Mobile Content Moderation — Integration Guide | shareCaption is removed from the list of checked activity / achievement fields, because the field is removed. Sending it now gets 400 SHARE_TO_FEED_REMOVED. See the [activities guide §2.5](../user-… |
| 2026-10-28 | Mobile Posts — Feed & Detail Data Structure | Breaking: eventAt and deadlineAt on find-teammates and invite-people are now dates ("2026-06-12", no time). Show them as they are; do not convert them to the device timezone. Share-opportunity even… |
| 2026-10-28 | Student Verification — Integration Guide | POST /school-email now refuses personal addresses (Gmail, Yahoo, Outlook, their country versions, Apple relays, throwaway domains like mailinator.com) with 400 FREE_MAIL_NOT_ALLOWED. Show the messa… |
| 2026-10-28 | Student Verification — Integration Guide | 403 SHARING_REQUIRES_VERIFICATION is gone. The "Share with others" toggle on activities and achievements is removed for everyone, so there is nothing left to gate. shareToFeed now gets 400 SHARE_TO… |
| 2026-10-28 | Mobile Activities & Achievements — Integration Guide | Breaking: the "Share with others" toggle is removed (shareToFeed / shareCaption → 400, §2.5). Dates come back as month + year only ("2025-11"): achievement awardedAt, activity startDate / endDate.… |
| 2026-10-28 | Mobile Topics & Interests — Integration Guide | Removed the note about auto-tagging a shared post. Activities and achievements are no longer shared to the feed (the toggle is removed), so an entry with no picks just stays untagged. Details: [act… |
| 2026-10-28 | Mobile Onboarding — Integration Guide | Signup now needs a verified email, and phone signup is off. On Screen 2, call POST /api/verification/send first. It returns 409 ACCOUNT_EXISTS before sending a code when the email already has an ac… |
| 2026-10-27 | Mobile Posts — Feed & Detail Data Structure | On find-teammates / invite-people / start-something, location becomes the picked city, state or country name only ("Pune"), and a new locationLevel (CITY \ |
| 2026-10-27 | Student Verification — Integration Guide | accountEmailPrefill is null for more personal addresses. The server now also treats country versions (hotmail.co.uk, yahoo.co.in, outlook.in), Apple "Hide My Email" relays (privaterelay.appleid.com… |
| 2026-10-23 | Mobile Verification & Password Reset Guide | OTP and password-reset emails now come from the company Google Workspace address instead of Resend. Nothing to change in the app: same endpoints, same codes. Codes can now reach any inbox in dev too. |