Skip to content

Unified server-derived participant presence — client surface (query + events) #13

Description

@styk-tv

Client-side surface for participant presence. Multi-party sessions need "who is here right now" — including quiet participants. agent.presence is agent-plane liveness, not participant presence; and an events-only feed can't show a late joiner the participants who are already connected but silent. Presence needs query + events.

Proposal (client half)

  • k.presence(filter?) → current roster snapshot (thin wrapper over a governed .presence read; filter.type = user/bot/agent/…).
  • A reactive presence binding for join/leave/drop deltas, reconciled by Ck-Seq against the snapshot cursor — reusing the existing snapshot + bind pattern.
  • No client-side roster synthesis; agent.presence stays distinct.

Depends on

pgCK exposing a server-derived, type-filterable .presence read + join/leave/drop events (a new substrate capability — presence is live-connection truth, not a sealed instance). Gated on the styk-tv/pgCK presence issue.

Done-when

  • A joining client gets the full roster incl. quiet users from one .presence call.
  • Live via events with no gaps (Ck-Seq reconciliation); type filter works from the single affordance.

Relates

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1 — this releaseidentityIdentity, admission, attribution

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions