Raven Scott and Cursor
0a620d5341
fix(contacts): sync profile fields on presence gossip and USER_UPSERT
...
Store username/displayName in friend presence, set peerUsername on accept, and use guarded mesh broadcast.
Co-authored-by: Cursor <[email protected] >
2026-05-25 01:18:49 -04:00
Raven Scott and Cursor
2a8b857162
fix(contacts): improve friend requests and relay DM channel invites
...
Use server+client ephemeral joins with longer flush for CONTACT_REQUEST
delivery. Forward DM_CHANNEL_UPSERT to peers on the contacts mesh.
Co-authored-by: Cursor <[email protected] >
2026-05-24 23:55:23 -04:00
Raven Scott and Cursor
de66cdd593
docs: Phase 594 contacts hub depth README entry
...
Document contacts hub live region and guildCount span metadata extend.
Co-authored-by: Cursor <[email protected] >
2026-05-24 17:02:59 -04:00
Raven Scott and Cursor
851b4ec0a8
docs: note Phase 564 contacts UI live region and test bundle
...
Co-authored-by: Cursor <[email protected] >
2026-05-24 14:51:02 -04:00
Raven Scott and Cursor
ec3145de36
docs: Phase 546 contacts depth bundle reference
...
Document test:phase546-contacts and contacts block/unblock platform spans.
Co-authored-by: Cursor <[email protected] >
2026-05-24 13:24:50 -04:00
Raven Scott and Cursor
abc9a668a9
docs: Phase 530 contacts span metadata and compositor panels
...
Update README for v0.8.493 integration and test bundle.
Co-authored-by: Cursor <[email protected] >
2026-05-24 11:52:50 -04:00
Raven Scott and Cursor
77c301fd21
docs: Phase 516 contacts depth cross-link and test bundle (v0.8.479)
...
Co-authored-by: Cursor <[email protected] >
2026-05-24 10:00:47 -04:00
Raven Scott and Cursor
fa055aed75
docs: note Phase 479 contacts.accept and DM row a11y
...
Co-authored-by: Cursor <[email protected] >
2026-05-24 05:44:02 -04:00
Raven Scott and Cursor
99c3603c43
Docs: document Phase 468 contacts/DM bundle re-verification (v0.8.431)
...
Note test:phase468-discovery-dm re-verifies contacts mesh, sidebar guards,
contacts.accept span metadata, and composer DM E2E hints.
Co-authored-by: Cursor <[email protected] >
2026-05-24 02:36:01 -04:00
Raven Scott and Cursor
313facdd7c
docs: add Phase 433 contacts test bundle and dm-errors logging notes.
...
Co-authored-by: Cursor <[email protected] >
2026-05-23 17:53:42 -04:00
Raven Scott
9687200dfe
docs: full module READMEs (v0.8.103 platform audit)
2026-05-22 13:39:27 -04:00
Raven Scott and Cursor
05ea4a1126
feat(contacts): friend presence activity on PRESENCE_UPDATE gossip
...
Persist and broadcast optional activity on contact mesh presence rows so
friends see Now Playing state P2P alongside custom status.
Co-authored-by: Cursor <[email protected] >
2026-05-22 02:37:22 -04:00
Raven Scott and Cursor
e5c9b10d7d
fix(contacts): use mux-wire wireReady before gossip broadcast
...
Prevents contacts presence and friend-request gossip from blocking on
protomux fullyOpened() that never resolves on stale connections.
Co-authored-by: Cursor <[email protected] >
2026-05-22 01:37:57 -04:00
Raven Scott and Cursor
45c1b29d92
feat(mesh): protomux v3 wire and persistent friend topic links
...
Migrate contacts gossip to pearcord-drive/mux-wire (protomux v3).
Add _syncFriendTopicLinks so accepted friends stay subscribed to each
other's contacts topics for live presence and profile cosmetics.
Fix _gossipToPeer race: do not leave persistent friend topics early;
delay ephemeral leave until gossip flush completes. Sync friend topics
before CONTACT_ACCEPT. Expose stats.meshLive and friendTopics count.
Phase 62 / v0.8.27 — contacts mesh polish.
Co-authored-by: Cursor <[email protected] >
2026-05-22 00:42:43 -04:00
Raven Scott and Cursor
3b9179d10a
feat(contacts): PROFILE_COSMETIC_UPDATE on friends mesh
...
Friends receive profile cosmetics gossip via broadcastProfileCosmetic
and profile-cosmetic events for platform peer cache updates.
Co-authored-by: Cursor <[email protected] >
2026-05-21 23:30:27 -04:00
Raven Scott and Cursor
3add6b4207
feat(contacts): broadcast and ingest friend presence on contacts mesh
...
Add PRESENCE_UPDATE gossip on pearcord:contacts:{userId} so accepted
friends see online/idle/dnd/offline without joining each other's guilds.
- ingestFriendPresence map with TTL-friendly updates
- broadcastPresence on setPresence and mesh rejoin (_lastSelfPresence)
- getFriendPresenceMap for platform listContacts enrichment
- simulateGossip handles PRESENCE_UPDATE for CI smokes
Co-authored-by: Cursor <[email protected] >
2026-05-21 21:03:44 -04:00
Raven Scott and Cursor
dfab588145
feat(contacts): unblockContact with CONTACT_UNBLOCK P2P gossip
...
Users can remove blocks locally and notify peers via CONTACT_UNBLOCK.
ingestUnblock clears blocked rows when a remote device unblocks you.
Co-authored-by: Cursor <[email protected] >
2026-05-21 20:41:35 -04:00
Raven Scott and Cursor
fef965beb3
feat(contacts): block list with CONTACT_BLOCK gossip fanout
...
blockContact now gossips CONTACT_BLOCK to the peer topic, exposes
listBlocked(), and ingestBlock() for remote block events. Request
ingest still ignores users you have blocked locally.
Co-authored-by: Cursor <[email protected] >
2026-05-21 20:37:12 -04:00
Raven Scott
7addc80fc5
chore: ignore node_modules and drop from index
2026-05-21 20:21:52 -04:00
Raven Scott
9464f20b99
chore: per-package .git with SSH origin (init-org-git)
2026-05-21 20:21:21 -04:00
Raven Scott
86bc401a8f
chore: sync local workspace into org repo
2026-05-21 20:19:47 -04:00
Pearcord
7deab8e1af
chore: publish pearcord-contacts from pearcord workspace
2026-05-21 20:04:54 -04:00