Skip to content

RouteReality v2.0.0

Latest

Choose a tag to compare

@dillonhuston dillonhuston released this 08 Apr 09:36
· 14 commits to main since this release

RouteReality v2.0 Release Notes

Release Date: April 2026
Status: Major update – Community & Real-Time Features

This release marks the transition to Version 2.0, introducing authentication, user engagement mechanics, real-time capabilities, and a significantly improved prediction engine.

All changes since V1.3.0 (February 21, 2026) have been consolidated here.

Added (New V2 Features)

  • JWT Authentication
    Protected routes for journey creation, event submission, and user-specific data. Public read-only endpoints remain open.

  • User Stats & Leaderboard

    • Personal contribution tracking (points, journeys, events submitted, rank)
    • Community leaderboard (all-time and weekly) with badges (Hot Streak, Early Reporter, Reliable Source)
    • Points system: ARRIVED (10 pts), DELAYED (15 pts), STOP_REACHED (20 pts) + daily bonuses
  • Stop-Based Arrivals
    New endpoint: GET /arrivals/stop/{stop_id} — view all upcoming buses/trams at any stop.

  • Web Push Notifications
    Full server-side support using VAPID keys.
    Added gen_vapid.py script for easy key generation and expiration handling.

  • WebSocket Broadcasting
    Live real-time updates when journey status changes (with sync context fixes).

  • Improved Prediction Engine (Prediction V2)

    • Time-sensitive weighted average with better handling of recency, traffic patterns, and time-of-day effects.
    • Enhanced arrival reporting loop.
    • Richer prediction payload including source, recent_event_count, and historical_count.
  • Three UI screenshots added to README (Home / start journey map, route view with event reporting, active journey screen).

  • JourneyEventType.PENDING for clearer initial journey states.

  • Structured logging throughout prediction and event handling.

  • recent_trips limit and counts in status endpoints.

  • Server-side push support and VAPID key generation.

Changed

  • Prediction interface: renamed static_dt → reference_time, improved fallback safety.
  • Centralized prediction refresh with new update_prediction helper.
  • Tightened event state transitions and validation.
  • Adjusted predicted_arrival handling on DELAYED events.
  • Removed unnecessary .isoformat() conversions in API responses.
  • CIF timetable path now loaded from environment variable.
  • Consistent 3-tuple return from get_closest_scheduled_time_to_now.
  • Updated timetable data for March 2026 service changes.
  • Improved internal service boundaries for easier maintenance.
  • Updated requirements and dependencies (including psycopg3-binary).

Fixed

  • Safe unpacking of timetable results with proper type hints.
  • Edge cases causing negative ETAs after live overrides.
  • Prediction failures now logged gracefully instead of crashing.
  • Resource validation (route/stops) with explicit 404/400 status codes.
  • Various minor bugs across services and API routes.
  • Type annotations and schema consistency.
  • WebSocket broadcast issues from sync context.

Improved

  • Confidence scoring accuracy under low-data conditions.
  • Debuggability with better logging at key decision points.
  • Overall system stability and predictability.
  • User schema types and requirements handling.