docs: rename our ADR-099 (tplink-wisp) → ADR-110 to free ADR-099 for upstream

Upstream merged ADR-099-midstream-introspection-tap during this
session (PR #554, commits 900b877c..ce330422 on origin/main). Our
existing ADR-099-tplink-wisp-deployment-and-rssi-presence has a
different topic but the same number. Rather than fight the
numbering, slot ours up to ADR-110 (next free) and let upstream
own ADR-099.

  git mv ADR-099-tplink-wisp-...md → ADR-110-tplink-wisp-...md
  bulk sed `ADR-099` → `ADR-110` across all our docs from this
                                   session (ADR-100..108, refs/,
                                   CHECKLIST.md, self-reference)

No code changes; no semantic change beyond the number. Resolves the
collision before rebase against origin/main.
This commit is contained in:
arsen 2026-05-17 15:27:47 +07:00
parent 197457a78d
commit f0a5f80143
3 changed files with 13 additions and 13 deletions

View File

@ -7,7 +7,7 @@
## Context
After ADR-099 deployed the TP-Link WISP AP and the operator captured three
After ADR-110 deployed the TP-Link WISP AP and the operator captured three
controlled one-minute windows (empty / sit / walk), the RSSI MAD-Δ
classifier failed to separate the three states — measured `d` values
overlapped within ±0.03 of 0.49 while in-state spread was ±0.10. We
@ -59,9 +59,9 @@ that it short-circuits.
Tagged as ADR-100 in the source comment for traceability.
### D2 — Use the existing `raw.html` console (ADR-099, D2 reuse) as the verification UI
### D2 — Use the existing `raw.html` console (ADR-110, D2 reuse) as the verification UI
The console added in ADR-099 already streams `nodes[].amplitude` from
The console added in ADR-110 already streams `nodes[].amplitude` from
the existing WebSocket. No server-side change was needed. The HTML
displays a per-node bar histogram of all 56 active subcarriers plus
broadband mean amplitude and RSSI traces over the last 30 s. This is
@ -75,7 +75,7 @@ A controlled three-state capture made on 2026-05-17 with both sensors
positioned so that the line `TP-Link AP → sensor` passes through the
operator (lying on the bed) confirmed both decisions. The summary
table appears under *Verified Acceptance* below. Earlier captures
(ADR-099) failed to separate states partly because the sensors were
(ADR-110) failed to separate states partly because the sensors were
placed off-axis from the AP-to-body line; with that geometry the body
never physically obstructs the CSI channel.
@ -114,7 +114,7 @@ Observations:
ladder 2.71 → 3.70 → 12.50 % is a second independent feature.
* **Node 2 separates STILL+EMPTY from WALK** by CV (5 → 30 %). Its
geometry doesn't pick up a still body, only motion.
* **Compare to ADR-099** where empty/sit/walk differed by ±0.02 inside
* **Compare to ADR-110** where empty/sit/walk differed by ±0.02 inside
±0.10 noise — we now have inter-state separation ratios of **×3.4 on
node 1 and ×5.9 on node 2**. The signal is no longer dominated by
baseline drift.
@ -123,7 +123,7 @@ Observations:
```
firmware/esp32-csi-node/main/csi_collector.c # gain-lock module + hook
v2/crates/wifi-densepose-sensing-server/static/raw.html # already from ADR-099
v2/crates/wifi-densepose-sensing-server/static/raw.html # already from ADR-110
docs/adr/ADR-100-gain-lock-baseline-stabilization.md # this ADR
```
@ -145,8 +145,8 @@ docs/adr/ADR-100-gain-lock-baseline-stabilization.md # this ADR
* ADR-039 — Edge intelligence pipeline (host DSP path).
* ADR-098 — Earlier ESP32-S3 deployment fixes.
* ADR-099 — TP-Link WISP deployment + first RSSI-Δ attempt (this ADR
supersedes the threshold table in ADR-099, D3 — the RSSI MAD-Δ
* ADR-110 — TP-Link WISP deployment + first RSSI-Δ attempt (this ADR
supersedes the threshold table in ADR-110, D3 — the RSSI MAD-Δ
detector is left in place but no longer the primary signal).
* Francesco Pace, *How I Turned My Wi-Fi Into a Motion Sensor — Part 2*,
Dec 2025 — source of the gain-lock recipe.

View File

@ -11,7 +11,7 @@
After ADR-100 the AGC drift is gone and the broadband baseline is clean.
Before this ADR the live `classification.motion_level` was being driven
by the legacy DSP (variance + motion_band_power thresholds) plus an
RSSI MAD-Δ override from ADR-099. Both failed on the operator's
RSSI MAD-Δ override from ADR-110. Both failed on the operator's
deployment: variance overlaps empty/sit/walk within noise, and RSSI
MAD-Δ overlaps within ±0.03 of 0.49 across all three states. The
operator could lie still in the path between AP and sensor and the
@ -123,7 +123,7 @@ v2/crates/wifi-densepose-sensing-server/static/raw.html # per-node badges
Cross-state separation ratio = 3.4× on node 1 broadband mean, 5.9×
on node 2 CV, compared to ±0.02 inside ±0.10 noise with the old
RSSI MAD-Δ classifier from ADR-099.
RSSI MAD-Δ classifier from ADR-110.
## Open Items
@ -138,7 +138,7 @@ RSSI MAD-Δ classifier from ADR-099.
## References
* ADR-099 — first RSSI MAD-Δ attempt (superseded for `motion_level` /
* ADR-110 — first RSSI MAD-Δ attempt (superseded for `motion_level` /
`presence` / `confidence`; helper kept as `#[allow(dead_code)]`).
* ADR-100 — gain lock that makes this classifier possible.
* ADR-102 — NBVI subcarrier selection that drives the CV computation.

View File

@ -1,4 +1,4 @@
# ADR-099 — TP-Link WISP Deployment + RSSI-Δ Presence Detector
# ADR-110 — TP-Link WISP Deployment + RSSI-Δ Presence Detector
**Status**: Accepted
**Date**: 2026-05-15
@ -123,7 +123,7 @@ operator capture those next two states.
v2/crates/wifi-densepose-sensing-server/src/main.rs # RSSI MAD-Δ + override
v2/crates/wifi-densepose-sensing-server/static/spectrum.html # live console
v2/crates/wifi-densepose-sensing-server/static/calibrate.html # peak-tracker view
docs/adr/ADR-099-tplink-wisp-deployment-and-rssi-presence.md # this ADR
docs/adr/ADR-110-tplink-wisp-deployment-and-rssi-presence.md # this ADR
```
## Verified Acceptance