Commit Graph

2 Commits

Author SHA1 Message Date
arsen e4204595b0 docs: actualization sweep — close items shipped this session
Cross-referenced every ADR Open Items section + both reference docs
against the actual implementation state on the branch. Closed items
the session shipped, kept stale "will be done in ADR-X" forward-refs
honest:

ADR-100    NBVI port (ADR-102), RSSI parse fix (3393c1e8), idle-
            channel keepalive (ADR-106).  Tailscale-target still open.
ADR-101    per-sub baseline-drop / off-axis sit (both via ADR-104).
             CV saturation above ~30 % still open.
ADR-102    Step 3 FP-rate validation (ADR-104 D4).
ADR-103    all three open items closed (REST endpoint via ADR-107,
            per-sub comparison via ADR-104, auto-recalibrate via ADR-107).
ADR-106    FW-side µs timestamp via OTA (b787f40a).

espectre-techniques.md:
- NBVI: now "DONE (all 4 NBVI steps)" instead of "missing Step 3".
- Persisted calibration: split into "server (ADR-103) + FW NVS (ADR-108)"
  with intentional design note for NBVI staying server-side.

espectre-gap-analysis.md:
- NBVI Step 3, gain-lock NVS, baseline persistence, threshold
  persistence all flipped to  in the per-section comparison tables.
- Priority list restructured into " Done in this session" (10 items)
  + " Still open by impact" (14 items) with reality-checked
  estimates. Top 3 open: HA via MQTT, 2 000-packet test suite,
  per-sub delta sparkline in raw.html.

Verbatim Pace Part-2 article still informs the gap structure; nothing
was removed from his pipeline, only RuView's column updated.
2026-05-17 13:52:50 +07:00
arsen c6208621b5 docs: ADR-106 — full complex CSI in WS + managed-ping keepalive
Records the two-part change that gets the maximum raw signal off the
sensors so the future model — and current fine-motion detection —
has everything the parent project describes:

  D1  NodeInfo exposes phases[56], n_antennas, noise_floor_dbm,
      timestamp_us in the WS payload (was amplitude-only).
  D2  NodeState stashes latest phases/noise/timestamp/antenna count
      so build_node_features can populate the new fields uniformly
      without a parallel phase_history buffer.
  D3  csi_keepalive_task spawns managed `ping` children per
      discovered sensor address; replaces the operator's hand-run
      `ping -i 0.05 …` workflow. CLI --csi-keepalive-pps controls
      rate (default 25), 0 disables.
  D4  Why ICMP not UDP: sensor rejects closed-port UDP before its
      CSI callback fires; ICMP is handled in WiFi RX path regardless.

Verified: 55.6 Hz raw CSI per node with no shell ping; both
amplitude[56] and phases[56] populated; noise_floor=-91 dBm.

Two impl commits already on the branch: 4daa2c9b, 8489efe9.
2026-05-17 12:00:43 +07:00