feat(collab): presence P1 — awareness transport + who's-here roster (collab-presence 0001)
- provider.ts: expose awareness on YjsProvider (partykit/hocuspocus surface their own; BroadcastChannel gets a sibling-channel relay via awareness-bc.ts) - presence.ts: createPresence — publish local PresenceState, subscribable deduped peers() roster, setCursor/setSelection for P2, pagehide fast removal - PresenceRoster.tsx + WasmTool wiring: facepile chip next to SourceChip; eeschema rebinds per active sheet (sheet-manager ActiveSheet now carries the room's provider); config presenceUser() = slug + colorForUser - new dep y-protocols; unit tests (presence.test.ts) + e2e tests/web/presence-roster.spec.ts (two tabs, verified vs real partykit) - bump pcbjam-shared: presence-wire schema (MIT) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CvqUd4QsJSGHN28aunJRTq
This commit is contained in:
parent
6fc6a64cd0
commit
22528f450b
12 changed files with 538 additions and 15 deletions
3
web/pnpm-lock.yaml
generated
3
web/pnpm-lock.yaml
generated
|
|
@ -125,6 +125,9 @@ importers:
|
|||
y-partyserver:
|
||||
specifier: ^2.2.0
|
||||
version: 2.2.0(@cloudflare/workers-types@4.20260610.1)(partyserver@0.5.6(@cloudflare/workers-types@4.20260610.1))(yjs@13.6.31)
|
||||
y-protocols:
|
||||
specifier: ^1.0.6
|
||||
version: 1.0.7(yjs@13.6.31)
|
||||
yjs:
|
||||
specifier: ^13.6.18
|
||||
version: 13.6.31
|
||||
|
|
|
|||
Loading…
Reference in a new issue