@byscott-io/where-is-waldo 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +12 -1
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  Real-time presence tracking for Rails + React using ActionCable.
4
4
 
5
+ [![CI](https://github.com/byscott-io/where_is_waldo/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/byscott-io/where_is_waldo/actions/workflows/ci.yml)
6
+ [![Gem Version](https://img.shields.io/gem/v/where_is_waldo)](https://rubygems.org/gems/where_is_waldo)
7
+ [![npm version](https://img.shields.io/npm/v/@byscott-io/where-is-waldo)](https://www.npmjs.com/package/@byscott-io/where-is-waldo)
8
+ [![License](https://img.shields.io/github/license/byscott-io/where_is_waldo)](LICENSE)
9
+
5
10
  ## Features
6
11
 
7
12
  - **Presence tracking** - know who's online
@@ -233,7 +238,8 @@ See `docs/PRESENCE_ROSTER_PLAN.md` for the full mode matrix and tradeoffs.
233
238
  their live sessions (multiple browser tabs, mobile, etc.):
234
239
 
235
240
  ```
236
- { id: 7, status: "active", devices: { web: "idle", mobile: "active" } }
241
+ { id: 7, status: "active", devices: { web: "idle", mobile: "active" },
242
+ last_activity: "2026-07-27T15:23:04Z" }
237
243
  ```
238
244
 
239
245
  - `status` — highest activity across devices (the "active anywhere?" answer):
@@ -243,6 +249,11 @@ their live sessions (multiple browser tabs, mobile, etc.):
243
249
  - `offline` — no live sessions
244
250
  - `devices[platform]` — that platform's own status (answers "active on
245
251
  **mobile**?" vs. "active at all?").
252
+ - `last_activity` — ISO8601 timestamp of the most recent input across **all**
253
+ the subject's live sessions (`null` when offline). The roster only
254
+ broadcasts on `status` transitions, so subtract against your own clock to
255
+ derive seconds-idle and apply client-side thresholds without a server
256
+ `timeout` change: `(Date.now() - new Date(m.last_activity)) / 1000`.
246
257
 
247
258
  #### Configure
248
259
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byscott-io/where-is-waldo",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Real-time presence tracking for ActionCable with React hooks",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",