fix(map): geofence delete, vessel snapshots, sentinel cache, news briefs #32

Merged
sirius merged 1 commit from fix/dashboard-geofence-vessels-sentinel-news into master 2026-08-29 20:39:12 -04:00
Owner

Summary

  • Geofence delete in the layer panel list and polygon popup (DELETE /api/geofences/{id})
  • Persist VesselAPI Hormuz polls to a vessels table (today only, UTC-day purge). DVR ?timestamp= uses latest poll_at ≤ t so the 5 daily calls are visible when scrubbing. Hydrate last-known on boot.
  • Sentinel-1: cache STAC/COG by 2° cell (6h), pick the scene covering the cell center, clip Leaflet tiles with bounds, skip refetch while the center is inside the scene.
  • News LLM: system prompt + 8192 tokens + retry on finish_reason=length. Briefs lead with critical/high then fill with incidents/crime. Ticker falls back to medium/low; HUD polls every 3 min.

Alembic 009_vessels creates the snapshot table (lazy CREATE TABLE IF NOT EXISTS also runs in-app).

Test plan

  • pytest tests --ignore=tests/test_gpsjam.py (173 passed, 17 skipped DB)
  • PYTHONPATH=news/summerizer pytest news/summerizer/tests (29 passed)
  • Draw a geofence, confirm Delete in the list and popup removes it
  • Hormuz chokepoint: vessels survive an app restart; DVR slider shows the day's polls
  • Toggle Sentinel-1, pan/zoom in one region — no wrong-swath jump, no STAC storm
  • Quiet news window: ticker shows medium/low instead of going blank
## Summary - Geofence delete in the layer panel list and polygon popup (`DELETE /api/geofences/{id}`) - Persist VesselAPI Hormuz polls to a `vessels` table (today only, UTC-day purge). DVR `?timestamp=` uses latest poll_at ≤ t so the 5 daily calls are visible when scrubbing. Hydrate last-known on boot. - Sentinel-1: cache STAC/COG by 2° cell (6h), pick the scene covering the cell center, clip Leaflet tiles with `bounds`, skip refetch while the center is inside the scene. - News LLM: system prompt + 8192 tokens + retry on `finish_reason=length`. Briefs lead with critical/high then fill with incidents/crime. Ticker falls back to medium/low; HUD polls every 3 min. Alembic `009_vessels` creates the snapshot table (lazy `CREATE TABLE IF NOT EXISTS` also runs in-app). ## Test plan - [x] `pytest tests --ignore=tests/test_gpsjam.py` (173 passed, 17 skipped DB) - [x] `PYTHONPATH=news/summerizer pytest news/summerizer/tests` (29 passed) - [ ] Draw a geofence, confirm Delete in the list and popup removes it - [ ] Hormuz chokepoint: vessels survive an app restart; DVR slider shows the day's polls - [ ] Toggle Sentinel-1, pan/zoom in one region — no wrong-swath jump, no STAC storm - [ ] Quiet news window: ticker shows medium/low instead of going blank
sirius added 1 commit 2026-08-29 20:38:49 -04:00
Geofences could be drawn but not removed. VesselAPI Hormuz dots vanished
on restart and DVR skipped between the 5 daily polls. Sentinel-1 re-hit
STAC on every pan and often painted a neighbouring swath. Executive
briefs truncated; ticker stayed empty unless something was critical.

- Layer-panel list + polygon popup DELETE /api/geofences/{id}
- Persist VesselAPI polls to vessels (UTC-day purge, DVR as-of, boot hydrate)
- Cache Sentinel-1 by 2° cell; pick covering scene; clip Leaflet tiles
- Retry truncated LLM JSON; ticker falls back to medium/low; 3-min HUD poll
sirius merged commit 47c726d68d into master 2026-08-29 20:39:12 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sirius/osint-dashboard#32
No description provided.