v0.11.24 β π Deterministic Pulse Engine, Admin Dashboard & Feuerwehr Alerts
π City Pulse β deterministic status engine
- π― Deterministic status + self-improving calibration loop
- π Three-signal status judgment with statistical baseline
- π p25 baseline stat as symmetric improving-trend signal
- π Redefined horizon score as forward projection over the full lookahead window
- β±οΈ Hour-slot comparison for adaptive pulse skip; narrow 1h override to transport/weather
- π Rewrote
pulse.md/analysis.mdβ consistent with deterministic status + LLM trend-only architecture - π New City Pulse methodology page with live data
- βοΈ Refined severity weights β tram/bus/strike/police, RMV lines scaling (capped at 4)
- π¨ Unified City Pulse status visuals across main page, admin, and methodology page
π οΈ Admin dashboard
- π Category score drill-down, translate log filter
- π Dark mode, themed scrollbars, transparent dark scrollbar track
- π Frankfurt date picker default, chronological category grid, flipped grid (rows=time, cols=category)
- π vs-last-month KPI, relative delta labels on mini charts, 6-column KPI row on desktop
- π Detail panel β narrative at top, trend + status pills, score content
- π Fixed crashes (missing
let body,bMean/bP75used before declaration), variant-hit % denominator
π New alert source
- π Feuerwehr Frankfurt (fire alerts) via Bluesky AT Protocol
- π Keyword subscriptions β receive any alert matching a location keyword
π° Cost & translation
- βοΈ Cap translation length, dedup cross-alert-id duplicate translations
- π Correct
cost_debughourly snapshot timing; hourly deterministic pulse status - π« Skip retranslation when only the RMV "Stand:" timestamp changed in the title
- π§Ή Removed midnight daily admin report (visits + costs)
π¦οΈ Weather overlay
- π Compact vertical spacing across the card
- π§οΈ Rainfall (mm) replaces cloud cover %; β/β high/low replaces dew point line
- π¬ Hover tooltips β humidity (RH + dew point), wind/rain 10-min values, hourly rain chance + mm, high/low
- π± Mobile: pushed below reset/close buttons
π Other fixes
- π Persist lat/lon/location_label on alert cache updates
- πΊοΈ Correct Feuerwehr UI theming and map pin location
- π Add Feuerwehr and Messe Frankfurt to info/disclaimer modals
- π± Mobile: always-visible sub-type pickers, emoji labels, overlay/button stacking, pulse-overlay height cap
- π Pulse methodology page shows last skipped pulse instead of last real pulse
- π Debounce City Pulse overlay show on reset view transition
Full Changelog: v0.11.0...v0.11.24