diff --git a/CHANGELOG.md b/CHANGELOG.md index 167bdf7..3a742b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,38 @@ All notable changes to seismo-relay are documented here. --- -## Unreleased +## v0.30.0 — 2026-09-12 + +**The series-4 correctness release** — the Thor / Micromate counterpart to +v0.26.0's series-3 work. The decoder is now verified per-sample against +Thor's own CSV exports: **459 waveform files, 3,807,158 / 3,807,165 samples +exact** across three independent ground-truth corpora, and production IDFW is +**575/575** with zero truncations and zero decode failures. Series-3 +re-verified **unchanged at 14,338/14,338** after every shared-codec change. + +⚠ **This release owes the prod store a Thor backfill.** Every stored +series-4 geophone value is **3.3% low**, and histogram peaks from monitoring +runs longer than ~4 hours can be far worse (the interval cap discarded the +tail, frequently the part holding the peak). Run +`scripts/backfill_thor_events.py` — `TOOL_VERSION` is bumped to `0.30.0`, so +regeneration is gated correctly and **no `--force` is needed**. DB backup +first. Series-3 events are untouched by this release and do not need +re-running. + +⚠ **Terra-View displays these values.** Series-4 geophone readings will rise +~3.3% after the backfill, and some histogram PPVs will rise a great deal more. +That is a correction, not a regression. + + +### Fixed — event-report PDF used a per-trace geo Y scale + +The waveform plot scaled each geo lane to its own peak, so a small channel +filled its lane and looked as large as a big one, and the `Geo: X in/s/div` +footer reflected only whichever channel was measured first — wrong for the +other two. All three geo lanes now share one symmetric scale (max |sample| +across them, padded, 0.05 in/s floor), matching the event modal and BW's +single amp/div; the footer reflects that shared scale. Mic keeps its own psi +scale. Large events are unchanged. ### Fixed — series-4 (Thor / Micromate) decoder is now per-sample exact diff --git a/CLAUDE.md b/CLAUDE.md index b3459e6..05ec9ea 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.29.0**. +(Sierra Wireless RV50 / RV55). Current version: **v0.30.0**. Stack-level context — which repo owns what, and how the three project versions pair — lives in `../terra-view/docs/tmi-stack.md`, which is also loaded as diff --git a/README.md b/README.md index dfe95e0..a11473c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# seismo-relay `v0.29.0` +# seismo-relay `v0.30.0` A ground-up replacement for **Blastware** — Instantel's aging Windows-only software for managing seismographs. Supports both the **MiniMate Plus diff --git a/minimateplus/event_file_io.py b/minimateplus/event_file_io.py index d23fc6d..519cf4b 100644 --- a/minimateplus/event_file_io.py +++ b/minimateplus/event_file_io.py @@ -50,7 +50,7 @@ SIDECAR_KIND = "sfm.event" # bumped without a `pip install` re-run — leading to confusing stale # version stamps in sidecars. Bump this constant and CHANGELOG.md # together at release time. -TOOL_VERSION = "0.29.0" +TOOL_VERSION = "0.30.0" try: # Best-effort: prefer the installed metadata when it's NEWER than the diff --git a/pyproject.toml b/pyproject.toml index cd9281b..4b9e639 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "seismo-relay" -version = "0.29.0" +version = "0.30.0" description = "Python client and REST server for MiniMate Plus seismographs" requires-python = ">=3.10" dependencies = [