feat(gateway): add sender presence tracking

This commit is contained in:
William Valentin
2026-02-15 19:28:16 -08:00
parent 421942f66d
commit c6e3d09ecc
11 changed files with 358 additions and 8 deletions
@@ -0,0 +1,27 @@
# Presence Tracking Checklist
Date: 2026-02-16
Status: completed
## Scope
- Add runtime presence tracking for observed senders.
- Expose presence via gateway API for dashboard/ops visibility.
## Completed
- Added presence tracking to `ChannelRegistry`:
- records inbound sender activity (`channel + senderId`)
- tracks `firstSeenAt`, `lastSeenAt`, `messageCount`
- infers `online|offline` from inactivity window
- supports filtering (`channel`, `status`, `limit`)
- Added `system.presence` gateway method via system handlers.
- Wired gateway server to source presence data from `ChannelRegistry`.
- Added tests for registry presence behavior and handler output.
- Updated docs for new API surface.
## Verification
- `pnpm test:run src/channels/registry.test.ts`
- `pnpm test:run src/gateway/handlers/handlers.test.ts`
- `pnpm typecheck`