Skip to content

feat(fullstack): v1.2.1 geo-zoning, per-zone seismograph and GNSS readiness - #367

Merged
GiZano merged 7 commits into
mainfrom
feat/v1-2-1
Aug 14, 2026
Merged

feat(fullstack): v1.2.1 geo-zoning, per-zone seismograph and GNSS readiness#367
GiZano merged 7 commits into
mainfrom
feat/v1-2-1

Conversation

@GiZano

@GiZano GiZano commented Aug 14, 2026

Copy link
Copy Markdown
Owner

v1.2.1 — Geo-Zoning & Cooldown Fragmentation (GNSS-ready)

Backend

  • Geohash Redis zone index (geo.py) with PostGIS as source of truth; pure-Python geohash encoder matching ST_GeoHash
  • Redis Streams ingestion substrate (ingest.py) + idempotent TimescaleDB migration (timescale.py)
  • GNSS-ready data model: Sensor.last_fix_at, Reading.lat/lon
  • Per-area cooldown fragmentation (geohash region) instead of global/zone cooldown
  • New DELETE /zones/{zone_id}/readings and GET /zones/{zone_id}/alerts endpoints
  • Zone/geo/timescale unit + integration tests

Frontend

  • Per-zone live seismograph (horizontal zone strip) with sliding window anchored to wall clock + linear MAG scale
  • GPS zone detection (expo-location /zones/locate)
  • MIC/RESEARCH theme toggle + civil-defense siren on critical alerts
  • Settings Explore section + v1.2.1 footer

Firmware

  • Optional GNSS module (UART fix + NVS last-known location), GNSS_ENABLED compile flag

CI / Docs

  • Dedicated geo, timescale and per-zone integration jobs
  • Release notes, CITATION v1.2.1, README roadmap (v1.2.1 current)

Closes the v1.2.1 release.

GiZano added 2 commits August 14, 2026 22:28
- geohash Redis zone index (geo.py) with PostGIS source of truth
- Redis Streams ingestion substrate (ingest.py) + TimescaleDB migration (timescale.py)
- GNSS-ready data model: Sensor.last_fix_at, Reading.lat/lon
- per-area cooldown fragmentation in worker
- DELETE /zones/{id}/readings and GET /zones/{id}/alerts endpoints
- zone/geo/timescale integration and unit tests
- live per-zone seismograph feed (useZoneReadings) with horizontal zone strip
- sliding window chart anchored to wall clock + linear MAG scale
- GPS zone detection (expo-location -> /zones/locate)
- MIC/RESEARCH theme toggle + civil-defense siren on critical alerts
- Settings Explore section + v1.2.1 footer
@GiZano
GiZano requested a review from riccardo0731 as a code owner August 14, 2026 20:29
GiZano added 3 commits August 14, 2026 22:33
- optional GnssModule with UART fix + NVS last-known location (GNSS_ENABLED)
- provisioning sends real fix when available, else last-known / omits
- updated config example and platformio deps
- run test_geo_integration.py against real PostGIS + Redis
- run test_timescale_integration.py against real hypertable
- run test_zone_readings.py against fresh PostGIS (new per-zone job)
- CITATION.cff to v1.2.1, date 2026-08-14
- CHANGELOG v1.2.1 (geo-zoning, zone endpoints, live chart overhaul)
- README roadmap: v1.2.1 current
- backend README: locate + zone readings/alerts endpoints
- ROADMAP: v2.0.0 KiCad/PCB design done, fabrication pending
GiZano added 2 commits August 14, 2026 22:35
- use cryptographically strong SystemRandom in zone simulator (S2245)
- wrap JSX text separator in braces to avoid comment parsing (S6438)
- only swallow the expected BUSYGROUP redis error in ingest group creation
- declare explicit non-root USER in the timescale postgres image (S6471)
@sonarqubecloud

Copy link
Copy Markdown

@GiZano
GiZano merged commit 780135a into main Aug 14, 2026
10 checks passed
@GiZano
GiZano deleted the feat/v1-2-1 branch August 14, 2026 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant