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=Trueconstraint from the name column on both theRouteandPointmodels. - Added a composite
UniqueConstraintfor("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.
Navigation Engine & Backend Geometry Optimisation¶
-
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.jsmodule to import theshowErrorutility. 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
Nonestate 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.jsnetwork validations; addedshowErroralerts. - Backend: Adjusted
buffervariable initialisation to5000 - Core Logic: Modified distance-unit conditional expressions to intercept and normalise
Noneinputs.