# 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`
