Releases: SebboGit/atlas
Releases · SebboGit/atlas
Release list
v1.4.2
Added
- Flight duration on the card — flight cards show the real time in the
air after the flight number ("JL 42 · 13h 50m"), computed by anchoring each
printed time to its airport's timezone. Cross-timezone and overnight flights
come out right; a flight with missing airports or inconsistent times shows
no duration rather than a wrong one.
Fixed
- City lines name the city you'd actually say — reverse lookups (the Plus
Code path) now prefer the search engine whose localized data names the
metropolis, ward-level "cities" defer to their province, and Vietnamese
admin prefixes are stripped ("Thành phố Hà Nội" → "Hà Nội"). Names like
Mexico City stay untouched. - Older entries never got a city — places geocoded before v1.4.1 kept an
empty city for months because their cached result never refreshed. They now
re-resolve once in the background the first time you view them; pins stay
put while the city fills in, and a failed refresh can no longer blank a
working pin.
v1.4.1
Added
- City on hotel, food, and activity cards — cards now show which city a
place is in ("Chiyoda · 2 nights · Garden twin"), resolved automatically
when the place is geocoded. Your own location label still wins: when it
already names the city, no duplicate line appears. Existing entries pick
their city up the next time they re-geocode. - Find location falls back to the address — when a property isn't in
OpenStreetMap at all (common for small hotels), the search now retries with
the entry's address and offers street-level matches, clearly labeled.
Picking one fills the Plus Code but keeps your typed address, which is more
precise than the street that matched it.
Fixed
- Stale pages after navigating or acting — the installed app's offline
cache was serving last-seen data on every in-app navigation: a segment
created by an extraction didn't appear on its tab until a hard reload, and
renaming a document then extracting it visibly reverted the name. Cached
data is now used only when actually offline. - Garbled Vietnamese text broke place search — text pulled from booking
PDFs arrives with letters split apart ("Nguy ễ n" instead of "Nguyễn"),
which silently ruined geocoding for those entries. The split letters are
now rejoined before any search runs.
v1.4.0
Added
- Rename documents — uploaded files often arrive with cryptic
booking-system names. A pencil next to the document title now opens a rename
dialog; the file itself keeps its original name (downloads are unchanged),
and search finds a document by either its new title or the old filename. - Attach documents to itinerary entries by hand — when a document couldn't
be read automatically, it used to dangle with no link to anything. An
entry's detail view now has a Documents section listing every file on the
trip with an attach/detach toggle. Links made by hand are never touched by a
later re-extraction.
Changed
- Finding places by name actually works — geocoding now tries a
name-oriented search engine (Photon) first and falls back to the previous
one (Nominatim), and hotels and restaurants look up by their name instead of
their address. Foreign venues that never resolved before now pin correctly.
One consequence: editing an entry's address no longer moves its pin — use
the Plus Code field or the address picker to correct a misplaced pin.
Fixed
- Broken logo in the installed app when offline — the app's brand images
are now stored for offline use when the app installs, so already-visited
pages no longer show a broken-image placeholder without a connection.
v1.3.2
Fixed
- Installed-app icon kept showing the old, oversized version — 1.3.1 resized
the home-screen icon, but OS icon caches are keyed by URL and held onto the
previous image, so the change never showed. The icon URLs now carry a revision
marker, so reinstalling the app picks up the correctly-sized icon.
v1.3.1
Added
- Quick-nav on the mobile home screen — the phone home page now shows a
compact grid of shortcuts to Trips, Wishlist, Map, and Stats beneath the
next-trip hero, so you can jump to a section without opening the menu. The
laptop layout is unchanged.
Changed
- App icon sits as an inset glyph — the installed-app icon's globe was
filling the whole tile edge-to-edge; it now has a margin so it reads like a
proper home-screen icon. - No bounce at the page edges in the installed app — the PWA no longer
rubber-bands when you scroll past the top or bottom, so it feels more native.
A normal browser tab keeps its pull-to-refresh.
v1.3.0
Added
- Install Atlas as an app (PWA) — Atlas now installs to your phone's home
screen and launches full-screen, without browser chrome. On Android use
Chrome's "Install app"; on iPhone use Safari's Share → Add to Home Screen.
Once installed, a service worker keeps the pages you've already opened
viewable offline, so an itinerary loaded before takeoff is still there on the
plane. Offline is read-only — adding or editing still needs a connection — and
the trip-map basemap isn't cached, so the trip map shows a brief offline
notice while its flight arcs, pins, and country shapes still render. See
ADR-0017.
v1.2.2
Fixed
- Multi-day activities no longer read "Staying" — the quiet continuation
row a multi-day segment shows on each day it spans now words itself by
type: hotels keep "Staying · since …", while activities, transit, and
flights read "Ongoing · since …" — a trek pass isn't somewhere you sleep.
Applies to the itinerary and the trip-map timeline alike; screen readers
hear the same phrasing.
v1.2.1
Fixed
- Itinerary skipped trip days that held no segments — a trip with only a
hotel check-in and a return flight showed "Day 1, Day 2" (Day 2 being the
last day) and counted the pill from those two days. The itinerary and the
trip-map timeline now render the trip's full calendar: every day appears,
the day count reflects the real span, days inside a stay carry the quiet
"Staying" row through to the check-out day, and a day with nothing
scheduled reads "No plans". With a country filter active, days the filter
empties are dropped while day numbers stay calendar-true.
v1.2.0
Added
- Hotel check-in and check-out times — a hotel can now record optional
check-in and check-out times. The check-in shows on the segment card; the
check-out shows on the stay's final day, on the "Staying" continuation row in
the itinerary and the map timeline. The times are display-only — they never
change how a hotel is ordered, which still follows its check-in date.
Changed
- Floating local time for flights — flight times now follow the same
floating-local model as every other segment: stored and shown exactly as the
boarding pass prints them, with the origin/destination airport supplying only
a zone label (e.g.06:00 JST) rather than converting the clock. This
collapses the previous flight-vs-everything-else time split into one model and
keeps morning departures from positive-offset airports — a 06:00 Tokyo flight,
say — on the correct itinerary day. See ADR-0016.
Fixed
- Flight times from boarding passes read an hour or two off — an extracted
local departure double-counted the airport's UTC offset, so an 18:05 CEST
departure displayed as 20:05. Flight times now store and show the printed wall
clock verbatim. Existing skewed times correct themselves when you re-extract
the document. - A same-day hotel check-in could sort before the flight that got you there —
within a single day a hotel check-in now never appears earlier than the last
flight to land that day. - The itinerary and the trip-map timeline could disagree on "today" — near
midnight in a non-UTC timezone the two views could classify a different day as
today, and so collapse the past differently. They now read the same clock. - Extraction reported "Ollama not configured" on a working setup — the app
checks that Ollama is reachable before handing extraction to the worker, but
only the worker had the connection settings. The app now reads them too, so
extraction runs instead of refusing. - The background worker logged a spurious missing-basemap warning on every
boot even when the map rendered fine. The worker never serves map tiles — that
is the app's job — so the misplaced check was removed.
v1.1.4
Fixed
- Uploading documents larger than 1 MB — uploads failed with a generic
"Something went wrong." Server Actions cap their request body at 1 MB by
default, well below the 20 MB storage limit, so most boarding-pass and hotel
PDFs were rejected before they ever reached storage. The cap now tracks the
storage limit. - Undated notes and transit were invisible — a note or transit segment
saved without a date appeared nowhere: no tab lists those types, and the
itinerary showed only dated segments. They now surface in an "Undated"
section on the itinerary.