Fork me on GitHub
Movie Planner

Changelog

What's changed, and when — internal changes (dependency bumps, CI, tests) are left out.

v1.34.1

  • calendar turn the heatmap on its side on phones so it needs no sideways scroll #919
  • wizard load the log wizard on the first click, not on every page #923

v1.34.0

  • calendar show went-or-not marks, weekday labels and a weekend tint #915

v1.33.0

  • log say why a viewing was logged without OMDb metadata #899
  • omdb stop re-sending titles OMDb already answered without completing #904
  • overview include entries missing a director or synopsis in Refresh all #897
  • venues a search that is no longer wanted leaves no trace #902
  • venues show the address search results for what was typed last #901
  • wizard give way to the picker after logging, and keep the logged viewing #906

v1.32.0

  • import offer the synopsis, seat and OMDb extras back on a uid match #889
  • geo tell a failed address lookup from no match #892
  • omdb tell OMDb refusing a request from OMDb having no match #891

v1.31.2

  • omdb refresh an entry from its own IMDb ID, not by looking the title up #882

v1.31.1

  • export carry the synopsis, seat and OMDb extras through export and import #878
  • movie details make Refresh metadata and Search OMDb fill in what's missing #880

v1.31.0

  • venues refresh the maps a venue's viewings lost #872

v1.30.2

  • export carry the venue's location through export and import #868

v1.30.1

  • purge delete each event at the address the server listed #862

v1.30.0

  • import show skipped IMDb rows apart from failed ones #858

v1.29.0

  • import skip non-film rows in an IMDb ratings export #856

v1.28.0

  • import read an IMDb ratings.csv #853

v1.27.0

  • import read a Letterboxd diary.csv #850

v1.26.0

  • import add a dropzone, name the target calendar and offer a sample CSV #848

v1.25.0

  • import show progress and wait out a 423 or 429 when importing #846

v1.24.1

  • settings make the purge one request per viewing and say why one failed #840

v1.24.0

  • settings add a button that purges every viewing from the calendar #836

v1.23.2

  • import accept an exported row with no medium #831
  • perf reserve the site nav's height so the home page doesn't shift #829

v1.23.1

  • perf preload the Inter font so the home page doesn't shift #826

v1.21.0

  • cache clear the viewings cache and the service worker's cache #765
  • log stop parsing emails in the web app #792
  • settings add a button to clear this browser's local cache #765
  • caldav read and write viewing times as wall-clock times #757
  • export write a release year the import will take back #753
  • import compare dates as the viewer's local date #760
  • import validate rows the way the CLI and the schema do #753
  • log write the same Cinema spelling from the Pathé path as the form #755
  • medium group and match mediums whatever their casing #755

v1.20.0

  • ui give disconnected visitors a way forward #709

v1.19.0

  • caldav show cached viewings first, refresh them in the background #715

v1.17.0

  • ui collapse the optional connect settings and shorten the intro #678

v1.14.0

  • webmcp expose log/edit/delete/search as WebMCP tools #669

v1.13.1

  • location surface a rejected picklist write instead of swallowing it #656

v1.13.0

  • venue offer history-only venues directly in the Venue select #647
  • venue carry over known location when promoting a history venue #658
  • venue keep the history-checklist checkbox at a real 16px #662

v1.12.3

  • changelog recognize entries from merge-commit-strategy PRs #649

v1.12.2

  • omdb show a loading status and bounded scroll for a larger search #623

v1.12.0

  • venue bulk-add venue names already seen in viewing history #636

v1.11.0

  • omdb sort the search picker's candidates by year or title #633
  • log viewing wizard show the matched poster, not just text #635

v1.9.4

  • omdb accept a pasted IMDb ID or URL directly in search #629

v1.9.3

  • omdb follow totalResults to search past OMDb's first page #624

v1.9.1

  • share stop the shared-link privacy check false-positiving on "me" #613

v1.9.0

  • log open a search-and-select-first wizard from the header button #611

v1.8.0

  • medium add a Mediums page mirroring Venues, and link medium from details #609

v1.7.0

  • venue turn Add/Edit venue into a real dialog, like medium #607

v1.6.0

  • medium make medium a structured picklist, like venue #605

v1.5.1

  • log open Search OMDb as a real popup, not an easy-to-miss inline reveal #597

v1.5.0

  • log let a visitor search OMDb and pick a match before logging #594

v1.4.0

  • pwa register a service worker for real installability #591

v1.1.1

  • movie details give the OMDb search picker a real Cancel button #581
  • movie details make Back to overview return to the referring page #582

v1.1.0

  • missing data add a missing-data overview page #576

v0.111.0

  • calendar order the heatmap's year grids newest first #569

v0.110.1

  • calendar stop heatmap hover popup from scrolling the page to the top #566

v0.110.0

  • overview group Released Year/Month under one shared fieldset #564
  • details make Released plain text, with the day of week added #562

v0.109.0

  • attribute pages add per-value pages for rated/keyword/released year/month #558
  • ui give a very short blocked-time bar a minimum visible width #561

v0.108.0

  • nav underline and mark aria-current the page a visitor is on #557

v0.107.0

  • overview show a spinner and dim the row during Delete/Refresh #554

v0.106.0

  • overview remove the pointless "View on map" pin from the venue column #552
  • footer add the missing space between "Licensed" and the GPL link #550
  • nav render a detail page's breadcrumb value synchronously, from the URL #551

v0.105.4

  • nav link a detail page's breadcrumb crumb, and reflect its value in the title #541

v0.105.3

  • overview dedupe the two full-history CalDAV requests an unfiltered load fires #538

v0.105.2

  • details link a viewing's venue to its dedicated page, not the overview #532

v0.105.1

  • details dedupe splitMultiValue so a repeated chip value doesn't crash the page #530

v0.105.0

  • attribute pages add per-value pages for director/actor/genre/country/language chips #523

v0.104.0

  • venue edit an already-known venue's structured data #521

v0.103.0

  • venue structured venue picklist with select + Add venue form #518

v0.102.0

  • venue add a dedicated per-venue page #515

v0.101.0

  • nav remove the standalone /map page #512

v0.100.0

  • overview tier filters, wrap them in a card, and move map below results #507

v0.99.0

  • details surface TMDb-derived collection, certification, budget, popularity and keywords #508

v0.98.0

  • docs share this app's own header/footer with docs pages #505

v0.97.0

  • venue trim the venue filter/picker suggestions to name+city #499

v0.96.0

  • venue trim display to name + city, drop address/country #496

v0.95.0

  • chrome restructure top nav — header button + Settings hub #480

v0.94.0

  • tmdb fetch full TMDb data set wherever imdb_id is resolved #481

v0.93.0

  • chrome add a logo to the left of the header title #478

v0.92.0

  • activity log derive log entries by diffing CalDAV state, not just self-made writes #483

v0.91.0

  • venues remove the From/To date-range filter #476

v0.90.2

  • caldav force no-store on listViewings's own REPORT request #466
  • calendar overview give the viewing total its own persistent element #467
  • map keep a pin's popup open while the cursor crosses to it #464

v0.90.1

  • a11y give genuine errors a distinct toast, not routine status text #459
  • chrome stop clipping the mobile GitHub ribbon's text #456
  • homepage remove duplicate visible "Movie Planner" heading #453
  • overview relabel map icon to describe navigation, not an inline reveal #460
  • overview select a filter field's value on focus so switching suggestions needs no manual clear #462
  • tooling exclude .claude/ from prettier's format check #454
  • ui hide the decorative time bar when a viewing has no meaningful duration #461

v0.90.0

  • movie details show a venue's verified street address, once known #423

v0.89.0

  • chrome add breadcrumb navigation #421

v0.88.1

  • caldav force no-store on single-resource GET requests #419

v0.88.0

  • movie details group fields into sections, cap long chip lists, widen the trailer #416

v0.87.0

  • calendar overview reflect the active filter in the page title #413

v0.86.0

  • calendar overview filter by release date, at day/month/year granularity #408

v0.85.3

  • calendar overview clicking any filter chip clears every other active filter #406

v0.85.2

  • movie details action row overflow, move Share next to Back to overview #404

v0.85.1

  • share remove the overview's whole-list sharing, add per-viewing sharing instead #401

v0.85.0

  • movie details export a single viewing as JSON #396

v0.84.1

  • docs sync Starlight's theme with the main app's dark-mode preference #394

v0.84.0

  • chrome move Export as JSON into Settings, rename it Export viewings #391

v0.83.0

  • movie details style the Back to overview link as a button #386
  • ui drop the time entirely, and hide the duration bar, when a viewing's start/end are identical #380

v0.82.0

  • calendar overview show venue's city/country alongside its name #383

v0.81.0

  • calendar overview make venue city/country and movie country/language/rated clickable filters #378

v0.80.0

  • changelog show the deployed version and an end-user-relevant changelog #370

v0.79.3

  • movie details show just the date when Start and End are identical #367

v0.79.2

  • calendar overview show the share link as visible text, not just an attempted copy #364

v0.79.1

  • calendar overview scope the map to the current page, not the whole filter #361

v0.79.0

  • calendar overview show a map of the currently-filtered viewings #356

v0.78.0

  • movie details embed the trailer instead of just linking to it #354

v0.77.0

  • activity log record every create/edit/delete locally, with a page to browse it #352

v0.76.2

  • calendar overview use the Web Share API for Share, when available #347

v0.76.1

  • omdb extract the rest of OMDb's response fields on refresh #344

v0.76.0

  • calendar overview share a read-only, frozen link to the filtered view #341

v0.75.0

  • disclaimer add a prominent use-at-your-own-risk warning #327

v0.74.1

  • movie details fix WCAG AA contrast on the "not linked" gap indicator #325

v0.74.0

  • calendar overview show a location pin on rows with known coordinates #323

v0.73.0

  • about add a public About page touring the app's features #272
  • bulk import export viewings as JSON, import OMDb fields and update-by-uid #122
  • caldav client read the movie-planner CLI's own calendar format #83
  • caldav proxy the seven CalDAV operations, real WebDAV wire calls #9
  • caldav parse and write a viewing's geo coordinates #244
  • caldav show a Pathé booking's row/seat on the details page #309
  • calendar heatmap clickable year and month headings, grouped by year #281
  • calendar heatmap open the day popup on hover too, not just click #279
  • calendar heatmap skip months with no viewings entirely #287
  • calendar overview add a bulk "Refresh all metadata" button #57
  • calendar overview add a title filter, with autocomplete #290
  • calendar overview add autocomplete to the medium filter #141
  • calendar overview bring back Edit and Delete icons per row #299
  • calendar overview collapse the filter fields behind a toggle #223
  • calendar overview convert to Svelte, add a busy spinner on refresh #107
  • calendar overview default From/To to the visitor's own history #189
  • calendar overview default sort by start date, descending #41
  • calendar overview enlarge poster thumbnails in the overview #72
  • calendar overview extend autocomplete to Venue, Actor, Genre #180
  • calendar overview make the poster thumbnail link to the details page #139
  • calendar overview make Title/When/Venue columns sortable #170
  • calendar overview numbered page links, first/last, and a page-size control #302
  • calendar overview paginate the overview #74
  • calendar overview show the blocked-time bar in the When column #307
  • calendar overview simplify the list to poster/title/when/venue/refresh #94
  • calendar overview skip already-matched titles in bulk refresh #90
  • calendar overview the main screen, filterable, full metadata #11
  • calendar add a viewing-density heatmap page #213
  • calendar add month labels, popup instead of navigation #215
  • chrome add a real logo/favicon and PWA install support #160
  • chrome add smooth page transitions with Astro's ClientRouter #178
  • chrome make poster thumbnails bigger #167
  • credentials first-load capture, browser storage, settings #6
  • credentials let a visitor pause OMDb lookups without clearing the key #81
  • cross links use brand marks for IMDb/RT/Letterboxd, not text #194
  • docs add a Starlight usage guide at /docs #201
  • docs generate light/dark screenshots in CI, show them in README #197
  • export make Export as JSON reachable from every page #175
  • geo add a Nominatim address-search client and a reuse lookup #246
  • import add CSV/JSON bulk import with duplicate detection #19
  • keyboard nav add vim-style navigation and a help overlay #119
  • layout add a "Fork me on GitHub" ribbon #85
  • layout add a footer with legal pages, plus humans.txt #87
  • layout adopt Inter typeface, widen data-heavy pages #111
  • location management add a venues overview page, first Svelte island #104
  • location management offer picklist suggestions on the log form #26
  • map add a placeholder /map page ahead of real venue coordinates #240
  • map render the real global map, replacing the static preview #254
  • map show the poster in a pin's popup, and open it on hover too #283
  • map switch from the bundled abstract outline to real map tiles #263
  • movie details add a dedicated details page per logged viewing #54
  • movie details add a visual blocked-time bar #211
  • movie details flag IMDb/Letterboxd as not linked without a real match #154
  • movie details let a visitor re-search OMDb to fix a wrong match #314
  • movie details make director clickable, filterable, autocompleted #184
  • movie details make the Venue field a clickable link #304
  • movie details offer venue autocomplete when editing #101
  • movie details render a per-venue map when the viewing has coordinates #252
  • movie details show a movie synopsis #228
  • movie details show personal notes, convert to Svelte #109
  • movie details show ratings as badges, make actors/genre clickable #164
  • movie details show the rest of OMDb's fields, plus the trailer link #316
  • movie editing optional coordinate entry when editing a viewing #251
  • movie editing re-check the calendar entry before refresh calls OMDb #96
  • movie editing update and delete from the overview #17
  • movie log make end time optional on the manual log form #31
  • movie log manual form, Pathé email parsing, OMDb enrichment #13
  • movie log optional coordinate entry when logging a viewing #248
  • omdb add poster, genre, year, cross-links and a refresh control #47
  • omdb offer a disambiguation picker when there's no confident match #62
  • site nav add a Viewings link, reorder to match reading order #162
  • theme add a dark mode toggle #45
  • ui display the app as "Movie Planner", not movie-planner-web #39
  • ui redesign the layout with Tailwind CSS #29
  • ui show a placeholder graphic for movies with no poster #238
  • venues add a date-range filter #125
  • venues add a map pinning every venue, linking to its overview #285
  • venues group the venues page by country and city, with a map per city #320
  • venues make a venue name link to the overview, filtered to it #132
  • caldav parse all-day VEVENTs instead of silently dropping them #234
  • caldav preserve unknown VEVENT properties across an edit #296
  • caldav stop dropping a VEVENT with a start time but no end time #321
  • caldav supersede a stale in-flight request, not race it #207
  • calendar heatmap collapse a zero-activity month to one line #260
  • calendar heatmap don't render an empty grid for an account with nothing logged #242
  • calendar heatmap make empty cells visible in dark mode #231
  • calendar heatmap open the popup near the clicked day, with more detail #220
  • calendar overview keep the filter set after navigating away and back #293
  • calendar overview shrink the table's own mobile footprint #218
  • calendar overview stop distorting non-portrait poster thumbnails #77
  • calendar overview stop the count line flashing during a refresh #172
  • chrome keep the GitHub ribbon clear of the header's toggle buttons #137
  • chrome reapply dark mode on every client-side page transition #186
  • data loading refresh pages restored from the browser's bfcache #225
  • keyboard nav poll instead of racing a bare assertion in the g test #155
  • keyboard nav wait for the smooth-scroll animation to finish #191
  • map give every pin its own Open in Maps link, not just the single one #256
  • omdb refresh stop treating a bare imdbId as an already-confirmed match #114
  • omdb fall back to a plain title search when a year-scoped one finds nothing #52
  • omdb let refresh reach OMDb for a matched title missing its poster #150
  • site nav show the nav menu on every page, not just home #128
  • ui render the weekday abbreviation in English, not Dutch #144
  • ui stop iOS Safari auto-zoom from reading as horizontal scroll #43
  • venues carry the venue page's date range through to the overview #147
  • venues show a venue that only exists on a calendar entry #117

v0.72.0

  • venues group the venues page by country and city, with a map per city #320

v0.71.0

  • movie details let a visitor re-search OMDb to fix a wrong match #314

v0.70.0

  • caldav show a Pathé booking's row/seat on the details page #309

v0.69.0

  • calendar overview numbered page links, first/last, and a page-size control #302
  • calendar overview show the blocked-time bar in the When column #307

v0.68.0

  • movie details make the Venue field a clickable link #304

v0.67.0

  • calendar overview bring back Edit and Delete icons per row #299

v0.66.2

  • caldav preserve unknown VEVENT properties across an edit #296

v0.66.1

  • calendar overview keep the filter set after navigating away and back #293

v0.66.0

  • calendar overview add a title filter, with autocomplete #290

v0.65.0

  • calendar heatmap skip months with no viewings entirely #287
  • map show the poster in a pin's popup, and open it on hover too #283

v0.64.0

  • calendar heatmap clickable year and month headings, grouped by year #281

v0.63.0

  • calendar heatmap open the day popup on hover too, not just click #279

v0.62.0

  • about add a public About page touring the app's features #272

v0.61.0

  • map switch from the bundled abstract outline to real map tiles #263

v0.60.2

  • calendar heatmap collapse a zero-activity month to one line #260

v0.60.1

  • map give every pin its own Open in Maps link, not just the single one #256

v0.60.0

  • map render the real global map, replacing the static preview #254

v0.59.0

  • movie details render a per-venue map when the viewing has coordinates #252

v0.58.0

  • movie editing optional coordinate entry when editing a viewing #251
  • movie log optional coordinate entry when logging a viewing #248

v0.57.0

  • geo add a Nominatim address-search client and a reuse lookup #246

v0.56.0

  • caldav parse and write a viewing's geo coordinates #244

v0.55.1

  • calendar heatmap don't render an empty grid for an account with nothing logged #242

v0.55.0

  • map add a placeholder /map page ahead of real venue coordinates #240
  • ui show a placeholder graphic for movies with no poster #238

v0.54.2

  • caldav parse all-day VEVENTs instead of silently dropping them #234

v0.54.1

  • calendar heatmap make empty cells visible in dark mode #231

v0.54.0

  • movie details show a movie synopsis #228

v0.53.0

  • calendar overview collapse the filter fields behind a toggle #223
  • data loading refresh pages restored from the browser's bfcache #225

v0.52.1

  • calendar heatmap open the popup near the clicked day, with more detail #220
  • calendar overview shrink the table's own mobile footprint #218

v0.52.0

  • calendar add month labels, popup instead of navigation #215

v0.51.0

  • calendar add a viewing-density heatmap page #213

v0.50.0

  • movie details add a visual blocked-time bar #211

v0.49.1

  • caldav supersede a stale in-flight request, not race it #207

v0.49.0

  • docs add a Starlight usage guide at /docs #201

v0.48.0

  • docs generate light/dark screenshots in CI, show them in README #197

v0.47.0

  • cross links use brand marks for IMDb/RT/Letterboxd, not text #194

v0.46.1

  • keyboard nav wait for the smooth-scroll animation to finish #191

v0.46.0

  • calendar overview default From/To to the visitor's own history #189

v0.45.0

  • movie details make director clickable, filterable, autocompleted #184
  • chrome reapply dark mode on every client-side page transition #186

v0.44.0

  • calendar overview extend autocomplete to Venue, Actor, Genre #180

v0.43.0

  • chrome add smooth page transitions with Astro's ClientRouter #178

v0.42.0

  • export make Export as JSON reachable from every page #175
  • calendar overview stop the count line flashing during a refresh #172

v0.41.0

  • calendar overview make Title/When/Venue columns sortable #170

v0.40.0

  • chrome add a real logo/favicon and PWA install support #160
  • chrome make poster thumbnails bigger #167
  • movie details show ratings as badges, make actors/genre clickable #164

v0.39.0

  • site nav add a Viewings link, reorder to match reading order #162

v0.38.1

  • keyboard nav poll instead of racing a bare assertion in the g test #155

v0.38.0

  • movie details flag IMDb/Letterboxd as not linked without a real match #154

v0.37.3

  • omdb let refresh reach OMDb for a matched title missing its poster #150

v0.37.2

  • venues carry the venue page's date range through to the overview #147

v0.37.1

  • ui render the weekday abbreviation in English, not Dutch #144

v0.37.0

  • calendar overview add autocomplete to the medium filter #141

v0.36.0

  • venues make a venue name link to the overview, filtered to it #132
  • chrome keep the GitHub ribbon clear of the header's toggle buttons #137

v0.35.1

  • site nav show the nav menu on every page, not just home #128

v0.35.0

  • venues add a date-range filter #125

v0.34.0

  • bulk import export viewings as JSON, import OMDb fields and update-by-uid #122

v0.33.0

  • keyboard nav add vim-style navigation and a help overlay #119

v0.32.2

  • venues show a venue that only exists on a calendar entry #117

v0.32.1

  • omdb refresh stop treating a bare imdbId as an already-confirmed match #114

v0.32.0

  • layout adopt Inter typeface, widen data-heavy pages #111

v0.31.0

  • movie details show personal notes, convert to Svelte #109

v0.30.0

  • calendar overview convert to Svelte, add a busy spinner on refresh #107

v0.29.0

  • location management add a venues overview page, first Svelte island #104

v0.28.0

  • movie details offer venue autocomplete when editing #101

v0.27.0

  • movie editing re-check the calendar entry before refresh calls OMDb #96

v0.26.0

  • calendar overview simplify the list to poster/title/when/venue/refresh #94

v0.25.0

  • calendar overview skip already-matched titles in bulk refresh #90

v0.24.0

  • layout add a footer with legal pages, plus humans.txt #87

v0.23.0

  • layout add a "Fork me on GitHub" ribbon #85

v0.22.0

  • caldav client read the movie-planner CLI's own calendar format #83

v0.21.0

  • credentials let a visitor pause OMDb lookups without clearing the key #81

v0.20.1

  • calendar overview stop distorting non-portrait poster thumbnails #77

v0.20.0

  • calendar overview paginate the overview #74

v0.19.0

  • calendar overview enlarge poster thumbnails in the overview #72

v0.18.0

  • omdb offer a disambiguation picker when there's no confident match #62

v0.17.0

  • calendar overview add a bulk "Refresh all metadata" button #57

v0.16.0

  • movie details add a dedicated details page per logged viewing #54

v0.15.1

  • omdb fall back to a plain title search when a year-scoped one finds nothing #52

v0.15.0

  • omdb add poster, genre, year, cross-links and a refresh control #47

v0.14.0

  • theme add a dark mode toggle #45

v0.13.1

  • ui stop iOS Safari auto-zoom from reading as horizontal scroll #43

v0.13.0

  • calendar overview default sort by start date, descending #41

v0.12.0

  • ui display the app as "Movie Planner", not movie-planner-web #39

v0.11.0

  • movie log make end time optional on the manual log form #31

v0.10.0

  • ui redesign the layout with Tailwind CSS #29

v0.9.0

  • location management offer picklist suggestions on the log form #26

v0.8.0

  • import add CSV/JSON bulk import with duplicate detection #19

v0.7.0

  • movie editing update and delete from the overview #17

v0.6.0

  • movie log manual form, Pathé email parsing, OMDb enrichment #13

v0.5.0

  • calendar overview the main screen, filterable, full metadata #11

v0.4.0

  • caldav proxy the seven CalDAV operations, real WebDAV wire calls #9

v0.3.0

  • credentials first-load capture, browser storage, settings #6