5.0.0
I could tell you that this is the biggest release TREK has ever had. That TREK now has a Tours addon for every kind of day outdoors, a design studio for your photo books and an assistant that plans with you, and that more than 100 of your feature requests made it in. But really, I just want to say thank you for your amazing support.
Yours, Maurice
Read Changed before you update: TREK copies your database before it touches it and needs the free space for that copy.
Added (Highlights)
Tours
Tours is a new addon for planning trips you make under your own power, or on skis or a horse, with each tour saved as part of the trip: hikes, bike tours, runs, rides, paddle tours, city walks and ski or winter tours. It is on for every install until an admin turns it off, and it works on desktop, on the phone and offline. (#2586, #2662, #2684, #2687, #2691, #2693)
Planning
- Draw a route on a topo map, drag its waypoints or reorder them in the sidebar, and undo every change. Each tour type comes with maps of its own, and OpenHikingMap is there for hikes.
- Each tour shows its elevation profile, distance, climb and a walking time worked out from the hiking rule. Breaks and extra time can be added, and the planned duration adjusted by hand.
- Hikes get a difficulty grade from T1 to T6, and the planner shows known SAC grades, surfaces and kinds of way along the route. Open the 3D terrain view and start a flyover coloured by grade.
- A hike can avoid steps or ferries, prefer footpaths and choose shorter over faster. Other ways compares alternatives for one section, and a round hike of a length you ask for can be suggested from a stop.
- Via ferratas appear on the map in 2D and 3D, can be added as fixed legs, and warn you when a route crosses one.
- A tour can run over several days in stages, each on a day of its own. Any tour can be reversed or led back to its start, and Save as new tour makes an independent copy.
- The search along a tour finds places near the line and puts the best known ones first with a star, ranked by how often their Wikipedia articles are read.
- On a day, a hike shows sunrise, sunset, the weather and any warnings. Give a tour a start time and TREK works out when it ends.
Every kind of tour
- Bike tours are planned for a profile (touring, road, gravel or mountain bike) on CyclOSM, with surfaces, kinds of way and, on a mountain bike, trail grades. They can also find e-bike charging points along the route.
- Runs are planned at your own pace and shown in your distance unit, and a trail run keeps to forest tracks and natural paths. Rides on horseback are put together from signposted horse routes, and a ride recorded as a GPX file can be kept exactly as it was ridden.
- Paddle tours for kayak, canoe and SUP are routed on the water, or drawn freely across a lake, with OpenSeaMap seamarks on top. They mark portages and locks, estimate time on the water, carrying and waiting, and show the wind at the start.
- For the regions an admin adds, a paddle tour shows weirs, locks, put-ins and boating rules from OpenStreetMap, with a checklist that asks you to decide on each obstacle and asks again when the data changes.
- City walks plan sights on foot, with a length of stay and an importance for each stop, checked against opening hours for the day. A walk can be filled from a theme (culture, parks, food or a bit of everything) or from a Google Maps walking link.
- On the day, you check off a city walk stop by stop, offline too, and see how much walking time is left. Between two walks on the same day, the day plan offers public transit.
- Ski and winter tours cover alpine skiing, snowboarding, cross-country, ski touring, snowshoeing and winter hiking, routed over runs, lifts and trails on a piste map. When a ski leg cannot be routed, the planner names the one change that would make it work.
On the trip
- The trip shows tour totals by type above the tour list, which can be filtered by source, routing limit and type. Each person can hide single tours from the trip map.
- A tour keeps the track it was actually done with and compares it with the plan, in its values and on the map. The Atlas adds up the tours you have done, by period and by type.
- A tour can point at the trip's packing list. Changes saved by someone else arrive live, and TREK asks before overwriting what you are editing.
- Whole tours can be kept in collections and taken from there, or from another trip, into any trip.
Importing and sharing
- GPX, KML and KMZ files import as tours with a preview first, and a GPX file can be dropped straight onto the map or a day. An imported track can be turned into an editable tour, and you can still go back to the recorded track.
- Every tour remembers where it came from: planned in TREK, a GPX file, or a wanderer trail. Once an admin allows it, each user can connect their own wanderer instance under Integrations and reimport trails that changed.
- A saved tour can be downloaded as a GPX file or shared through your device's share sheet. One Add tour menu plans, imports or takes over a tour.
Admin, MCP and the assistant
- Admins control Tours under Admin, Addons, with switches for wanderer trails and the piste router and a panel for the regions whose paddle water data is loaded.
- MCP can list a trip's tours, read a tour's whole saved plan, and prepare, save and undo changes to a city walk.
- The assistant plans and saves every tour type, including multi-day hikes in stages and round hikes of a length you choose. It edits saved tours, reads route files dropped on the chat, checks off city walk stops and works with wanderer trails. (#2698)
TREK Studio
TREK Studio, the photo book designer in Journey, grew from a layout tool into a full design studio in 5.0.0. Typefaces, themes, stickers, templates, photo effects and the Travel tab are all new or rebuilt, and the assistant can now design a whole book with you.
Type and text
- A book can now use 34 typefaces instead of 7, all self-hosted and licensed for print, from condensed poster faces and retro display faces to elegant serifs, twelve scripts and a mono. Weights run from 100 to 900 wherever a family ships them.
- A new font picker groups the families as sans, serif, elegant, condensed, retro, script and mono, draws each in its own face and offers only the weights a family really has. Faces load only when used, and those of an opened book are kept for offline use.
- Text can be set in capitals, lower case or small caps, be outlined, take a hard shadow or a marker band, bend along an arc or round a circle, be filled with a gradient, a pattern or a gallery photo, or shrink to fit its frame. Every effect prints as vector.
- A Text styles shelf holds 24 ready lockups: titles, badges and stamps, chapter marks, quotes, captions and place names. Each is drawn with the book's own title and placed as one group.
Themes, colour and decoration
- Seventeen book themes set the palette, the font pairing and the sticker motifs for the whole book at once: Poster pop, Cut-out, Postcard, Riviera, Linen classic, Minimal serif, Grid and badge, Scrapbook, Tropical, Nordic, Alpine, Stamp collage, Riso print, Magazine, Retro travel, Midnight and Field notes.
- Shapes, pages and letters can be painted with linear and radial gradients, colours with their own alpha, and fourteen patterns: checker, gingham, stripes, pinstripe, dots, polka, zigzag, waves, grid, scales, sunburst, confetti, linen and paper grain.
- A sticker library has 160 hand-drawn illustrations in twelve themes, from landmarks, food and mountains to the sea, paper ephemera and doodles. Search them, place them by click or drag, recolour them to the book's palette, mirror, turn and fade them.
- A second shelf adds fifty shapes: arches, paper cut-outs, postage stamps, a postmark, rosettes, tags, ticket stubs, ribbons, speech bubbles, arrows, hearts, stars, photo frames and ornaments such as a laurel. Rectangles, circles, arches and photos can take a cut edge: zigzag, scallop, perforated, wavy, torn or deckle.
- A new line element takes 2 to 32 points dragged on the page. It can be straight or curved, solid, dashed, dotted, wavy, zigzag or hand-drawn, with an arrow, a dot or a bar at either end and an ornament in the middle.
Templates and layouts
- Auto layout lays the whole book on the designed pages in the style of its theme: every photo in a frame, the stories in story frames, a page of words where a story runs on, and the stops nobody wrote about as a list in the same style. Change the theme and run it again, and the same journey becomes a different book. This spread re-lays only the page on screen.
- Designed pages lay a fully designed page onto any page: 108 of them, 48 covers and 60 double spreads in twelve styles (spine band, poster pop, cut-out, illustrated postcard, grid and badge, minimal serif, stamp collage, riso, magazine, vintage poster, night film and field notes), filtered by style in the Layouts panel. Each style has spreads for a page of words and for one to eight photos.
- A template pours the page's own photos and words into its places, sets everything in the book's theme and scales to the page format with its bleed. Whatever has no room is parked instead of dropped.
- Save this page as a layout stores a page's arrangement for other pages, and elements can be copied and pasted between pages.
Photos
- Photos can come from Immich and Synology as well as the journey gallery.
- A photo can take a border, a hard offset shadow and a die-cut edge. It can be zoomed up to four times around its focal point, mirrored, adjusted for brightness, contrast, saturation and warmth, or set in duotone.
- The inspector shows a photo's print resolution, measured from the original, and warns below 200 dpi.
Travel tab
- The Travel tab is rebuilt as four tabs, Figures, Maps, Countries and Marks, and every look takes its colours and faces from the book's theme.
- Figures show the journey's numbers as a poster, ticket, tiles, road sign, odometer, handwritten note, pencil sketch or band. Maps show the route with photos, numbered stops, or start and finish, on a dark ground, over satellite or relief, for the whole trip or a single country cut to its shape.
- Countries appear as a passport stamp, a visa, an airmail postcard, a cloth flag, a map pin, a luggage label or a sketch. Marks set the date, day, distance, coordinates or flag as a stamp, tag, pill, ribbon, sticker, embroidered patch or sketch.
- Travel elements already on a page keep drawing exactly as before.
Editing
- A Layers panel lists the page from front to back. Each element can be locked, hidden, renamed or dragged to a new place in the stack, and it works by keyboard.
- Elements can be grouped, then moved, resized, aligned and restacked as one. Select with a marquee, nudge with the arrow keys, resize several elements in one box, and line up, space out, and copy and paste styles from the inspector.
- The head band has the shape of TREK's dialogs, and the rail follows the order a book is made in: Pages, Content, Layouts, Elements and Travel, then Theme and Layers. Elements has six tabs: text, shapes, lines, frames with grids, icons and stickers.
- Both side panels put common controls first and fold rare ones away, and labels wrap instead of being cut off in long languages.
Saving, sharing and export
- The save state is a tile beside the list of who else is in the book, and a save made elsewhere comes into an open Studio without costing you your undo history.
- A book saved by a newer Studio opens read-only behind an overlay that asks you to reload, and the server refuses any save that would write an older format over a newer book.
- Printing waits for every photo and typeface, so nothing goes to print half loaded.
Assistant in Studio
- The assistant sits beside the book in a floating window and sees the page you are looking at, without photos of other people or foreign map tiles.
- It can design a whole book as one proposal from a brief of energy, decoration, collages and theme, pick one of the twelve cover styles, and design lively books as well as calm ones, with stickers from the theme's motifs, never over words or across the fold.
- Every page change shows as a card with the page before and after, can be applied or discarded, and undoes page by page.
- Through MCP, a book can be changed page by page, with photos picked from the journey gallery, and the cover and page tools accept the decorated templates too.
Assistant
TREK 5.0.0 ships its own AI assistant, which plans with you inside the app and works on your real trips instead of copied text. It connects to the AI account you already have, shows every change before it lands, and can undo anything it did.
Sign-in, admin policy and privacy
- Sign in with your ChatGPT plan, with no key needed (still in beta), or paste an API key from Anthropic, OpenAI, Gemini or OpenRouter. TREK recognises which provider a key belongs to, and the model picker lists only models that can use tools and marks the recommended and free ones.
- Under Who pays, an admin chooses from three setups: the admin pays for everyone, the admin pays but people may connect their own account, or everyone uses their own. An admin can also share a ChatGPT plan with all users or point the assistant at any OpenAI-compatible server, such as Ollama.
- While the admin pays, a daily message limit per person can be set, and the chat shows how many of today's messages are used. Provider limits and keys that stopped working each get a clear message, with a button to replace the key.
- Before your first message, a privacy note says what goes to the provider: your messages and the trip details the assistant reads. Your password, your files and your other trips are not sent, and email addresses, phone numbers and booking codes are hidden before any tool result reaches the model.
- An admin sets how long chats are kept, from a number of days up to forever, and you can delete any chat yourself.
Where it opens
- On desktop the assistant is a floating window over the planner, and on the phone it opens full screen. Outside a trip it opens as a home chat about all your trips, where it can also start a journal, and you can switch to a chat about one trip and back. A journal page has a chat of its own that writes entries, moves photos between them and changes the journal's settings.
- In TREK Studio it floats next to the book and sees the page you are looking at.
- The planner's menus can hand work over: Plan this day asks for places, times and somewhere to eat, and Plan for rain asks for indoor options nearby.
What it can do
- It works with the whole trip. It adds, moves and removes places on days, writes day notes, reads your bookings and checks the weather day by day.
- Costs are covered too: it creates expenses and payments, works out the shares and suggests how to settle up. It also handles packing lists and to-dos, journal entries, collections, chat messages, notes and polls, and road trips with charging and transit.
- Vacay and the Atlas are part of it: your vacation calendar with the days you have left, the countries and regions you have visited, your bucket list and your next trip.
- It plans and saves every tour type: hikes, bike tours, runs, paddle tours, rides, ski and winter tours, and city walks, including multi-day hikes in stages and round hikes of a chosen length. It can also edit saved tours, check off city walk stops and work with wanderer trails. One tap opens a proposed tour in Tours with its route on the map.
- In Studio it designs a whole photo book as one proposal from a brief, in twelve styles, with collages and stickers. Book changes show each page before and after and can be undone page by page.
Working together in the chat
- Every change the assistant proposes appears as a card with its key facts as badges. You apply or discard each card, and undo it afterwards, one at a time or all at once. If something changed in the meantime, the card tells you to adjust it by hand.
- Suggestions show live in the plan while you decide. The day list marks what would be added, moved or removed, and Compare on the map sets the proposal beside your current plan.
- Without being asked, the assistant flags problems: overlapping bookings, a place that is closed on its day, free hours, nights with nowhere to stay, legs that are too long or too tight, and bookings not yet on a day. Each hint turns into a question with one tap.
- It can search the web through your provider for reviews, opening times or events, and lists the pages it used as sources. An admin can turn web search on, and it works with ChatGPT, Anthropic and OpenRouter.
- Trip notes keep lasting wishes such as "we travel with a toddler" or "no early mornings", and the assistant takes them into account for every suggestion. It adds notes on its own when you mention something lasting.
- Drop files on the chat: a PDF, email, image or wallet pass up to 10 MB becomes a booking, and a GPX, KML or KMZ file becomes a route. Every file gets an answer: what TREK found in it, or why it found nothing, and what to do next, such as keeping it in Files or making a booking from it. The assistant reads a file's text only after you agree. Type
@to mention days, places and bookings, and get follow-up questions after each answer. - Share in the trip chat posts an answer for everyone on the trip, marked as coming from the assistant, and can list the changes you applied along with it.
(#2698, #2710, #2712, #2713, #2714, #2715, #2716, #2718, #2724, #2725, #2726, #2727, #2731, #2732)
Help center and languages
TREK 5.0.0 explains itself on every screen. You no longer have to leave the app to look something up. The help center comes in every language TREK ships, and that list now runs to 27 languages, with Arabic reading right to left and plurals that read naturally.
- The ? next to the theme toggle opens help for the screen you are on. There are 56 screens, each with its own overview, and a screen's sub-screens show as cards above its guides. Tours has a section of its own with twelve screens under it. Notifications, Vacay, Atlas, Collections, Journey, Settings and every admin tab have their own help too. (#2438, #2571)
- About 370 step-by-step guides cover concrete tasks. Examples are adding an expense and splitting it, settling up after a trip, importing a GPX track, sharing a Vacay calendar and creating an MCP token. Each guide is marked Quick, Guide or Walkthrough so you know how long it will take.
- Every step comes with a picture, about 1600 in all. They were taken on a realistic demo trip and show the step's control in focus, with a final shot of the result.
- Help has a search that skips filler words, so "how do I create a trip" finds "create trip". It also ignores accents, so "cafe" finds "Café". Matching guides and documentation pages show up side by side.
- Each guide links to related guides and to the exact section of the documentation that covers it. That documentation opens inside TREK as the Help & Docs page, so you don't have to search the wiki.
- TREK Studio has its own help with 17 guides. They cover auto layout, pages, layouts and saved layouts, content, themes, elements, stickers, the four tabs of the Travel tab, text effects, backgrounds, layers and the properties panel. All texts and pictures match the redesigned Studio.
- Four new languages: Azerbaijani, Estonian, Slovak and Thai, with the help center included. TREK now speaks 27 languages. (#2492, #2480, #2425, #2396)
- If an account has no language set and you sign in from a fresh browser, TREK starts in the browser's language. (#2604)
Added
New look
- The desktop trip page is redesigned from end to end. Bookings and Transports show as cards, a list or a timeline, and a detail popup opens on click. The Plan tab and Costs are rebuilt, and Costs gains a table view. Every dialog of the trip, Vacay, Collections, Atlas and Journey now uses one shared frame. The phone app keeps its own layout. (#2541)
- The public share page uses the same design as the planner.
- Costs, the packing list and To-Do now share one look. The Costs tab opens with the same bar as the other tabs. The desktop packing list uses the phone's category cards, with quiet badges and one menu per item. To-Do has a sort in the card head and a detail pane that keeps Delete and Save changes in view. (#2520, #2521)
- User settings and admin on desktop now look like the planner, with cards, toggle rows, grouped navigation and the shared dialogs. Confirmations open in TREK's own dialog instead of the browser's. (#2568)
- The road trip sidebar now reads like the day plan. Day heads show the drive as pills, rides are cards in their type's colour, bookings are a badge on their stop, and every road trip dialog, including the Google route import and the track dialog, uses the shared frame. (#2634)
- The mascot on empty pages is now a 3D figure that plays smoothly in every browser, iPhone included. Click it and each page plays its own little animation, such as catching the paper plane on the dashboard. With reduced motion turned on it stays the flat mascot. (#2638)
- Inside a trip, the back arrow and the trip name sit together in one pill beside the logo.
- Notifications are redesigned in the bell and on their page. Each one has a tile in the colour of what it is about (a trip, a message, a booking, packing, a to-do, Vacay, a collection, shared photos, a tour, an update or an alert) with the sender's face on its corner, the list is grouped under Today, Yesterday, the weekday or the date, answers and links are proper buttons, and a filter shows only unread ones. (#2742, #2747)
- On the phone, trip settings and Edit trip open as phone sheets. The edit sheet can now also set the reminder and the day count of a trip without dates. The admin cards for paddle water data and school holidays are phone cards too, and long addon descriptions fold to two lines. (#2705)
- When a dialog opens, the focus moves inside it. On desktop it lands in the first field, and Tab stays inside the dialog.
Planner and map
- A day's route can be drawn for cycling, alongside driving and walking.
- Leave out of route keeps a place on the day but takes it out of the day's route. Walked stretches are drawn dashed on the map.
- Right-click a day heading and pick Clear day to take every place off it at once, with undo. The day's notes and bookings stay.
- A lock on the planner map keeps the view still, so switching days or picking a place no longer zooms or pans the map.
- Settings, Travel & map, Date first in day headings puts the date first in the day plan and the trip day second.
- Settings, Travel & map, Compact unplanned places draws places without a day as small markers without their photo.
- The day heading shows only the accommodation time that matters that day: check-in on arrival and check-out on departure. A stay that is not confirmed yet shows as a dashed Pending pill with a lighter marker.
- A booked stay's pill in the day heading opens the booking, and the name still opens the place. A hotel's place panel, on desktop and phone, lists the stay booked for it next to the bookings pinned to that stop.
- The phone's trip map has a Filters button, badged with how many filters are on. It narrows the pins to planned or unplanned places, tracks, a minimum rating or chosen categories, and "no category" is one of the choices. The rating floor now also applies to the map on desktop.
- While a trip is running, today's chip on the phone's day rail is marked, and a button jumps back to it.
- On a tablet, the day plan and places panels can be resized with a finger or the arrow keys, in portrait too.
- The desktop dashboard searches every trip, archived ones included, by title, date or a place on the trip.
- The installed app reopens on the trip, tab and plan day it was on after the system closed it.
- A stray click outside a place or booking you are editing now asks before your changes are thrown away.
- Open screens pick up changes made somewhere else to members, settings, tags, the Atlas and journeys. Someone removed from a trip is told so straight away.
Places
- The add place dialog lists the places around the pin, nearest first and with their distance. The answers come from the TREK API, from Google when a key is set, or from OpenStreetMap.
- When a search finds nothing, it offers Add by hand. Address, phone, email and opening hours each have their own field.
- A place can carry its own phone, email and opening hours. Type them in the place dialog, or take them over with one click from the place details.
- A place has a photo gallery. Click its picture to see its own picture and the photos its sources know, with credits that link to the source pages. The lightbox follows the reading direction and can be used with the keyboard. (#2539)
- A place's picture is now set only in its edit dialog, on desktop and phone alike. You can upload one, keep the current one, pick an image attached to the place or one of the sources' photos, or remove it. Nothing is sent until you save, so Cancel leaves the picture as it was, and a new place can get a picture before it is first saved.
- A photo attached to the trip can be picked as a place's image.
- The places list sorts by recently added, oldest first, name, highest rating or recently changed.
- The places list can be filtered by country and region, with counts.
- The places search also finds text in descriptions and notes.
- A place added from the search or from a map POI comes with the matching OpenStreetMap category already picked.
- Settings, Language & region, Place names lets search results and addresses use a different language from the app.
- With Amap as the provider, searches centred inside China ask Amap first.
- The phone's place editor shows the same details as the desktop dialog: photos to pick as the cover, opening hours, rating and a description to adopt. (#2442)
- The place dialog has an Open in maps pill. On Android, Other map app hands the place to any installed map app through a
geo:link. On the phone, a place saved in Collections has the Navigation button too. - Settings can name a preferred map app: Google Maps, Waze, Apple Maps, OpenStreetMap, CoMaps, Amap or, on Android, any other map app. Every navigate button then opens that app straight away. A place that app cannot open, such as an Amap place outside China, still offers the full list.
- When a Google key is set, a GPX, KML or KMZ import can enrich the imported places with Google details.
Exports and sharing
- My plan as PDF prints only the activities assigned to you.
- The notes of a flight, train or rental print in the trip PDF, and a switch in the preview leaves them out.
- Bookings and Transports export exactly the list you filtered as a CSV.
- The public share page lists the places not yet planned into a day.
- A share link can be limited to Travel & stays only, or shared Without photos.
- Multi-leg flights and trains become one calendar event per leg, each in its own time zone, in the export and in subscribed calendars.
Bookings, transports and costs
- A cruise lists its ports of call, each with arrival and departure, between embarkation and disembarkation. The ports also appear in the PDF, the calendar and the share page.
- Cable car and gondola is a transport type of its own, with its own icon.
- The public transport search suggests the day's hotel and the stations and airports from your bookings as origin and destination.
- An expense already in Costs can be linked to a booking, a transport or a place, and unlinked again without deleting it. One booking can carry several expenses, such as the flight and the seat upgrade bought for it later. (#2523)
- When an admin sets the AI Parsing model to read images, the booking import also accepts a photo or a scanned PDF. Costs gets Scan receipt: one photo becomes an expense, which you review in the expense editor with the photo attached. (#2522)
- A custom split can be entered in percent. A running total shows how much of the 100 percent is assigned.
- Every expense row shows who it is split between, each person's share, and a tick once that share is paid.
- A payment between members can carry a note.
Packing and To-Do
- A packing list can be printed, saved as a PDF, or exported as a Markdown checklist or a CSV, bags included. The import reads that CSV back and also reads Markdown checklists. (#2517)
- A switch in the packing list's tab row sorts each list's items A to Z. A second click brings back your manual order.
- On desktop, packing categories can be dragged by their head into a new order.
- An item with a quantity counts what is packed, for example 3/10, and ticks itself off once everything is in.
- Packing templates remember each item's weight, quantity and bag. The bag sidebar shows the packed weight and what each person carries.
- A new item added to a shared category of a personal packing list is shared with the same people right away.
- To-do descriptions render bold text, lists and links. Click the text to edit it again.
Journey
- Trip settings replace the Share button. There, a journal from Journey can be linked to the trip for the members you choose, as readers or editors. The trip gains a Journal tab that shows the journal live on desktop and phone, and the journal settings list who the linked trip lets in. (#2683)
- Photos can be dragged into any order, and the first one becomes the cover. They zoom with the wheel, a double click or a pinch.
- Geotagged photos appear on the journey's own map.
- A journey can place an entry without a location where its first photo with GPS was taken. Locations you set yourself are never moved.
- An entry can stay a draft, off the public page, until it is published.
- A journey's status can be set by hand to draft, live or completed. Automatic follows the dates of the linked trips.
- A new entry dated inside a trip that is not linked yet suggests that trip and links it with one click.
- On desktop, a pill at the bottom of a journey lists every day with its entries and scrolls straight to the one you pick.
- With Dawarich, a day's recorded route can be kept in the journey. You preview it first, and its gaps are shown. A recorded day can be taken over with its stays as drafts, which you can pick, rename or join into one day report. When switched on per journey, the recorded days of its trips are prepared in the background while a trip runs, and each day shows its state. (#2700)
- The journey map shows the trip plan, what was recorded, the entries and the photos as separate layers, with a key. A shared link shows the plan and the recorded routes only when you switch them on.
Atlas, Vacay and Collections
- The Atlas counts visited regions. Bucket list entries can be regions, and a country's places open as a searchable list grouped by trip.
- Company holidays in Vacay can be half days, and a half day takes only half a day of leave.
Notifications
- Web Push is a fourth built-in channel next to email, webhook and ntfy. Notifications reach a phone or computer even while TREK is closed. (#2510)
- An admin switches Web Push on under Admin, Notifications. Each user then turns it on for each device under Settings, Notifications. Send test reaches every device at once, and a Push column in the event list decides which events arrive.
- Web Push needs HTTPS. On iPhone and iPad, TREK has to be added to the Home Screen first.
- The keys come from
VAPID_PUBLIC_KEYandVAPID_PRIVATE_KEY, or are generated once and stored encrypted.VAPID_SUBJECTsets the contact, falling back to an httpsAPP_URL. Changing or resetting a password removes the user's registered devices. - Admin, Notifications has a Defaults for users grid. Each event and channel starts On, Off (a user may still turn it on) or Blocked (off for everyone, shown as locked in user settings). A later change to a default reaches everyone who never changed that cell themselves.
- The "Manage preferences" line in every notification email links straight to Settings, Notifications.
Settings and accounts
- Settings, General, Language & region has Week starts on, with Monday, Sunday or Saturday. Every date picker follows it, the journey date picker included. Admins set a default under User Defaults. Vacay keeps its own setting.
- Every form that sets a password checks the server's rules as you type and shows them as a checklist.
OIDC_USERNAME_CLAIMpicks the claim a new SSO account's username comes from, such aspreferred_username.
Admin
- Admin, Addons shows one card per addon type, like the other admin tabs. A head card shows how many of each type are on, searches addons by name or description, and filters between all, on and off.
- Admins can cap Google API calls per day under Admin, Settings, with today's count shown next to the limit. Once the limit is reached, search, details and photos fall back to OpenStreetMap until the next UTC day.
Self-hosting
RESTORE_FROM_BACKUPpointed at a backup ZIP restores it on the first start of a fresh install, before any setup. If a database already exists, the variable is ignored.FILE_UPLOAD_LIMIT_MBsets the upload limit for files and notes.- Outbound requests honour
HTTP_PROXY,HTTPS_PROXYandNO_PROXY. GOOGLE_LIST_DATA_BASElets a pasted Google Maps list be read through a base URL of your own, for installs that cannot reach Google directly.- The Helm chart gains startup and readiness probes on
/api/health/ready,extraEnvandextraEnvFrom, and slots for the SMTP, Mapbox, Carto and demo secrets. (#2610) - The Docker images carry the
org.opencontainers.image.*labels, so Renovate can link an update to its release notes.
API, MCP and plugins
POST /api/maps/nearbyand the MCP toolsearch_nearby_placeslist the places around a point, nearest first.GET /api/v1/statshas anext_tripfield for a countdown widget.- The MCP tool
upload_trip_fileadds documents to a trip, with the same type, size and permission checks as the upload route. - Plugins can add their own categories to the trip map's category buttons, such as hiking trails or EV charging, and answer them. (#2511)
- A search plugin with its own index can answer while you type in the place search. Its results appear under the regular suggestions. (#2515)
Changed
Database
- The server now reads and writes its database through MikroORM entities, repositories and transactions instead of the old migration runner (#2416). Nothing needs doing by hand. On its first start, 5.0.0 reads the schema version your install already has, records the steps it already applied, and runs only the ones still missing. Databases going back to the 2.9 releases are covered by upgrade tests, so 3.x and 4.x installs move up in one step.
- The upgrade runs in one transaction. If the first start fails partway, nothing is left half done, and the next start simply tries again from the same point.
- Before a start applies pending migrations, TREK writes a copy of the database next to
travel.db, or next to the fileTREK_DB_FILEnames, and logs where it put it. A 4.x install gets a copy namedpre-migrate-legacy-<N>-<time>.db, where<N>is its old schema version, for examplepre-migrate-legacy-244-<time>.dbfor 4.3.3. The newest three copies are kept (TREK_DB_PRE_MIGRATE_SNAPSHOT_KEEP). A restart with nothing to migrate and a brand new install take no copy. - Make sure the data directory has free space for a full copy of the database before you update. If the copy cannot be written, for example because the disk is full or the directory is read-only, TREK does not migrate and refuses to start, with a message naming the path. Free some space and start again. If that is not possible and you have a backup of your own,
TREK_DB_PRE_MIGRATE_SNAPSHOT=falsestarts without the copy. - Keep that copy until you are sure you will stay on 5.0. Migrations only go forward, so the only way back is the copy from before the update. Images from 5.0 on refuse to start on a database a newer TREK has migrated, and they name the copy they could run instead. 4.3.x and earlier do not check this and would start on the migrated database without a warning. To go back to 4.3.x, stop TREK, copy the
pre-migrate-…dbfile overdata/travel.db, deletetravel.db-walandtravel.db-shm, and then start the old image. The copy holds the database only, not uploads, so it does not replace a backup. - Every restore now keeps the database it replaces as
data/pre-restore-<time>.db. A backup made by a newer TREK is refused while your current database is still in place (#2610, #2614). - Email addresses are unique regardless of case. If your install already has two accounts whose addresses differ only in case, it still starts. The log names the user ids involved, and the case-insensitive index is added once the pair is resolved.
Sign-in and keys
- Each sign-in is now its own session, saved on the server, so nobody is signed out by the update; what that changes is listed under Security. (#2617)
- For API clients, the token in the login, register, demo login, two-factor and passkey responses is still sent but is now marked deprecated. The session cookie is what the app uses.
- An
ENCRYPTION_KEYthat differs from the key your data was encrypted with now stops the start, with a message naming the rotation script (#2610). Before, the new value quietly overwrotedata/.encryption_keyand the stored secrets could no longer be read. If you see this message, setENCRYPTION_KEYback to the old value, or rotate it properly with the script, which now re-encrypts the AI Parsing key too.
Defaults that changed
- Tours is on for every install. New installs get it switched on, and existing installs have it switched on once by a migration. If an admin turns it off under Admin, Addons afterwards, it stays off.
- Tours reads trail grades, surfaces, kinds of way and horse routes from the TREK API first and asks the Overpass mirrors only when the TREK API has no answer. An
OVERPASS_URLthat points at an internal Overpass no longer keeps these lookups inside your network. To change that, setTREK_PLACES_ENABLED=false, or pointTREK_PLACES_URLat a copy you run yourself. - Settings, Integrations is always shown on the desktop, even with every addon off, so API keys can be created on a fresh install (#2650). The sections inside it that belong to an addon still appear only when that addon is on.
Running TREK
- The Docker image now takes its version from a file inside the image, not from the container's
APP_VERSION. A container recreated in Portainer, or started from a copied run config, reports the release it actually runs. - The image runs Node 24. A source install needs Node
^22.22.2,^24.15.0or 26 and newer, as now declared inenginesand.nvmrc. On an older Node, npm only warns, but TREK fails at runtime. - Docker and compose healthchecks, plus the Helm chart's ports and probes, follow
PORT. The chart also has a startup probe that gives a long first migration up to ten minutes before liveness steps in (#2610).
Fixed
Data safety and updates
- Backups and restores use the database the server actually runs on when
TREK_DB_FILEpoints somewhere else. A failed database copy now stops the backup instead of archiving a file that may be torn. (#2617) - These are now written in one step: saving a booking with its price, creating a journey, deleting a user, uninstalling a plugin, booking and AirTrail imports, and saving the Immich connection. A failure halfway no longer leaves half of it saved. (#2617)
- After an update through Portainer or another "recreate", TREK reports the new version instead of the old one. A tab left open during an update offers to reload into the new version, and pages that load their own data recover from a deploy too. (#2610, #2611)
Offline
- An offline change the server keeps failing on no longer holds back every other trip. It is retried with growing gaps and then set aside, with Retry and Discard under Settings > Offline. A change set aside also holds back later changes to the same item, so they cannot overtake it. (#2610, #2614)
- Waiting changes keep their order, an edit made online waits behind an older queued change to the same item, only one tab sends the queue at a time, and logging out sends waiting changes before the offline copy is deleted. (#2610, #2614)
- Things other members deleted now disappear from the device too. An archived trip on the device is no longer treated as deleted: it follows the normal cleanup rules and keeps any changes that are still waiting. (#2610)
- Changes made offline to costs, to-dos, bookings, transports and stays, to file notes, links, stars and the trash, and to places on a day, day names, day notes and a trip's name, description, reminder or archive flag now wait in the queue. They sync once the connection is back, as places and packing already did. (#2650, Closes #2601)
- Things only the server can do, such as receipt photos, uploads, booking imports, new trip dates or a Collab note, poll, message or link, now say they need a connection instead of failing. (#2650, Closes #2601)
- Downloading a trip for offline use fetches the map's vector tiles again, at each source's own zoom levels, instead of firing a burst of raster requests that all fail. Trips without the road trip addon no longer ask for its settings. (#2739)
- The live connection no longer reopens after a logout, and it reconnects as soon as the network is back.
Accounts and sign-in
- Email addresses are matched without regard to case. A password reset finds them, and two accounts can no longer share one address. An install that already has such a pair still starts and names both accounts in the log. (#2610, #2614)
- With
OIDC_ONLYthe login page no longer flashes the password form while it loads. WithALLOWED_ORIGINSset, a foreign origin gets a clear 403 instead of a failed login with a 500, and the instance's own address no longer counts as foreign. (#2498, Closes #2543) - A user who recorded a settlement between two other members can be deleted again.
reset-admin.jsends the admin's existing sessions and finds the email in any case. (#2610) - An SSO sign-in links to an existing account by email only when the identity provider verified the address and the account did not set that address itself. Otherwise the login screen says why, and the wiki explains how an admin confirms an address. (#2650)
- OAuth userinfo reports
email_verifiedonly for an address the account did not set itself, and an email change in the profile settings shows in the audit log asuser.email_change. (#2650) - Someone who lost their authenticator can turn two-factor sign-in off with their password and an unused backup code, as the troubleshooting guide says. The hint says so in every language. (#2664, Closes #2665)
Reminders and calendars
- Trip reminders arrive on the right day east of UTC, using the instance's
TZ. A reminder missed while the server was down is sent afterwards, a failed send is tried again, and no reminder goes out twice. (#2610, #2614) - Moving a trip across a daylight saving change no longer loses a day, on desktop, on the phone and through MCP. Subscribed calendars show events after the change at the right hour, because the time zone now lists its offset changes. (#2610, #2611)
- In the calendar export and subscribed calendars, a timed stop without an end time now lasts as long as its place's duration when one is set. A 20 minute stop no longer shows up as an hour. (#2650, Closes #2641)
Languages
- About 2800 strings that were still English in the other 26 languages are translated, across the Studio, Tours, the assistant and the admin screens. (#2738)
- Counts read correctly in every language ("1 file", no more "photo(s)"). Russian, Ukrainian, Polish, Czech, Slovak and Arabic get their own forms for one, a few and many. (#2611)
- Arabic reads right to left throughout the app, spacing and alignment included, while amounts and times keep their order. (#2611)
- Catalan and Vietnamese notification emails are no longer sent in English. Brazilian Portuguese and Greek dates use the right month and day names, Brazilian Portuguese error screens are no longer in Breton, and the journey date picker's weekdays are translated. (#2610, #2611, #2508)
- A few wrong or missing translations are fixed, among them "Other" in German and Spanish, the Add-ons tab in Ukrainian, a Collab button that showed its key, the Costs block of a booking, the photo upload action and the German weather descriptions, which now have their umlauts. (#2438, #2523, #2541)
- Cost categories on the public share page are translated. A signed-in session opened in a fresh browser starts in the browser's language when the account has none set. (#2650, #2604, Closes #2596)
Planner and map
- The plan's day costs and Total Cost, in the PDF too, add up the expenses from Costs and count each one once, so deleting an expense lowers them. (Closes #2551)
- A day added without a date keeps no date when it is moved, so it can go to the front of a dated trip instead of taking the first date. (#2632)
- The public share link's map opens on the whole trip instead of a corner of it. Editing the trip with the route overview on no longer throws the map back to the full view. (Closes #2549, #2547)
- A past day's weather comes from the archive instead of showing 0°. Switching days quickly no longer shows the previous day's weather, and late search answers no longer land in the wrong day. (#2541, #2610)
- With hotel bookends on, a road trip day no longer shows tonight's hotel in the middle of its stops. Road trip routes are no longer turned away when two requests arrive at once. (Closes #2546, #2611)
- The public transit search always offers the day's accommodation as From and To. (Closes #2538)
- A leg's time zone in the day plan is now a globe with a tooltip, so the route beside it is no longer cut off. (#2557)
- An image opened in Files shows above the top bar, PDF and document previews fill their dialog, and long Collab link titles wrap. The right-click menu works with Escape and the arrow keys and closes when the page moves. (#2438, #2541, Closes #2550, #2610)
- Select all in the Immich photo picker takes every photo in the range, large imports no longer stop at 1,000 photos, and photos arrive in the order they were taken. (#2509)
- Place autocomplete and search look first where the plan map is looking, on desktop and phone, and fall back to the day and the trip when the view is too wide. On an install that searches through OpenStreetMap, results are ranked near the trip too. (#2650, Closes #2620)
- Place suggestions name their town in your language and the country, where they used to read "福岡市博多区, JP". A place found twice is listed once, and OpenStreetMap results show their town and country too. (#2650, Closes #2592)
- A pasted Google Maps share link puts the place on its pin instead of the centre of the map view around it. (#2650, Closes #2635)
- Road trip mode, the Dawarich trail and the route overview are saved to the account for each trip, so they follow you to another tab, browser or device. (#2650, Closes #2639)
- In road trip mode, a hotel that is also planned as an earlier stop on its check-in day no longer pushes that stop and the places after it onto the next day. The night is the visit that ends the day, or else the booking's own stop. (#2650, Closes #2636)
- An alternative route picked in the road trip, or a drive bent there by hand, is now what the day route, the phone planner and the route overview draw and measure, instead of the default road. (#2650, Closes #2580)
- A place with an imported GPX or KML track no longer gets a second road drawn beside the track. The day route runs to the start of the track and carries on from its end, on the map, the day list, the phone timeline, the route overview and the PDF, whose map now draws the track. (#2650, Closes #2600)
- Dragging a transport or another timed booking in the day plan no longer reshuffles the stops. A booking dropped where its time does not fit goes back to its time alone, a booking moved within a day no longer jumps back after an edit, and bookings a collaborator moves show at their new spot in every open list. (#2650, Closes #2631)
- A booking pinned to a stop on another day shows only at that stop instead of on two days. A stay booked by another member, a plugin or an import shows in the planner without a reload. (#2650, #2604)
- Undoing a place delete brings the place back with all its details and visits. When a booked night, expenses, file links or an uploaded picture went with it, undo is not offered. Taking a stop off a day or clearing a day now undoes with the visit details too. (#2650, #2604)
- Cards over the map keep Remove from Day and Edit clear of the map's layer switch, and in a wide window the Bookings tab shows its full name instead of "Book". (#2650, #2604)
- A place photo whose cached file went missing shows again in the place lists instead of a question mark. Password managers no longer fill in a place's phone and email fields. (#2660)
- The map's category search no longer brings car parks for Nature & parks, furniture stores for gardens or barbers for bars. It only shows places of the category itself. (#2681, Closes #2663)
- A day's route no longer stays as straight lines between the stops when the routing server is busy. It waits and asks again. (#2681)
- The hover label on the vector maps uses the app's font and goes away again when the pointer leaves a pin or the map moves. The distance between two nearly opposite points on the globe is half the globe instead of NaN.
Trips, bookings and costs
- Dashboard trip counters and upcoming bookings refresh after a trip is created, copied, moved to new dates, archived or deleted. (#2650, #2604)
- The trip form clears its last error, such as "Title is required", as soon as you edit. The date field's format hint follows your language, and a refused archive, delete or copy says why. (#2650, #2604)
- A browser that reports no time zone no longer crashes the dashboard. (#2737, Closes #2694)
- The desktop currency widget always shows the rate for the currency picked last.
- If an end time is before the start time on the same day, the booking dialog shows a warning. Deleting a booking with a linked expense says the expense goes too, and deleting a day says its bookings keep their date. (#2650, #2604)
- On desktop, a booking with a start time but no day keeps the time without a date, as on the phone. It used to take today's date and land on day 1. (#2650, #2604)
- Switching an edited flight or train to a car no longer brings back stops from an earlier booking. A booking moved onto another day leaves no drag data behind, and an imported booking with source files saves and opens its expense.
- Saving an expense no longer drops the payers and shares of people who left the trip, so its total stays as it was. They are named in the lists with their balance. A copied trip keeps every expense total without naming people who are not on it. (#2650, Closes #2604)
- In won, yen and other currencies without decimals, Settle up works in whole amounts, so the balances add up to zero and Settle clears its row. Amount fields take only the currency's decimals, and amounts are grouped in the currency's format. (#2650, #2604)
- The outstanding card no longer says "You're all settled up" while a payment is still open. A custom split shows its suggested shares as a faint example instead of looking like typed values. (#2650, #2604)
- An expense made from a booking is dated on the booking's day. A payment recorded with Settle or Settle all is listed under the day it was made, also east of UTC. (#2650, #2604)
- Deleting a guest who paid for an expense or is part of a recorded payment is refused, with a message saying to change the payer or delete the payment first. In every other case their share goes to the others in each split, custom and receipt splits included, so the balances still add up to zero. (#2650, #2604)
- On the phone, a ticket split keeps the share of everyone a receipt line names.
- For screen readers, the edit, delete and undo buttons in Costs name their expense or payment. Settle up rows and their Settle button name who pays whom, searchable pickers read their search field as Search, and the public link toggles say whether they are on. (#2650, #2604)
- The AI booking import joins flights only on a real layover and puts a total shared by the whole booking on the first flight instead of on every leg. It reads the end of a long confirmation, warns when the middle was skipped, and accepts an Anthropic Messages gateway as its base URL. (#2660, Closes #2651, #2652, #2653, #2655)
- The AI booking import can be given a longer answer with
LLM_MAX_OUTPUT_TOKENS. An answer cut off at the limit now says so instead of reporting no reservations. (#2681, Closes #2677) - Planned public transit connections no longer appear under upcoming reservations on the dashboard. The Files row of a place lists its hotel booking's files and the files linked to its stop. (#2660)
- A file moved to the trash from the file manager no longer keeps showing on the Collab note it was attached to.
- A public trip link shows how long each stop lasts from its start and end time, instead of one hour on every place. (#2681, Closes #2676)
- Place and day descriptions are rendered as Markdown in the PDF export and on the shared trip page. (#2737, Closes #2692)
- A quoted message in the Collab chat wraps to two lines instead of pushing its message past the edge of the chat. (#2761)
Collections, Journey, Atlas and Vacay
- View Collection in a list invite notification opens the invite ready to accept, on phone and desktop. This also works with no lists of your own, where it used to show "Start your first collection". (#2650, Closes #2645)
- All saved in Collections no longer asks for every list at once on each update, which could run the page out of memory with many lists or while MCP saved places one by one. The lists and their marker photos load a few at a time, and a burst of updates reloads once. (#2650, Closes #2559)
- A collection's map opens on all of its places, clear of the label bar and the map buttons, and frames them again when you switch lists. (#2765)
- Moving a place out of a shared list needs the same role as deleting it, on desktop and phone as well as through the API and MCP. (#2650)
- Emptying the location field of a journey entry removes the location instead of snapping back. (#2650, Closes #2615)
- The dashed line between journey entries shows on every journey map, full screen and the public page included. (#2650, Closes #2606)
- Photos in a journey's gallery can be deleted on touch screens too. A delete asks first and says the photo also leaves every entry it appears in. (#2650, Closes #2593)
- Cancelling a journey entry without changes no longer asks about unsaved changes. (#2660)
- Journey entries take their place in the day by their time. A dismissed trip suggestion on the Journey page stays dismissed after a reload, and hiding suggestions no longer throws when the preference cannot be saved. (#2681, #2670, Closes #2679)
- A journey card's year comes from its trip's dates, and a trip over New Year shows both years. (#2737, Closes #2685)
- The desktop gallery's Upload button counts the files up again while they upload, and a failed entry save on the phone says so instead of failing silently.
- Removing the last region of a country in the Atlas no longer unmarks the country when you marked it visited yourself. (#2650, Closes #2597)
- When a trip's dates move, the owner's leave days in Vacay move along as one block, also in a plan the owner joined. A day that would land on a blocked weekend, a whole company holiday or existing leave is dropped, and editing a trip no longer creates a Vacay plan for an owner who has none. (#2650, #2604)
- A failed delete in Vacay is no longer reported as a holiday API error. The desktop calendar no longer fetches the trips again on every refresh, and a failed user load in the invite and share dialogs no longer shows an outdated list.
Phone
- Editing a bus, car, taxi or ferry no longer wipes the price of its expense. Many smaller spots where desktop and phone behaved differently now both take the working path. (#2628)
- Among those spots: pasted coordinates survive the next search pick, tapping a search suggestion no longer keeps the previous pick's address, a road trip stop popup shows its own answers, and Collab note attachments and category colours match the desktop. (#2628)
- A phone turned sideways stays in the phone layout instead of switching to the desktop planner and losing an open sheet. (#2611)
- Files attached while editing a booking or transport are uploaded on save. Booking, transport and place forms ask before throwing away what was typed. (Closes #2534, #2610)
- Reopening a trip selects a day again, a long unbroken text in a note no longer widens the card, and the map compass sits above the satellite switcher. (#2552, #2576, #2564)
- Booking and transport cards show their day's date beside the day's title, so a long title no longer hides it. On a trip without dates, every booking view shows the booking's own date. (#2650, Closes #2590)
- Each leg of a multi-leg train or flight shows its own number, seat, platform and times. (#2737, Closes #2701)
- The Transports tab shows a booking's notes on its card. (#2681)
- The account menu shows the TREK version as a footer. (#2650, Closes #2581)
- Notification toggles save only the switch that was tapped, and a failed toggle in admin no longer undoes a later one. The addon list shows the Collab and AI Parsing icons, Update all updates plugins one after another, the release history no longer skips a page, and the GitHub and About links point at liketrek/TREK. (#2628)
Admin, MCP and self-hosting
- A Google Maps, Unsplash or Amap key set through an environment variable shows as read-only in Admin > Settings and names the variable.
PLACES_API_KEYfor the Google key is now documented. (#2500) - Writes through MCP and plugins update every open screen as the app does, for places, bookings, stays, packing, budget, to-dos, road trip vias, journeys, the Atlas, Vacay and collections, a deleted booking's expense included. An invite for a trip that does not exist answers 404. (#2523, #2632)
- Chat, note, invite and packing notifications name the person who acted by their username.
- The Helm chart quotes every Secret
stringDatavalue and documents whatexistingSecretis read for. A changedPORTno longer breaks the health check, and the probes wait for a slow start. (Closes #2544, #2545, #2573, #2610) - Idle connections are kept open longer than Traefik's upstream timeout, so a default Traefik setup no longer answers some requests with a 502.
- In AI Parsing, listing and pulling local models sends the saved API key, so an Ollama behind an auth proxy answers, and the key only goes to the saved address. A failed list shows the server's reason, a rejected key included, and servers such as LM Studio or vLLM list their models too. (#2650, Closes #2649)
- Settings > Integrations is always there on desktop, even with every addon off, so API keys can be created on a fresh install. The wiki says where to find it. (#2650, Closes #2561)
- A stray space in
NODE_ENV="production "no longer leaves every page answering "Cannot GET /".NODE_ENV,LOG_LEVELandDEFAULT_LANGUAGEare trimmed at start, with a warning. (#2650, Closes #2565) - Admin > Users shows when each user was last active, by signing in or by using TREK, and keeps the list and its online dot current while it is open. (#2660)
- On a demo instance, the hourly reset no longer loses the covers, photos and files a visitor deleted during the hour, and the demo account can no longer upload journey photos, videos and covers, collab note files or chat images. (#2763)
- Document sync with Synology accepts valid credentials again. A failed connection test shows its whole message with the reason. (#2681, Closes #2666)
- The default map template in Admin > User Defaults offers the Amap presets users can already pick. The photo provider badge follows the live status check, a failed provider test names the provider and the reason, and notification settings show an error when they cannot load.
- A failed Load more in the desktop release history keeps the list and can be retried.
- The plugin SDK's validator checks
apiVersionand the manifest rules exactly as an install does. A manifest the host would refuse no longer passes the SDK's validation.
Security
-
A member another member removed from a trip can no longer get back in through the trip's invite link. Before, removing someone only deleted their membership row, and the link checked nothing but its own token, so anyone who kept it could rejoin. TREK now notes who was removed. The link refuses them on preview and on accept, whether it is the old link or a regenerated one, and the join page tells them they were removed instead of showing the join button. Adding them back by name, through an invite bound to that trip, or through a plugin acting for a member manager lifts the block. Members who leave a trip on their own are not affected and can still use the link. (GHSA-wr4c-964p-39jg, #2736)
-
An expense can no longer be linked to a booking or place from another trip, whether through the REST API or a plugin. Every ID the request names must exist and belong to the same trip. (#2523, #2632)
-
A stay can no longer be pointed at a place or day of another trip through MCP. The MCP tools now run the same trip checks as the REST routes. (#2523, #2632)
-
Each sign-in is now its own server-side session, so a session can end before its token runs out. Before, a session was only a signed token: logging out just cleared the cookie, and a 30-day "remember me" token stayed valid wherever a copy of it had ended up. Logging out now ends that session on the server, and the token is refused from then on. (#2617)
-
Changing your password ends all your other sessions at once, and the device you changed it on gets a fresh one. A password reset, an admin setting a password,
reset-admin.jsand deleting the account end every session. Turning off two-factor sign-in ends every session except the current one, and so does an admin clearing a user's two-factor sign-in. (#2617) -
Updating signs nobody out. A token from before 5.0.0 keeps working until it expires or the password changes, and on its next renewal it becomes a tracked session. A session that has been ended stays ended. An old token cannot bring it back after the nightly cleanup. (#2617)
-
A password change made with a Bearer token no longer leaves an unused extra session in the session list. (#2617)
-
On a demo instance, visitors share one demo account, so they can no longer see each other's devices or sign each other out. For the shared demo account, the session list shows only the visitor's own session, and ending other sessions is refused. Logging out still ends the visitor's own session. (#2617)
-
Plugins now receive only the published fields of trips, places, days, bookings, packing items, files, expenses, assignments and users. Before, they got whatever the query returned, mostly whole rows with only a few secrets removed, so every column a later migration added reached every plugin with read access. A trip's calendar feed token is never sent. A new column stays hidden from plugins until it is deliberately published. (#2617)
-
A plugin's own database queries now have a time limit of 2 seconds, checked between rows and between the statements of a batch or script. A query that runs longer is stopped, and a transaction is rolled back as a whole. Before, a slow query could block the whole server for as long as it ran. (#2617)
-
Every outbound request that goes through the SSRF guard now has a time limit and a size limit. This includes the Synology thumbnail read and the photo download for place details. The server waits up to 30 seconds for an answer and accepts at most 64 MB unless a caller sets a tighter limit. Before, such a request could wait five minutes and load a response of any size into memory.
-
Many dependencies are updated past their security advisories: proxy-addr (a critical IP spoofing advisory), brace-expansion, source-map-js, nodemailer, multer, undici, follow-redirects, body-parser (which a compressed request body could hold up), fast-uri, ip-address, DOMPurify (three critical advisories), zod everywhere it is installed including the copy inside jimp, and the MCP SDK with its Hono web server. The fixed versions are held as minimums at the repository root, so a regenerated lockfile can no longer quietly bring back an affected version. (#2563, #2614, #2717)
-
maplibre-gl is updated to 6.15, past GHSA-jrc7-96c5-q579, a cross-site scripting advisory for the sanitizer of the map attribution. TREK had patched that sanitizer itself before, and
npm auditno longer reports it. Maps on a device without WebGL2, which maplibre-gl 6 needs, are drawn with Leaflet. (#2758) -
gosu in the container image is now built with Go 1.26, which fixes the ten Go standard library CVEs Docker Scout reported for the image.




