Skip to content
Draft

v5.0.0 #2499

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
5584d28
refactor(help): register a screen from one description, and fix the d…
mauriceboe Sep 21, 2026
431eb88
feat(help): pictures and translations for the trip's places column
mauriceboe Sep 21, 2026
72b32c6
docs(wiki): a page for the help center
mauriceboe Sep 21, 2026
1e9b23c
fix(help): the corrected places texts in the other languages too
mauriceboe Sep 21, 2026
1f01447
fix(collab): the expand button on a note showed its own translation key
mauriceboe Sep 21, 2026
d3a9e00
test(help): find the fold toggle inside its own row in the switcher
mauriceboe Sep 21, 2026
cb6aeb7
test(members): stop the location stub from swallowing the request it …
mauriceboe Sep 21, 2026
30a7cfd
feat(help): the English texts for the ten screens of a trip, and four…
mauriceboe Sep 21, 2026
0ed0d98
feat(help): ten more screens of a trip, registered with their guide s…
mauriceboe Sep 21, 2026
1a5a8a9
feat(help): translate the Collab block into all locales
mauriceboe Sep 21, 2026
e7db35b
feat(help): translate the Lists and Bookings blocks into all locales
mauriceboe Sep 21, 2026
3c805e2
feat(help): translate the Costs and Transports blocks into all locales
mauriceboe Sep 21, 2026
821a103
feat(help): translate the Road Trip block, and parity is green again
mauriceboe Sep 22, 2026
d2e3520
fix(help): the corrected sentences in the other languages too
mauriceboe Sep 22, 2026
e9393e9
fix(help): a duplicated trip outlived its guide and broke another screen
mauriceboe Sep 22, 2026
64b1908
fix(help): the locators the whole suite in one database showed up
mauriceboe Sep 22, 2026
f6b2880
fix(help): three more the whole suite showed up
mauriceboe Sep 22, 2026
13017b5
fix(help): the undo guide needs the day it puts a place on to stay open
mauriceboe Sep 22, 2026
05b453b
fix(help): the collection helper belongs beside the scripts, not insi…
mauriceboe Sep 22, 2026
168cd74
fix(help): three the third full run showed up
mauriceboe Sep 22, 2026
dbc369b
fix(help): the kind disc answers to its own label, and so does the ro…
mauriceboe Sep 22, 2026
e8637f7
fix(help): the leg mode lands when the menu closes, not when one icon…
mauriceboe Sep 22, 2026
0f28c92
fix(files): the image lightbox renders through a portal
mauriceboe Sep 22, 2026
b7dcb58
chore(i18n): drop the catalogue entries nothing renders
mauriceboe Sep 22, 2026
33b65ab
fix(i18n): two strings the locales had wrong
mauriceboe Sep 22, 2026
b1528b6
docs(wiki): a link can be edited now
mauriceboe Sep 22, 2026
4185142
feat(help): guides for what TREK talks to, and a seed that follows th…
mauriceboe Sep 22, 2026
c4d436b
feat(help): translate the new guides into all locales
mauriceboe Sep 22, 2026
8aa9e30
feat(help): every picture from one run
mauriceboe Sep 22, 2026
055c3ae
feat(help): readable rings, real documents and imagery in the pictures
mauriceboe Sep 22, 2026
3b05a59
fix(help): the days guide shows deleting a day and adding one with a …
mauriceboe Sep 24, 2026
20e912d
fix(help): the document sync guide speaks for every store, not only N…
mauriceboe Sep 24, 2026
79cd309
feat(login): an OIDC-only instance shows the way to the IdP, not a form
mauriceboe Sep 24, 2026
8906b66
feat(settings): set the Google Maps key through PLACES_API_KEY
mauriceboe Sep 24, 2026
9b843be
feat(i18n): add Azerbaijani (az) translation
shakirgv Sep 24, 2026
33aa1cd
feat(i18n): bring the Azerbaijani translation up to date with dev
mauriceboe Sep 24, 2026
9263421
feat(i18n): add Estonian (et) translation
Jaano Sep 24, 2026
ffa085a
feat(i18n): bring the Estonian translation up to date with dev
mauriceboe Sep 24, 2026
80502dc
feat(i18n): add Slovak (sk) translation
pipozzz Sep 24, 2026
3c036ea
feat(i18n): bring the Slovak translation up to date with dev
mauriceboe Sep 24, 2026
ba9936f
feat(i18n): add Thai (th) translation
chondaen12 Sep 24, 2026
b7f7770
feat(i18n): bring the Thai translation up to date with dev
mauriceboe Sep 24, 2026
bb5c5dc
docs: TREK ships 27 languages now
mauriceboe Sep 24, 2026
196dc12
feat(mobile): place details block in the place editor
pipipiper Sep 22, 2026
7ce3175
feat(settings): every date picker starts its week on the day you pick
mauriceboe Sep 24, 2026
650451b
feat(notifications): Web Push delivers notifications to every device,…
mauriceboe Sep 24, 2026
c7c9ba2
fix(journey): select all takes every photo in the range and imports k…
mauriceboe Sep 24, 2026
1727732
feat(plugins): plugins can add POI categories to the map and answer them
mauriceboe Sep 25, 2026
2a8071f
feat(plugins): search plugins can answer the place search as you type
mauriceboe Sep 25, 2026
5c312a8
feat(packing): print, PDF and Markdown/CSV export of packing lists
mauriceboe Sep 25, 2026
dc60f39
feat(ui): Costs bar like the other tabs, desktop packing list in the …
mauriceboe Sep 25, 2026
1f79776
feat(todo): To-Do in the look of the packing list, detail pane always…
mauriceboe Sep 25, 2026
8864edd
feat(budget): link existing expenses to bookings and places, several …
mauriceboe Sep 25, 2026
287b848
fix(budget): show the link controls on an explicit null check
mauriceboe Sep 25, 2026
a0d89ab
fix(planner): transport edit window can delete the booking
Sep 26, 2026
a5745fd
fix(ssrf): connect past a link-local DNS record instead of refusing t…
mauriceboe Sep 25, 2026
83d591d
fix(db): keep SQLite temp files in memory so trips can be deleted (#2…
mauriceboe Sep 25, 2026
c9dfe9c
fix(pwa): recover from a dead chunk and a broken precache after an up…
mauriceboe Sep 25, 2026
c5e405c
fix(share): only call a share link expired when the server says so (#…
mauriceboe Sep 25, 2026
5d4178d
fix(map): open a place from its pin after the map was dragged (#2504)
mauriceboe Sep 25, 2026
62f8b0d
fix(mobile): pick the plan timeline's hotel legs by what the route dr…
mauriceboe Sep 25, 2026
8b6a8d3
fix(mobile): show the drive from a flight's arrival airport in the pl…
mauriceboe Sep 25, 2026
ae73527
fix(atlas): a place that moves no longer keeps its old country (#2527)
mauriceboe Sep 25, 2026
6ed2561
fix(notifications): show the header logo in Gmail and Outlook (#2507)
mauriceboe Sep 25, 2026
44a12e2
fix(costs): read an expense entered in the display currency as it was…
mauriceboe Sep 25, 2026
626adea
fix(journey): read GPS and the EXIF time offset from uploaded photos …
mauriceboe Sep 26, 2026
99d7fb7
chore(notices): the release notice points at 4.3.3
mauriceboe Sep 26, 2026
d1dc854
fix(costs): leave out an expense no rate is known for instead of coun…
mauriceboe Sep 26, 2026
6c0d08a
Merge branch 'main' into fix/v4.3.3-dev
mauriceboe Sep 26, 2026
706c6c3
Merge pull request #2531 from liketrek/fix/v4.3.3-dev
mauriceboe Sep 26, 2026
b1c05bc
feat(llm-parse): read a photo, as a booking or as a receipt in Costs
Rem7474 Sep 24, 2026
237f42a
fix(llm-parse): harden photo reading and finish the receipt scan
mauriceboe Sep 26, 2026
acd0d65
feat(reservations): desktop bookings and transports in the phone's look
mauriceboe Sep 26, 2026
0dd07be
feat(planner): bring the plan tab and every trip dialog into the new …
mauriceboe Sep 27, 2026
9f5e332
test(reservations): pick the confirm button without Array.at, which t…
mauriceboe Sep 27, 2026
cb7014b
feat(costs): table view, and the wiki and help center for the new tri…
mauriceboe Sep 27, 2026
950029c
fix(weather): read a past day of the day details from the archive
mauriceboe Sep 27, 2026
33b4407
fix(weather): spell the German descriptions with their umlauts
mauriceboe Sep 27, 2026
350a144
fix(ui): full-height document previews, and tooltips only on keyboard…
mauriceboe Sep 28, 2026
c88f9a4
fix(i18n): labels the translators flagged, and two dashes in the UI
mauriceboe Sep 28, 2026
146fe4a
docs(help): the trip screens' guides for the new layout, with new pic…
mauriceboe Sep 28, 2026
af9710c
docs(wiki): the pictures that were missing, and the follow-ups of the…
mauriceboe Sep 28, 2026
3901aec
feat(trips): Share and Save to list in the new dialog look
mauriceboe Sep 28, 2026
21c068e
fix(trips): the Share dialog sits in the middle of the window like th…
mauriceboe Sep 28, 2026
bbf8d94
feat(share): the public trip page in the planner's design
mauriceboe Sep 28, 2026
9064ee5
test(share): the map test's page hook knows the folded days and the m…
mauriceboe Sep 28, 2026
acd003e
feat(dialogs): Vacay, Collections, Atlas and Journey in the new dialo…
mauriceboe Sep 28, 2026
2c486e6
fix(journey): the Studio export dialog in the new look, and the Atlas…
mauriceboe Sep 28, 2026
fe93df7
docs(help): new pictures for Collections, Vacay, Atlas and Journey
mauriceboe Sep 28, 2026
6f61b66
fix(share): the day line on the shared map asks for a picked day as a…
mauriceboe Sep 28, 2026
272df55
feat(packing): sort the packing list A to Z
mauriceboe Sep 29, 2026
26910ac
fix(packing): hand the list's unawaited calls to void
mauriceboe Sep 29, 2026
f83201f
fix(helm): quote Secret stringData values
Demisu Sep 27, 2026
6408751
fix(planner): the plan's costs follow the expenses in Costs
mauriceboe Sep 29, 2026
ec06035
fix(collab): a long link title wraps instead of being cut off
mauriceboe Sep 29, 2026
5c7aaab
fix(share): the shared map opens framed on the whole trip, not on a c…
mauriceboe Sep 29, 2026
7b0333a
fix(roadtrip): a booked night no longer shows up mid-day when the day…
mauriceboe Sep 29, 2026
bd5a6cc
fix(cors): the instance's own address no longer trips ALLOWED_ORIGINS
mauriceboe Sep 29, 2026
86243d4
fix(transit): keep the day's hotel in the from/to picks of the transi…
mauriceboe Sep 29, 2026
5f70061
fix(mobile): files attached while editing a booking are uploaded on save
mauriceboe Sep 29, 2026
91be785
fix(planner): a leg's time zone sits behind a globe instead of beside…
mauriceboe Sep 29, 2026
b8f2a86
chore(deps): bump ip-address from 10.5.0 to 10.7.2
dependabot[bot] Sep 29, 2026
22d5d67
chore(deps): bump undici from 7.29.0 to 7.30.0
dependabot[bot] Sep 29, 2026
7d22857
fix(mobile): restore day selection when reopening a trip
sy-records Sep 28, 2026
71a8b24
fix(map): keep the overview frame when the trip is edited
pipipiper Sep 28, 2026
fd5afb0
test(map): opening another trip with the overview on frames that trip
mauriceboe Sep 29, 2026
91dfab3
fix(planner): hand the day plan's unawaited calls to void
mauriceboe Sep 29, 2026
8fd46c4
feat: quality of life sweep from the feature discussions
mauriceboe Sep 30, 2026
f5103d0
test: follow the qol sweep in the e2e schemas and the assertions it c…
mauriceboe Sep 30, 2026
d643557
fix(journey): two quick swipes in the photo viewer turn pages instead…
mauriceboe Sep 30, 2026
e24da67
test: finish the qol sweep follow-up, one footer on the public journe…
mauriceboe Oct 1, 2026
ba3dc65
feat(public-api): next_trip in /api/v1/stats counts down to the next …
mauriceboe Oct 1, 2026
1fee38e
feat(oidc): OIDC_USERNAME_CLAIM picks the claim a new account's usern…
mauriceboe Oct 1, 2026
81ebc31
build(docker): OCI labels on the images, so Renovate links an update …
mauriceboe Oct 1, 2026
f7782b9
feat(planner): the places search also finds the description and the n…
mauriceboe Oct 1, 2026
b4f0a6d
feat(pdf): transport notes in the trip PDF, with a switch in the preview
mauriceboe Oct 1, 2026
104f0ee
feat(costs): each expense row shows who it is split between, with the…
mauriceboe Oct 1, 2026
c80ee6b
feat(planner): reach a hotel's booking from the plan, not only its place
mauriceboe Oct 1, 2026
44cc596
feat(dialogs): the focus starts inside a dialog and Tab stays there
mauriceboe Oct 1, 2026
542a57b
feat(auth): password rules checked while typing, with the server's ow…
mauriceboe Oct 1, 2026
9f0fe45
feat(planner): the panel widths can be dragged with a finger, also on…
mauriceboe Oct 1, 2026
48f28b4
feat(collections): navigate to a saved place from its sheet on the phone
mauriceboe Oct 1, 2026
ba0cc33
feat(mobile): today marked on the day rail, and a button back to it
mauriceboe Oct 1, 2026
94447fa
test(public-api): the other stats suites stub next_trip too
mauriceboe Oct 1, 2026
52934a8
fix(mobile): the map compass stands above the base-layer switcher
mauriceboe Oct 1, 2026
750b178
test(client): follow the password checklist and the labelled modal cl…
mauriceboe Oct 1, 2026
885896a
feat(files): FILE_UPLOAD_LIMIT_MB sets the upload limit for files and…
mauriceboe Oct 1, 2026
5138358
feat(net): the SSRF-guarded requests go through HTTP_PROXY / HTTPS_PR…
mauriceboe Oct 1, 2026
7acf7f5
feat(admin): a daily limit on Google API calls
mauriceboe Oct 1, 2026
f4626c9
feat(notifications): admin defaults for users, and channels blocked f…
mauriceboe Oct 1, 2026
1c34a74
feat(calendar): one feed event per leg of a connecting flight or train
mauriceboe Oct 1, 2026
88afdb9
feat(mcp): upload_trip_file tool for adding documents to a trip (#1566)
mauriceboe Oct 1, 2026
a416d41
feat(packing): templates keep weight, quantity and bag; packed and pe…
mauriceboe Oct 1, 2026
855c0a4
feat(settings): optional preferred map app for the navigate button (#…
mauriceboe Oct 1, 2026
3063606
feat(costs): enter a custom split in percent (#1709)
mauriceboe Oct 1, 2026
477f416
feat(journey): set a journey's status by hand (#762)
mauriceboe Oct 1, 2026
a98449d
feat(planner): ask before a stray click throws away an edited place o…
mauriceboe Oct 1, 2026
1f464ce
feat(places): sort the places list by name, rating, age or last chang…
mauriceboe Oct 1, 2026
d1f4dea
feat(pwa): reopen the trip and tab the installed app was in (#1024)
mauriceboe Oct 1, 2026
99c6287
feat(pwa): a relaunch also returns to the plan day it was on (#666)
mauriceboe Oct 1, 2026
8c37597
feat(dashboard): search every trip by title, date or a place on it (#…
mauriceboe Oct 1, 2026
d61d8ca
feat(places): phone, e-mail and opening hours by hand when the search…
mauriceboe Oct 1, 2026
f4d81ea
feat(places): an empty search offers adding the place by hand (#2472)
mauriceboe Oct 1, 2026
f875c85
feat(journey): geotagged photos on the journey's own map, both render…
mauriceboe Oct 1, 2026
81d7022
feat(journey): optionally place an entry where its first photo was ta…
mauriceboe Oct 1, 2026
f9baf33
feat(studio): add photos from Immich and Synology like the journey ga…
mauriceboe Oct 1, 2026
db43372
fix: mark deliberately unawaited promises with void (Sonar S9383)
mauriceboe Oct 1, 2026
8d684b4
fix(journey): the photo-location switch marks its save as unawaited
mauriceboe Oct 1, 2026
b6b4904
feat(bookings): cruises list their ports of call with arrival and dep…
mauriceboe Oct 1, 2026
d694fc6
chore: journey type fields for the test typecheck, prettier on the ne…
mauriceboe Oct 1, 2026
647bb33
fix(costs): centre the amount/percent switch on its hint
mauriceboe Oct 1, 2026
39074f6
fix(places): hours can be typed, and an edited place takes over the l…
mauriceboe Oct 1, 2026
62950ae
test(e2e): hand-made schemas follow the new columns; placing entries …
mauriceboe Oct 1, 2026
1e4cc85
test(calendar): per-leg zones from one endpoint per airport (#2389)
mauriceboe Oct 1, 2026
8f4accc
test(calendar): a test id of its own
mauriceboe Oct 1, 2026
5669f8b
fix(places): e-mail check without a backtracking regex; explicit grou…
mauriceboe Oct 1, 2026
d7bf7f2
fix(background-tasks): no state update after unmount when the feature…
mauriceboe Oct 1, 2026
4bc7c5c
feat(settings): a settings kit in the planner's language; cards, navi…
mauriceboe Oct 1, 2026
788a586
feat(settings,admin): every tab and popup in the planner's design
mauriceboe Oct 1, 2026
56dfd56
fix(settings): stacked rows take no height from their basis; grouped …
mauriceboe Oct 1, 2026
cf3818c
feat(settings): confirmations in the shared dialog, token colours on …
mauriceboe Oct 1, 2026
05b53d0
docs(wiki): bring every page up to the next release; admin settings, …
mauriceboe Oct 1, 2026
c93cf2b
docs(help): new pictures for every screen that changed, guides for th…
mauriceboe Oct 1, 2026
9e475f4
feat(tours): add non-motorized day tour planning
elmocito Oct 4, 2026
c7793a6
fix(email): link notification preferences to settings tab
sy-records Sep 28, 2026
4f2f937
Clarify how the existingSecret really works
oscarcarlsson Oct 2, 2026
a856c68
docs(helm): list PLACES_API_KEY and VAPID_PRIVATE_KEY among existingS…
mauriceboe Oct 4, 2026
562d8c4
merge: update Tours branch to current dev
elmocito Oct 4, 2026
a9c78f6
fix(mobile): prevent layout breaking from long unbroken text in notes
diogormendes Oct 2, 2026
5bcb377
fix(mobile): trim the note wrap classes to one rule and cover the kep…
mauriceboe Oct 4, 2026
b6c3b89
test(planner): pin a weekday in the opening hours inspector test so i…
mauriceboe Oct 4, 2026
a44c966
feat(places): share the rating floor between the lists and the map
EvKoh Oct 3, 2026
66f1160
feat(map): filter trip places from the mobile map
EvKoh Oct 3, 2026
fe5a8a8
fix(map): make the places filter sheet opaque
EvKoh Oct 3, 2026
b551402
docs(wiki): describe the map's places filters
EvKoh Oct 3, 2026
a9f7adf
fix(map): move the tracks filter fallback to the always-mounted plann…
EvKoh Oct 3, 2026
3951e8c
fix(map): announce the places filter control as opening a dialog
EvKoh Oct 3, 2026
db3c9d6
fix(mobile): announce which Show and rating chip is chosen
EvKoh Oct 3, 2026
eee361e
docs(places): say where the map's places filter departs from the lists
EvKoh Oct 3, 2026
3d99e56
test(map): keep the places filter on a road trip's plan map without D…
EvKoh Oct 3, 2026
4b263c8
fix(mobile): align the places browser's filter panel with the map con…
EvKoh Oct 3, 2026
b6115d4
refactor(places): one name for the uncategorized bucket and the categ…
EvKoh Oct 3, 2026
0c2dbdf
test(tours): update planner wiring and stabilize date fixture
elmocito Oct 4, 2026
2ec5ae7
merge: update Tours branch with current Places filters
elmocito Oct 4, 2026
ccaed9f
test(tours): align sidebar fixture with planner-owned filter reset
elmocito Oct 5, 2026
c92478c
feat(tours): align the Tours UI with the planner redesign
mauriceboe Oct 5, 2026
040e6f2
fix(tours): center the empty tour list in the Tours tab like the plan…
mauriceboe Oct 5, 2026
a9f9a23
test(tours): align locale count after copy cleanup
elmocito Oct 5, 2026
af7dbce
fix(tours): prevent duplicate day assignments
elmocito Oct 5, 2026
04c7491
fix(tours): preserve map viewport during route updates
elmocito Oct 5, 2026
8739b4c
fix(tours): restrict permanent deletion to tours workspace
elmocito Oct 6, 2026
411a605
test(planner): stabilize day auto-scroll tests
elmocito Oct 6, 2026
99f3bbf
fix(tours): simplify post-save confirmation
elmocito Oct 6, 2026
a05855e
test(tours): align assignment coverage with row action
elmocito Oct 6, 2026
b1289c6
test(tours): fix assignment test validation
elmocito Oct 6, 2026
9b73ede
fix(tours): preserve viewport when starting a new tour
elmocito Oct 6, 2026
5a249e0
fix(tours): match the delete button to the add-to-day button and use …
mauriceboe Oct 6, 2026
46fcd45
fix(tours): space the tour row actions apart
mauriceboe Oct 6, 2026
de8caa8
Feat/orm : mikroorm (#2416)
jubnl Oct 6, 2026
cb47947
fix production deps
jubnl Oct 6, 2026
c956fe9
Merge dev into feat/tours and port Tours onto MikroORM
mauriceboe Oct 6, 2026
c6b6b83
fix(docker): take the version from the image, not from the container'…
mauriceboe Oct 7, 2026
99263fd
fix(security): refuse an ENCRYPTION_KEY that disagrees with the key file
mauriceboe Oct 7, 2026
71a0af0
fix(db): refuse a database or backup a newer TREK migrated, and keep …
mauriceboe Oct 7, 2026
e7ab0fc
fix(users): delete a user who recorded a payment between two other me…
mauriceboe Oct 7, 2026
63f7eab
fix(auth): match email addresses case-insensitively everywhere
mauriceboe Oct 7, 2026
bfa5125
fix(db): baseline a database from the pre-ORM Tours branch correctly
mauriceboe Oct 7, 2026
e0aedbb
fix(trips): count trip dates in calendar days, the same on REST and MCP
mauriceboe Oct 7, 2026
a8fc93d
fix(notifications): take today from the instance's TZ and catch up mi…
mauriceboe Oct 7, 2026
7e8c9ac
fix(server): give the last six outbound fetches a timeout, and lint f…
mauriceboe Oct 7, 2026
205759e
fix(scheduling): do not start a cron tick while the last one still runs
mauriceboe Oct 7, 2026
f02253a
fix(planner): drop search and day-panel answers that arrive too late
mauriceboe Oct 7, 2026
3f9b751
fix(realtime): open no socket after a logout, and reconnect as soon a…
mauriceboe Oct 7, 2026
f092e7a
fix(offline): a write the server keeps failing on no longer blocks ev…
mauriceboe Oct 7, 2026
38656ee
fix(offline): let the cache drop what was deleted elsewhere
mauriceboe Oct 7, 2026
461a63f
fix(auth): send the queued changes before a logout deletes the offlin…
mauriceboe Oct 7, 2026
8f02337
fix(i18n): hand Intl and the document the real language tag for br an…
mauriceboe Oct 7, 2026
8923918
fix(i18n): send Catalan and Vietnamese notification mails in their la…
mauriceboe Oct 7, 2026
8c3fad5
fix(auth): reset-admin.js ends the account's sessions and matches its…
mauriceboe Oct 7, 2026
a869269
fix(deploy): follow PORT in every probe, wait for a slow boot, and pr…
mauriceboe Oct 7, 2026
76df44d
fix(oauth): purge tokens whose refresh token expired a month ago
mauriceboe Oct 7, 2026
72fbbd5
fix: a trashed note file leaves its note, quieter MCP sweep, bounded …
mauriceboe Oct 7, 2026
c60277c
fix(tours): a tour another member creates is a tour on the phone too
mauriceboe Oct 7, 2026
1a4df59
ci: give every job a timeout
mauriceboe Oct 7, 2026
48f9e7d
perf(db): index every foreign-key column
mauriceboe Oct 7, 2026
094a46a
fix(vacay): stop swallowing a failed delete as a holiday API error
mauriceboe Oct 7, 2026
0a1a509
fix(ui): the context menu answers the keyboard and closes when the pa…
mauriceboe Oct 7, 2026
c3c21fb
fix(client): five loads that catch their own error recover from a dep…
mauriceboe Oct 7, 2026
e4ed4bf
fix(mobile): the booking, transport and place sheets ask before dropp…
mauriceboe Oct 7, 2026
6b037e0
refactor(tours): measure distances with the shared haversine
mauriceboe Oct 7, 2026
40bce55
docs: the key check, the restore guard, the new probes, failed offlin…
mauriceboe Oct 7, 2026
57df945
style: plain punctuation in the new comments and test names
mauriceboe Oct 7, 2026
e6e2706
fix(places): type the tour mark on the single-place row
mauriceboe Oct 7, 2026
bd8e1a2
test(oauth): the module now provides the token retention job
mauriceboe Oct 7, 2026
f64f9e5
fix(client): give the context menu a menu role, wrap the tour filter …
mauriceboe Oct 7, 2026
f7edd84
fix(tours): one tour type catalogue, and no column nothing writes
mauriceboe Oct 7, 2026
e0efa03
feat(tours): tours read and write through the offline core
mauriceboe Oct 7, 2026
e5ceba0
fix(tours): wait for the public Valhalla's turn before every request
mauriceboe Oct 7, 2026
ab343b0
fix(client): a phone turned sideways stays in the phone layout
mauriceboe Oct 7, 2026
588e483
fix(calendar): VTIMEZONE spells out the offset changes of its span
mauriceboe Oct 7, 2026
de128cc
wip(i18n): plural forms through Intl.PluralRules
mauriceboe Oct 7, 2026
ba70ad2
fix(client): spacing and alignment follow the reading direction
mauriceboe Oct 7, 2026
a094f79
feat(client): offer the new version when a release lands during a ses…
mauriceboe Oct 7, 2026
8dca372
ci: run the browser flows and the map bundle check on every change
mauriceboe Oct 7, 2026
254a214
fix(shared): the tour metrics pass the strict shared typecheck
mauriceboe Oct 7, 2026
0126ef3
fix(client): the version notice asks about a change during the sessio…
mauriceboe Oct 8, 2026
d4eccb3
fix(client): three more places follow the reading direction in Arabic
mauriceboe Oct 8, 2026
960520c
test(e2e): the iPad case checks what broke #1432, the guides read tod…
mauriceboe Oct 8, 2026
55697b7
test(db): the legacy step map knows the tour type migration
mauriceboe Oct 8, 2026
bee5008
fix(i18n): every language says one file and five files its own way
mauriceboe Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .github/workflows/close-stale-invalid-titles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
close-stale:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Close stale invalid-title issues
uses: actions/github-script@v7
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/close-stale-wrong-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
close-stale:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Close stale wrong-base-branch PRs
uses: actions/github-script@v7
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/close-untitled-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
check-title:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Flag or redirect issue
uses: actions/github-script@v7
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/docker-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ jobs:
version-bump:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 120
outputs:
version: ${{ steps.bump.outputs.VERSION }}
sha: ${{ steps.bump.outputs.SHA }}
Expand Down Expand Up @@ -68,6 +69,7 @@ jobs:

build:
runs-on: ${{ matrix.runner }}
timeout-minutes: 120
needs: version-bump
strategy:
fail-fast: false
Expand All @@ -92,6 +94,12 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Image metadata
id: meta
run: |
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "created=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"

- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
Expand All @@ -102,6 +110,9 @@ jobs:
no-cache: true
build-args: |
APP_VERSION=${{ needs.version-bump.outputs.version }}
labels: |
org.opencontainers.image.revision=${{ steps.meta.outputs.revision }}
org.opencontainers.image.created=${{ steps.meta.outputs.created }}

- name: Export digest
run: |
Expand All @@ -119,6 +130,7 @@ jobs:

merge:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: [version-bump, build]
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -163,7 +175,12 @@ jobs:
digests+=("mauriceboe/trek@sha256:$(basename "$f")")
done
done
# The labels live on each platform image; the index gets the ones a
# client reads before it picks a platform (#1498).
docker buildx imagetools create \
--annotation "index:org.opencontainers.image.source=https://github.com/liketrek/TREK" \
--annotation "index:org.opencontainers.image.version=$VERSION" \
--annotation "index:org.opencontainers.image.licenses=AGPL-3.0-only" \
-t "mauriceboe/trek:latest-pre" \
-t "mauriceboe/trek:$MAJOR_TAG" \
-t "mauriceboe/trek:$VERSION" \
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
version-bump:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 120
outputs:
version: ${{ steps.bump.outputs.VERSION }}
steps:
Expand Down Expand Up @@ -114,6 +115,7 @@ jobs:

build:
runs-on: ${{ matrix.runner }}
timeout-minutes: 120
needs: version-bump
strategy:
fail-fast: false
Expand All @@ -138,6 +140,12 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Image metadata
id: meta
run: |
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "created=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"

- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
Expand All @@ -148,6 +156,9 @@ jobs:
no-cache: true
build-args: |
APP_VERSION=${{ needs.version-bump.outputs.version }}
labels: |
org.opencontainers.image.revision=${{ steps.meta.outputs.revision }}
org.opencontainers.image.created=${{ steps.meta.outputs.created }}

- name: Export digest
run: |
Expand All @@ -165,6 +176,7 @@ jobs:

merge:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: [version-bump, build]
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -207,7 +219,12 @@ jobs:
digests+=("mauriceboe/trek@sha256:$(basename "$f")")
done
done
# The labels live on each platform image; the index gets the ones a
# client reads before it picks a platform (#1498).
docker buildx imagetools create \
--annotation "index:org.opencontainers.image.source=https://github.com/liketrek/TREK" \
--annotation "index:org.opencontainers.image.version=$VERSION" \
--annotation "index:org.opencontainers.image.licenses=AGPL-3.0-only" \
-t "mauriceboe/trek:latest" \
-t "mauriceboe/trek:$MAJOR_TAG" \
-t "mauriceboe/trek:$VERSION" \
Expand All @@ -218,6 +235,7 @@ jobs:

release-helm:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: version-bump
steps:
- name: Checkout
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/enforce-target-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ jobs:
check-target:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 45
permissions:
pull-requests: write
issues: write
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/lint-prettier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ concurrency:
jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 45
permissions:
pull-requests: write
steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/publish-plugin-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
publish:
if: github.repository == 'liketrek/TREK'
runs-on: ubuntu-latest
timeout-minutes: 45
defaults:
run:
working-directory: plugin-sdk
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
# Scout login can never succeed there.
if: github.repository == 'liketrek/TREK' && github.event.pull_request.head.repo.fork != true
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4

Expand Down
Loading
Loading