github liketrek/TREK v4.3.2

4 hours ago

4.3.2

Full diff since 4.3.1

Fixed

  • The road trip can start and end a day where you slept. It had no way to: the day after a booked night started at its first place, or at the last place of the day before, so a moving day showed only the new hotel and several nights in one hotel drew each day as if it began somewhere else. With "Start and end each day at your stay" switched on under the driving settings, off by default and on the desktop and the phone, a day after a booked night starts at that stay and a day before one ends there. The hotel stands at the edge of the day under its own name, with a badge for the edge it is: Check-out with the latest hour on the day you leave, Day start in the middle of a stay, Overnight in the evening, and Check-in with the hour the room is ready on a moving day. A moving day without places becomes the drive from one stay to the next. The check-out hour is shown and never used as the departure, and a plan that sets out later turns its badge into a warning. Flights, ferries, trains and hire cars at the edge of a day take precedence, a flight or train saved without located terminals draws no drive from one hotel to the other, and no hotel is joined by road to a terminal more than 2000 km away. The driving settings button shows when the switch is on, and calculate_roadtrip reads the day the same way. (#2479, #2481, #2495)
  • A day in the middle of a trip can be removed. The planner had no way to do it, and shortening the dates only ever took days off the end, whatever was on them. The reorder dialog now deletes the day you pick, on the desktop and in the phone's days sheet, after listing what goes with it: its places, notes and bookings, a stay that checks in or out on it (cancelled with its booking and expense), a stay that loses a night, and the days and bookings that move up a date, with the new end of the trip. Later days close the gap and keep their dates by position. The last day cannot be deleted, and deleting needs a connection. delete_day and the plugin RPC do the same. (#2485)
  • A trip with dates can be extended by a day from the planner. Adding a day only ever gave one without a date; next to "Without date", the reorder dialog now offers the next date, which adds a day right after the last dated one and extends the trip by one. No existing day or booking changes its date. create_day takes dated: true for the same. (#2485)
  • Shortening a trip no longer removes days without saying which. Saving new dates that drop days with something on them now lists the days that go and what is on them, on the desktop and the phone; when the start moved as well, the question how bookings follow and that list stand side by side. Days with nothing on them go without a question, and update_trip lists removed_days. (#2485)
  • The ride block on the road trip rail and in the phone chain reads each fact once. It printed the booking title in capitals with its duration cut off, every airport code three times, an unlabelled check-in hour beside the departure that called itself a time you had set, the arrival clock twice, and a late mark measured against that unlabelled hour, so a missed flight read as a delay of a few hours. It now reads in four lines: the booking as typed, the two codes with their timetable clocks and the ride between them, the places, and a check-in badge with the duration beside it. The badge carries its own state: the check-in hour when the drive is on time, by how much when it is late for the check-in, and that the ride is missed once the drive gets there after the departure, which also edges the block and says so in the day header, folded or not. Trains and buses say boarding. (#2495)
  • A booked night's own stop on its check-in day says what holds its clock: the check-in hour shows as a badge beside its stay, where the arrival sat at that hour with nothing to say why. (#2495)
  • The "Looking for" control along the route showed at most three of the picked kinds and ran their names into an ellipsis, with the day it searches along far off in the header. Closed, it now shows every picked kind by its icon, with the names in the list and the tooltip, and the day sits beside it in the same line as a dropdown of the same shape. (#2495)
  • A road trip rail pulled narrow no longer squeezes its head and day headers: it drops the stop count, in the head with the hairline beside it, and keeps distance and time. (#2495)
  • A day's stops in road trip mode follow the order the Days list shows. A stop with a start time moved onto another day, or a place carrying its own time added to a day, was stored at the end of that day or where it was dropped, so the list showed it at its hour while the road trip drove there last and reached it late. The night spill then read that late arrival as a midnight: the stop and every stop behind it opened the next day's card, and a day left with a single stop fell to the placeholders at the foot of the rail, which made whole days look shuffled. Such a stop is now stored where the list draws it, with a booked night counted by its check-in, and a stop without a time still lands where it is dropped; the via points of a day it lands in the middle of stay on the legs they were drawn for. A pinned stop the drive reaches late keeps its day and its late badge. The desktop rail, the phone's road trip tab and the calculate_roadtrip MCP tool read a day the same way. (#2459, Closes #2455)
  • On the phone, a booking route switched on with "On map" is drawn only on the days the booking runs on. The plan map frames one day per chip and drops the other days' pins, yet a flight from the first day of a trip crossed the map of the third; an overnight flight now shows on both of its days, and the all-days view still shows every route that is switched on. "On map" in a booking's sheet reads as on only where the route is drawn, and from another day a tap takes the map to the booking's own day instead of hiding a route that was not there. The phone settings gain the "Always show booking routes" switch the desktop already had. The desktop map, collections and the road trip stage draw exactly as before. (#2459, Closes #2456)
  • With "Blur booking codes" on, a code stays blurred when its booking is opened for editing. The reservation and transport forms, per-segment codes of a flight or train included, the hotel editor in the day panel and the phone's edit sheets printed it in plain text, and so did the stay's own code in the day panel, the booking strip in the place inspector and the booking lines in the phone's day sheet and day plan. A filled field is blurred until it is hovered, clicked, tapped or tabbed into and saves exactly what was typed; a code shown as text lifts on hover or with a click, like the codes in the bookings list. (#2459, Closes #2457)
  • An installed app moves onto a new release even when the first attempt after a server upgrade fails. The app noted the new version as applied before its service worker had fetched the new build, so a failed fetch of the worker script, an offline copy that broke off halfway on a patchy connection, or a worker the browser had already swapped in before the version check answered left the previous interface in place for good, and with it a missing release notice. The version now counts as applied once the new build has taken over or nothing needed to change; a failed attempt is retried on the next launch without reloading into the old copy, and the app reloads at most once per version and session. (#2459, Closes #2458)
  • The MCP setup page in the wiki names the redirect URI Open WebUI really uses, …/oauth/clients/mcp:{ID}/callback. The bare connection ID it gave before never matched, so a client registered by hand was refused at the consent step with Unregistered redirect_uri. The page also says how Open WebUI connects: its container has to reach the public TREK address, and its WebUI URL has to be the public https:// address. (#2466)
  • Closing the place dialog resets its search. The planner keeps the dialog around while it is closed, so the next opening, whether for a new place or for editing one, greeted you with the last query, its result list and the "Search Google instead" line, and a click on one of those old results wrote its name, address and coordinates over the place being edited. Closing now clears the field, the list and the suggestions and cancels a lookup still on its way; a search that answers after the dialog closed is dropped instead of filling the next opening. (#2465, #2469)
  • Places found through Amap get their opening hours. Amap writes them in Chinese, which the parser could not read, so every such place showed seven question marks and never an open or closed badge; they are now translated, including Amap's own documented form and the common spellings. Hours that cannot be read in full are left out rather than half read, since a half read would mark a shop closed on a day it is open, and OpenStreetMap's hours can then step in. A village or lane that Amap suggests but whose details it does not know is added as a named pin instead of ending in a failed search, and a search near the trip that finds nothing close by falls back to Amap's nationwide text search. (#2463)
  • "Other ways" in road trip mode offers what the drive can take, and a chosen way stays. With any driving setting on, such as Avoid ferries, the side panel was timed by the second router while "Other ways" still asked the first, so the times never matched, the road you were on was missing from the list and "Fastest" did nothing when clicked. A choice was saved as a single point where the way strayed furthest, unchecked; on a ferry crossing that point was moved onto the pier and the drive went the long way round, so the old route came back. "Other ways" now asks the router that draws the leg, always lists the road you are on as Current, and keeps a choice only once routing through it comes back on that road; a way it cannot hold is not saved and the bar says why. The drive from one day into the next can take other ways too, on the desktop and on the phone, and on the phone a leg bent through a via shows its whole length instead of its first piece. (#2474, Closes #2461)
  • A ferry, flight, train, cruise or bus booked for the trip but placed on none of its days was left out of the drive without a word while its arc stayed on the map; the road trip now says so, with a link to the booking, and calculate_roadtrip reports it. A ride that leaves and arrives on the same day is placed by where it goes when the clock does not decide, so a ferry from Amsterdam to Newcastle sits between the two cities instead of after both, which drove to Newcastle overland and back to the port. (#2474)
  • A flight day no longer drives to the evening's hotel first. On a day a flight, train, ferry, cruise or bus leaves and lands, the hotel checked into that evening was seated by its check-in time, so a hotel in Munich checked into from 15:00 stood ahead of a 15:15 flight out of Hamburg: the day drove from the Munich hotel back to Hamburg airport and marked the flight nine hours late. A check-in is the earliest arrival, not an appointment, so such a stay now waits behind the landing when it lies nearer where the ride lands, and its check-in only holds it when the ride lands before the room is ready. A time typed on the stop keeps its seat. The Days view was never affected, and calculate_roadtrip seats the stops the same way. (#2495)
  • A flight the drive reaches more than half a day late stays on its day and is reported with the full delay, instead of moving to the next day without a word. On the phone, the road trip rows show late arrivals and missed departures at all; they used to show neither. (#2495)
  • The manual tab of Add transport offers the trip's own places in its location fields, the way the automated tab already did: From and To, every train station and every car stop, on the desktop and on the phone. They show while a field is empty or holds fewer than three characters, narrowed by what was typed, and the map search takes over from the third character. A place without a pin is not offered, so an endpoint can no longer land at 0,0. (#2473, Closes #2468)
  • Importing a booking with the cloud AI keeps a booking the model read without its venue, such as a Booking.com confirmation printed to PDF; it was dropped as incomplete while the import still ended on a green tick. The model answers against a schema that now asks for the venue of every kind of booking, an exact duplicate is dropped, a mangled currency such as "EURials" is read back to its ISO code or taken from the document's total, and a file name with umlauts arrives intact. An import that found nothing shows a warning in the task list instead of the tick. (#2482, Closes #2477)
  • Immich connects to a server with a self-signed certificate. Its settings gain the "Skip SSL certificate verification" switch Synology already had, off by default and kept only while the server address stays the same. A failed connection test now says why, for example "fetch failed (self-signed certificate)", and new installations get the Auto upload switch that only upgraded ones had. (#2482, Closes #2475)
  • A moving day with a flight, train, ferry or bus between two stays no longer draws a drive from the first hotel to the second when the booking's terminals have no coordinates, on the Days map, in the trip overview and on the phone; with coordinates the drives to and from the terminals are drawn as before. On the phone the leg into the evening's hotel is the last one of the day, a single leg is not shown twice, and Google Maps and CoMaps are offered only when there is something to route. (#2482, Closes #2476)
  • Picking a user in a trip's share dialog shows the name in the field; it stayed on the placeholder while the invite button was already active. Every select compares its value the same way now. (#2482, Closes #2478)
  • A place booked as a stay no longer disappears. Since 4.3.0 every lodging booking types its place as a hotel, which counts as a road trip stop, and with Show in Days too switched off Days hid such places altogether: the hotel vanished from the place list, from the booking's own place picker (the edit form showed the stay empty) and from the Days map, and clicking it in the day list did nothing. Nothing was deleted, and trips planned on 4.3.1 show their hotels again as soon as the app updates. Days now hides only road trip stops nobody booked. An imported GPX or KML track is no longer offered as the place of a stay. (#2487, Closes #2488)
  • With the place filter set to Unplanned, a click on a day's stay moves the map to it, as a click on a stop already did. The map went only to a selected place it showed as a pin, and a stay is neither a pin under that filter nor one of the day's stops. Both map renderers now look the place up the same way; the filter itself is unchanged. (#2491)
  • A place picked from the search can be saved again when its website comes without https://, as the TREK Places API, OpenStreetMap and Amap often hand it over (fr.wikipedia.org/wiki/…). Saving it to a collection or a trip answered 400 "website: must be an http or https URL". Every website that comes in from outside now gains its scheme or is dropped, and a bare host sent to the API, MCP or a plugin is completed to https instead of refused; javascript: and other schemes are still refused. (#2489, Closes #2483)
  • Deleting a place with a booked stay says plainly what goes with it: "This also deletes the stay booked at “Rostock”, its booking and any expense linked to it." The old note named the place twice; the booking is quoted only when its title differs from the place. (#2490)
  • An undo that could not be carried out says so instead of reporting it as done. (#2485)

Internal

  • The document sync dialog keeps a store that was picked the moment the dialog finished loading. The effect that keeps the dialog on a bound store read the pick from its own render, so a click that came in before the effect ran was switched back to the first store; on a loaded CI runner this made FE-DOCSYNC-PANEL-008 fail now and then. The effect now reads the current pick, and FE-DOCSYNC-PANEL-023 forces that order. (#2460)

Don't miss a new TREK release

NewReleases is sending notifications on new releases.