Skip to content

Release Notes: v0.2.2

Date: 18th July 2026

Overview

Version 0.2.2 introduces critical reliability updates to our navigation engine and user feedback systems. This release focuses heavily on stability, ensuring that edge-case routing coordinates resolve successfully and that users are properly communicated with when network discrepancies occur.

What Changed

Saving Routes and Points

  • Removed the global unique=True constraint from the name column on both the Route and Point models.
  • Added a composite UniqueConstraint for ("user_id", "name") across the route and point tables to ensure user-specific name uniqueness.
  • Created and applied an Alembic migration script to safely alter the local and remote PostgreSQL database schemas.
  • Expanded Search Buffer (5000m): We discovered that a 2000m boundary buffer occasionally clipped valid pathways in sparse, open, or complex networks, most notably during long ridge walks where nodes are spread thin. By increasing this boundary buffer to 5000 meters, the routing algorithm can now successfully evaluate wider alternatives and resolve paths without failing.

  • Geometrical Calculation Enhancements: Added documentation detailing the bounding box logic. The engine calculates a bounding rectangle around the start and end coordinates including the buffer, establishes a strict center coordinate, and derives a half-diagonal radius. This ensures the circular KD-Tree boundary query entirely encapsulates the square bounding box area, guaranteeing zero node omission at the borders.

Frontend Error Tracking & UI Feedback

  • Explicit User Notifications: Updated the routing.js module to import the showError utility. Previously, application failures inside the path calculation sequence would fail silently or only log to the developer console. The UI now gracefully catches failed HTTP statuses (e.g., 500 or 404 errors) as well as internal application failure flags (data.success === false) and serves an explicit user-facing prompt: "Sorry, there was an unexpected error when calculating your route, please try again later."

Robustness & Settings Edge-Cases

  • Uninitialised Unit Fallbacks: Fixed a vulnerability where users who had never interacted with or modified their settings profiles would possess an empty or None state for their default distance unit. The system now safely evaluates an empty configuration state as the default "km" setting, ensuring predictable system behavior across all calculation pipelines.

Technical Changelog

  • Frontend: Refactored routing.js network validations; added showError alerts.
  • Backend: Adjusted buffer variable initialisation to 5000
  • Core Logic: Modified distance-unit conditional expressions to intercept and normalise None inputs.