v0.9.25 β π City Pulse Status Engine & Overlay Redesign
π City Pulse status & trend engine
- π Replaced EWMA with a per-category time-series model judged by the LLM for status/trend
- π― Replaced "upcoming score" with a projected score (net direction signal)
- π Split trend into next-interval projection vs. horizon momentum, with horizon samples folded into history
- π§ Sigma-band thresholds decouple status from trend detection
- β±οΈ Ongoing-only temporal filtering + severity weighting for trend analysis
- π§© Status-level guidance added to the LLM prompt, with color-coded status in the overlay
- ποΈ Score breakdown added to the pulse debug log
- π·οΈ Pulse title field added; disclaimer toggle cleaned up
π¨ Overlay & UI redesign
- π ECG heartbeat animation in the City Pulse overlay header
- π Swipe gestures, table layout, and legend spacing overhaul for the pulse overlay
- π Dark mode UX pass β unified navy theme, relative timestamps throughout
- π§± Pulse overlay redesigned as a centered single-column table with inline trend words
- π Smart ending labels for status pills ("in 1 day", "starting soon", "X hrs")
- π¨ Source-colored blink + ticker surfaces events starting/ending within 2 days
- π De-pinned weather cards; added "Starts in" pills; grouped incidents filter
πͺ Content & filters
- ποΈ Added Messe Frankfurt trade fairs, restructured events filter
- π Pin support extended to Messe as a source
π Fixes
- π« Ticker excludes ONGOING pills β caps active alerts at 1hr before ending
- ποΈ DB migration for
projected_count/scorecolumns oncategory_snapshots - π Renamed
pulse-summarypill class topill-pulseto avoid a CSS collision - π΅ Hide City Pulse card during search
- π± Unified mobile map close behavior; removed "Posted at" from the pulse card
- π "Posted" prefix on relative timestamps used consistently in the pulse overlay
Full Changelog: v0.9.5...v0.9.25