Skip to content

Add typed in-app social notification inbox - #198

Closed
coder13 wants to merge 3 commits into
agent/issue-75-friendship-lifecyclefrom
agent/issue-105-notification-inbox
Closed

Add typed in-app social notification inbox#198
coder13 wants to merge 3 commits into
agent/issue-75-friendship-lifecyclefrom
agent/issue-105-notification-inbox

Conversation

@coder13

@coder13 coder13 commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • add MongoDB-backed, recipient-only social notifications with typed friend-request/acceptance resources, cursor/read APIs, expiry, and a reference-only PostgreSQL mirror
  • create idempotent notifications from friendship lifecycle transitions and relay typed notification_created / notification_updated events to the recipient Socket.IO room
  • add reconnect-safe Redux reconciliation, header bell, /notifications inbox, typed friend actions, and the reserved room-invitation renderer seam
  • keep the social rollout disabled by default; notification paths never use email, callbacks, URLs, tokens, passwords, or membership lists
  • add unit coverage plus a two-user Cypress notification flow (enabled only in the Cypress test server)

Stacked dependency

This draft PR targets agent/issue-75-friendship-lifecycle / #193 and should merge after that friendship foundation.

Validation

  • yarn workspace letscube-server lint
  • yarn workspace letscube-server test --runInBand (22 suites, 127 tests)
  • yarn workspace letscube-client lint
  • yarn workspace letscube-client test --watchAll=false --passWithNoTests (16 suites, 88 tests)
  • yarn workspace letscube-server postgres:schema:validate
  • yarn workspace letscube-client build
  • git diff --check

Cypress was added to the CI full-stack suite but not run locally because no isolated local Docker stack was started.

coder13 added 3 commits July 12, 2026 21:59
Persist recipient-scoped social notifications from friendship lifecycle transitions, mirror their safe references to PostgreSQL, and reconcile delivery through Socket.IO and the client inbox UI.
Ensure the request recipient exists before exercising the two-user notification lifecycle.
Keep the Cypress flow focused on typed actor identity and lifecycle behavior across valid display-name preferences.
coder13 added a commit that referenced this pull request Jul 14, 2026
# Conflicts:
#	client/src/components/Header.jsx
#	server/api.test.js
#	server/auth/index.js
@coder13

coder13 commented Jul 14, 2026

Copy link
Copy Markdown
Owner Author

Already integrated into master through commit 7ee0155 and the published master integration. Closing the stale stacked PR record without re-merging its ancestor branch.

@coder13 coder13 closed this Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant