Land avatar, presence, and API wiring stack on main - #439
Conversation
Parse avatar qualities vs URL in Avatar, pass raw avatar values through chat/comments/activity, sync login/nav avatar from GET_USER, and keep store avatar updates typed for objects. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep preferredStatus/message through stale offline cleanup, restore on heartbeat, expose updatePresence, and rehydrate the client from GET_USER and heartbeat responses. Co-authored-by: Cursor <cursoragent@cursor.com>
Register notification and activity resolvers, and improve guest-session handling in Apollo/auth utilities so unauthenticated flows fail cleanly. Co-authored-by: Cursor <cursoragent@cursor.com>
…ates Re-bind all Presence statics after model resolve so hot reload cannot leave stale methods, and coalesce chat status defaults before applying heartbeat payloads to avoid no-op setState when values already match. Co-authored-by: Cursor <cursoragent@cursor.com>
Use ActivityEventType[] instead of JSON for activityEvent, fail loudly on missing activity userId, paginate notifications with a capped limit, and add a userId+created index for the activity feed. Co-authored-by: Cursor <cursoragent@cursor.com>
feat(api): notifications/activities wiring and guest auth (4/4)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Update Presence.schema tests for the preferred-status heartbeat path, and allow one-time Zustand avatar seeding in the editor effect. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@motirebuma this appears to be the canonical path for landing the reviewed avatar, presence, and API-wiring stack on Could you review the consolidated diff specifically for:
@niamao, please also confirm that this branch contains the complete intended stack and that the obsolete stack branches can be retired after merge. Once those checks are recorded, this should resolve the current gap between reviewed work and what is actually present on |
motirebuma
left a comment
There was a problem hiding this comment.
Hey @niamao, thanks for pointing this out! PRs 435-7 were merged into their branch stacks but never onto main, so this PR merges all previously approved code back in.
All code is thoroughly reviewed and approved with no new features, only merging in with the latest main and a handful of CI fixes (updated heartbeat tests and a lint suppression in the avatar editor). All tests are passing.
Thank you @niamao
Summary
This PR lands the remaining stacked work that was already reviewed and approved, but never reached
main.The original stack was:
profile-bio→main— merged ✅avatar-consistency→profile-bio— reviewed & merged into the stack branch, not intomainpresence-persist→avatar-consistency— reviewed & merged into the stack branch, not intomainapi-wiring→presence-persist— reviewed & merged into the stack branch, not intomainBecause PRs #435–#437 targeted intermediate stack bases instead of being retargeted to
mainafter #434 landed, only the bio/About work is onmaintoday. This branch is cut from the tip of that stack (presence-persist, which already includes avatar + presence + api-wiring) and merged with currentmainso we can bring the already-reviewed changes intomainin one PR.No new feature work is intentionally introduced here beyond syncing with
main. The commits below were previously reviewed on:Test plan
mainmatches expected scope from fix(avatar): consistent avataaars rendering (2/4) #435–feat(api): notifications/activities wiring and guest auth (4/4) #437 (avatar, presence, api wiring)pnpm lint/pnpm type-check/pnpm testinquotevote-frontendpnpm lint/pnpm type-check/pnpm testinquotevote-backend(if touched)avatar-consistency,presence-persist,api-wiring,profile-bio) if no longer neededMade with Cursor