diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a33951..d0ec631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,32 @@ on startup; the offset detector still needs the shape backfill on the prod store rebuild); exposed via `/db/events`. Terra-View surfaces it as a manual "Flag as offset" action + an `FT · offset` badge. +### Fixed +- **BlastMate serials — the family prefix is read from the file, not guessed.** + The Blastware filename encodes only the serial *number* (`L895…` → 10895); + the two-letter prefix is not in it. `waveform_store` synthesised `"BE"`, so + an imported **BlastMate** (serials `BA…`) was filed under a MiniMate Plus + serial that does not exist — silently, and Terra-View read it straight + through. `save_imported_bw` now resolves serial as hint → file body → + filename guess, via a new `_serial_from_bw_bytes` that accepts a candidate + only when its numeric part matches the filename. `client._decode_0a_partial_header` + likewise matched a literal `b"BE"` in monitor-log partial records; on a + BlastMate that returned −1 and skipped the whole block, losing the **geo + threshold** along with the serial. It now matches any two-letter prefix and + requires the NUL terminator — stricter than the search it replaces. + + BlastMate is the MiniMate Plus's larger Series III sibling and its files are + byte-compatible: all 1,493 in the DL2 archive decode through the existing + codec at 100%, same four channels. **The serial string was the only thing + blocking BlastMate support in SFM.** Four archive units were affected — + BA9229, BA10060, BA10895, BA15957. + + **No backfill and no `TOOL_VERSION` bump**: this changes which serial an + *import* is filed under, not any decoded value, so existing sidecars and + `.h5` files are untouched. **No migration either** — prod holds no BlastMate + events (the archive's BA units last recorded 2018-10 through 2023-11; the + prod backfill reaches back only to ~May 2025). + --- ## v0.28.0 — 2026-09-02