Commit Graph
23 Commits
Author SHA1 Message Date
Raven ScottandCursor dcdf4b0044 Build global presence mesh on contacts plane with blocked-user privacy.
Join globalPresenceTopic for self and friends, merge presence gossip,
and expose getGlobalPresenceSnapshot for home/DM views.

Co-authored-by: Cursor <[email protected]>
2026-06-02 00:49:53 -04:00
Raven ScottandCursor d1944a556c fix(contacts): time-box mesh join and friend topic link at boot
Cap contacts hyperswarm join and _syncFriendTopicLinks so session startup cannot block forever.

Co-authored-by: Cursor <[email protected]>
2026-06-01 22:33:48 -04:00
Raven ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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 ScottandCursor 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