5.1.4
This release keeps Vacay's public holidays working past January 2027, when the old holiday API ends, and fixes AirTrail sending its stored API key to a newly entered address. Update before February; the apps for iPhone, iPad, Apple Watch and Android are still in a closed test, and you can join: 👉 Sign up at liketrek.com/app-test.
Added
- Bakeries and groceries on the map and along a hike (#3026). The map's place search and a tour's stops along the route also find bakeries and supermarkets, for restocking on a multi-day hike.
- Settings say what they reach. On a phone and in the app the sections stand under "Your account", which follows you to every device, and "This device".
- An install guide for TrueNAS SCALE in the wiki (#3060), from the TrueNAS Community catalog, including updates.
Fixed
Security
- AirTrail kept its API key for a new address. Saving the settings with another host and the key field left as it was kept the stored key, and the next sync sent it to that host. A new host now needs its own key; a path change on the same host keeps it. Thanks to Jacob-Lasky for the report (GHSA-mwf5-5px8-c9h5).
Vacay and Atlas
- Public holidays in Vacay would have stopped working in February (#3057). The holiday provider ends its v3 API on 31 January 2027; Vacay now uses Nager.Holidays v4. Holiday names now show in English, because v4 no longer returns local names.
- Ireland showed four provinces in the Atlas (#2922). It now shows Ireland's 26 counties, from Tailte Éireann's statutory boundaries; places marked before keep their marks.
- The Atlas put Nice and Menton in Italy (#3048, #3049). A coastal point that no country polygon contains went to the country with the smallest bounding box; it now goes to the nearest border.
Planner and bookings
- A transport or booking form lost what was typed (#3069). Every re-read of the trip, which a WebSocket reconnect behind a proxy brings every few seconds, filled the open form in again; it now resets only when another entry is opened.
- A flight without airports lost its day and times on saving (#3070). Like a train without stations, it now takes them from the form's rows.
- Places could not be reordered by drag and drop in Firefox (#3041). Firefox took the first mouse move of a drag as its end; the day list also no longer replays its fade-in after a drop.
- Blank days while swiping quickly through a trip on iOS (#3067). The pager now also draws the days around the one a swipe is heading for.
- A recorded Dawarich route was barely visible on past trips. It is now drawn in full colour, wider and with longer dashes, on both map engines.
Sign-in
- An SSO account was locked out after the provider changed its subject (#3065). The admin user dialog now has "Remove SSO link", and the next SSO sign-in links the account again.
Assistant
- The assistant failed on Azure AI Foundry reasoning models (#3043). These deployments refuse tools at their default reasoning effort; the assistant now asks once more without reasoning.
- The assistant on Claude Sonnet 5.5 said it came back without an answer. Once it has asked for the answer, it now asks for it as plain text.
Plugins
- Plugins could not reach the network on Node 25 and newer (#3045, #3046). Plugin processes now get network access on the Node versions that know the flag.
- A plugin's page on a phone ran under the status bar and past the screen. It now fills exactly the visible area and scrolls on its own.
Phone layout
- A sheet let the page behind show through while it opened. The dim now fades in beside the sheet instead of around it.
Privacy
- A deleted chat message kept its text in the database and in every backup. The delete now clears the text, and the update clears what earlier deletes left behind.
Speed
- The first load fetched 187 icon files (#3055). The icons the first screen needs now ship as one file.
- Static files were compressed again on every request (#3053). The hashed assets are now written as Brotli copies at build time and served from those.
- Looking up the country of a place did needless work (#3054). Lists of many places, the Atlas and journeys load faster.
Internal
Work on the native iOS and Android apps, which are in a closed test and do not ship with this release.
- Native app: a way back from an error page in place of the server's. A proxy's block page or a refused client certificate left the app on a page without TREK and no way to change the server; any such page now shows the bar with a hint and "Change server", on iOS and Android.
- Native app: a black strip under the notch on iOS 27.0. That release lays the web view out below the status bar, and the strip above showed black; it now carries the page colour.
- Native app: the sign-in prompt on iOS said "App". The system prompt before SSO and passkey sign-in named the app by its bundle name, the Xcode target; it now says TREK.
- Native app: the done key closed nothing. The checkmark on the keyboard of a field outside a form did nothing; it now closes the keyboard unless the field acted on it, as a list that adds the next item does.
- Native app: no bounce on the dashboard, journeys and notifications. Screens with pull-to-refresh switched the iOS bounce off entirely; the pull now holds only the move down from the very top, and the page bounces everywhere else.
- Native app: the TREK Cloud deviations agreement before an in-app purchase. The claim screen shows the agreement the server holds with its own checkbox and buys nothing until it is ticked; the redeem carries the version that was shown.
- Native app: SSO on Android ended on "server not reachable". Android may end the app while the sign-in runs in the browser; the return then reached a new app that had lost the sign-in, and its first page load failed. The return is now kept and redeemed, and a page that fails on the network is loaded once more before the app gives up.
- Native app: a client certificate can be added before connecting. The address screen offered the import only after the proxy asked for a certificate during the handshake; it now also has "Add certificate file" below Connect.
- Native app: the top bar under a camera in the screen's corner. The iOS app passes the safe area it measures to the page as a floor under the one WebKit reports, and the bars on a phone keep clear of side insets too.
- Native app: one TREK Cloud subscription per store account. Choosing another plan with a subscription already running changed it in the App Store and then failed with "We could not set up your TREK"; the app now checks first and says the account already has TREK Cloud, with a way to open it and to manage the subscription.
- Native app: the first screens on a living landscape. Welcome, plans, address, an own server and the states between are light screens on an animated aerial landscape; choosing a plan flies the camera from an island over the coast and the farmland to the mountains, and the address writes itself on a glass card. iPad and unfolded phones get the landscape beside the content, and Arabic and Hebrew mirror the layout.
- Native app: "server not reachable" names the cause. The web view's own error (an HTTP status, a network error code, a client certificate the proxy asked for) shows small under the message, so a report carries it.
- Native app: the travel day's Live Activity from three hours before its first stop. It started with the first sync of the day and held the lock screen from the morning on even when the first stop was in the evening; it now appears three hours before the day's first timed stop.
- Native app: a failed SSO round trip still hands back on the retry. When the SSO callback failed (an expired or overwritten state), the login page dropped the way back to the app's handoff page, so the retry signed in to the web app inside the app's browser sheet; it now keeps that way back.
- Native app: a widget tap that starts the app opens what it points at. A tap on a widget or Live Activity with the app closed lost its path and opened the start page (the packing widget landed on the trip instead of its lists); the launch link is now followed once per launch.
- Native app: the app needs TREK 5.1.4 on the server. 5.1.4 serves the UI that follows a widget or Live Activity tap starting the app, so the app now refuses an older server with a hint to update, and checks a server it remembers once more.