wifi-densepose/docs
ruv f6a85fe7db feat(adr-110): NodeSyncSnapshot.staleness_ms — sync age in milliseconds
Iter 34 — adds an optional `staleness_ms` field to the iter-23
NodeSyncSnapshot that exposes (Instant::now() - latest_sync_at).
Dashboards / Prometheus exporters / UI badges can now decay sync
freshness without re-deriving it from latest_sync_at on the host.

Wire compatibility: new field is `#[serde(skip_serializing_if =
"Option::is_none")]` so pre-iter-34 clients that strict-parse via
serde + deny_unknown_fields are unaffected (default serde_json
strategy is to ignore unknown fields anyway).

Sensing-server changes:
  + NodeSyncSnapshot.staleness_ms: Option<u64>
  + sync_snapshot() populates it via latest_sync_at.elapsed().as_millis()
  + iter-24 serialization tests now check 8 contract fields, not 7
  + new test `snapshot_staleness_ms_tracks_apply_time` pins
    latest_sync_at to a past Instant and asserts the snapshot reports
    ~750 ms staleness with ±500 ms tolerance for scheduler delay

User-guide updates:
  + REST/WebSocket field table grows a `staleness_ms` row with the
    UI-rendering thresholds (fade at 5 s, drop at 9 s to match the
    firmware's VALID_WINDOW_MS-derived gate).

Tests passing:
  sync_snapshot_helper_tests:           7/7
  node_sync_snapshot_serialization_tests: 3/3 (8-field assertion green)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-23 14:54:21 -04:00
..
adr docs(adr-index): surface ADR-110 review/witness/branch-state docs 2026-05-23 14:24:29 -04:00
archtocode-visual-overview docs: add visual architecture overview images (#208) 2026-05-17 18:18:07 -04:00
benchmarks docs(bench): append v0.0.2 section to person-count benchmark log 2026-05-21 19:47:55 -04:00
ddd docs: rvCSI edge RF sensing platform — PRD, ADR-095, DDD domain model 2026-05-12 23:15:10 +00:00
edge-modules chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
huggingface fix(train): wire wifi-densepose-signal into the pipeline; correct MODEL_CARD env-sensor claim (#536) 2026-05-11 23:40:55 -04:00
prd docs: rvCSI edge RF sensing platform — PRD, ADR-095, DDD domain model 2026-05-12 23:15:10 +00:00
qe-reports chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
research research(sota-loop): final 00-summary.md — loop closes at 12:00 UTC stop (#747) 2026-05-22 08:07:08 -04:00
tutorials docs(tutorials): Pi 5 + Hailo cluster rvcsi tutorial (#546) 2026-05-17 17:41:39 -04:00
ADR-110-BRANCH-STATE.md docs(adr-110): branch-state map for ADR-110 ↔ ADR-115 coordination 2026-05-23 13:58:08 -04:00
ADR-110-REVIEW-GUIDE.md docs(adr-110): add reviewer one-page guide 2026-05-22 23:53:22 -04:00
TROUBLESHOOTING.md fix(docker): UDP relay for multi-source ESP32 on Docker Desktop Windows (#502) 2026-05-17 18:01:44 -04:00
WITNESS-LOG-028.md chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
WITNESS-LOG-110.md release(firmware): v0.7.0-esp32 major — ADR-110 firmware-side substrate closed 2026-05-23 12:56:58 -04:00
build-guide.md chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
readme-details.md docs(readme): split details to docs/readme-details.md and reorganize 2026-04-29 19:34:24 -04:00
security-audit-wasm-edge-vendor.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
user-guide.md feat(adr-110): NodeSyncSnapshot.staleness_ms — sync age in milliseconds 2026-05-23 14:54:21 -04:00
wifi-mat-user-guide.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00