diff --git a/CHANGELOG.md b/CHANGELOG.md index defc04f..5076959 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,32 @@ All notable changes to seismo-relay are documented here. --- +## v0.12.1 — 2026-04-16 + +### Added + +- **`sfm/server.py` — `_LiveCache`** — in-memory live device cache that eliminates + redundant TCP round-trips between web requests. Plain Python dict + + `threading.Lock`, no extra dependencies. + + Cache strategy per endpoint: + + | Endpoint | Strategy | + |---|---| + | `GET /device/info` | Indefinite; invalidated by `POST /device/config` | + | `GET /device/events` | Count-probe fast path — `poll()+count_events()` (~2 s); returns cached data if event count is unchanged; full download only when new events are detected | + | `GET /device/monitor/status` | 30-second TTL; invalidated immediately on monitor start/stop | + | `GET /device/event/{idx}/waveform` | Permanent per-index (waveforms are immutable once recorded) | + +- **`?force=true`** query param on all cached endpoints — bypasses cache and forces + a fresh read from the device. + +- **Cache invalidation hooks** — `POST /device/config` marks device info and events + stale; `POST /device/monitor/start` and `/stop` evict the monitor status entry + immediately so the next status poll reflects the actual device state. + +--- + ## v0.12.0 — 2026-04-13 ### Added diff --git a/CLAUDE.md b/CLAUDE.md index c642602..d98ea38 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,7 +2,7 @@ Ground-up Python replacement for **Blastware**, Instantel's Windows-only software for managing MiniMate Plus seismographs. Connects over direct RS-232 or cellular modem -(Sierra Wireless RV50 / RV55). Current version: **v0.12.0**. +(Sierra Wireless RV50 / RV55). Current version: **v0.12.1**. ---