Release Notes — Archive
Past releases. Back to current release notes.
1.13.0 2026-07-30
New Features
- Beers show how long they've held a spot on the top list (#1402, #1404, #1406)
- And how long each has held a place in your own top 10 (#1405, #1407)
- Rate any beer here, including ones already checked in on Untappd (#1390)
- Butler pick gains cart and tasted buttons beside Approve (#1386)
- Language setting: Auto / English / Svenska (#1355, #1359)
- Similar beers match on taste clocks, with labels like "Very similar" (#1354)
- Beer links unfurl with a per-beer preview image (#1319)
- Taste Profile and Top 10 get "Share as image" (#1319)
- Beer page: previous/next via buttons or arrow keys (#1325, #1331)
- Beer Releases: cart button + tasted eye on every row (#1329)
- Beer Releases: style, store and hide-tasted filters like Top 10 (#1330)
- New Ölsläpp page — upcoming and latest Systembolaget releases (#1316)
- Top 10 per style: /top-10/<stil> pages — "Bästa IPA på Systembolaget" (#1315)
- Search accepts several product numbers at once — paste a list, get every beer (#1323)
- Beer pages are now real, crawlable pages with their own sitemap (#1314)
- Beer Butler: graded pass options the Butler learns from — styles sink or float (#1310)
- Beer Butler: "Your Butler remembers" summary on the intro, per-style forget (#1311)
- Top 10 ranks by Taste Score, with the breakdown on hover (#1306)
- Top 10: Hide coming soon toggle next to Hide tasted (#1307)
- Shopping list rows open the beer page on press, with hover highlight (#1297, #1305)
- Every beer gets its own shareable page — beer names and Share link to it (#1281, #1282)
- Press a card, list row or Top 10 entry to open it — back returns you (#1283)
- Beer page: store table with live stock counts and shelf position (#1284, #1285)
- Public statistics page carries daily catalog stats for search engines (#1261)
- List view rows tap to expand on phones, revealing the hidden columns (#1278, #1279, #1280)
- List view rows can report a beer — same reason picker as the cards (#1255)
- Top 10 entries gain the cards' copy/share and report actions (#1256)
- Light mode — Auto/Dark/Light in Settings, light beer-style themes, synced (#1220)
- New Top 10 view — best available beers by Taste Score or Untappd rating (#1223)
- Top 10: shopping-list cart button + tasted eye on each entry (#1230)
- Top 10: filter by any Systembolaget store — your stores lead the search (#1239)
- Top 10: Hide tasted toggle surfaces the best beers you have not tried (#1247)
Improvements
- Every beer row reads the same way — brewery, name, style (#1424, #1428)
- Search engines can now reach every beer page, not just the top lists (#1429, #1431)
- Beer Releases phone rows all match — photo tile, style, rating (#1425, #1427, #1435)
- On a phone, a stray pinch or double-tap no longer zooms the app (#1409)
- Shopping list phone cards rebuilt — every line on one edge (#1410)
- Shopping list phone rows show the beer style under the name (#1426)
- Similar beers show which picks are already on your list or bought (#1397)
- Beer Releases: 90+ matches show the beer photo with its score (#1399)
- Beer Releases: tasted eye moved to before the beer name (#1399)
- Beer Releases: phone rows line up — photo left, cart top right (#1408, #1413)
- Shopping list thumbnails match the rest of the app — clearer tasted eye (#1400, #1416)
- Screen readers announce which style a breakdown card expander opens (#1417)
- Every page head reads the same — links top right, one intro size (#1398, #1401)
- Beer pages get the beer's own photo as a soft glass backdrop (#1396)
- The Butler's pour sparkles — livelier bubbles, splash and glow (#1392)
- The pour ends on a little celebration as the head settles (#1392)
- Beer page + Butler pick show a big, sharp bottle photo (#1383)
- Butler pick drops the stray cart icon — Approve is the add action (#1393)
- "Cap the price" hint suggests a real budget, not a near-useless 150 kr (#1394)
- Your rating wins over Untappd's everywhere, and shapes your profile (#1390, #1415)
- Butler pick shows what the beer page does — score, taste, details, stock (#1386)
- Tasted eye badge now reads on any beer photo, same corner everywhere (#1382)
- New / Coming soon badges show the Systembolaget launch date on hover (#1381)
- Swedish translation: Settings, filters, results, home (#1360, #1361, #1362, #1363)
- Swedish translation: shopping list, shared UI, wizard, Taste Profile, Butler (#1365, #1366, #1367, #1368, #1370, #1371)
- Swedish translation: Top 10, Beer Releases, beer pages, check-ins, Statistics (#1372, #1373, #1374)
- Swedish translation: the whole About page (#1378)
- Swedish translation: browser tab titles and the last stray labels (#1380)
- Swedish translation: status bar, update banner, top styles (#1376)
- Numbers follow the language setting, not the browser (#1375)
- Page titles share one size — Beer Releases no longer smaller than Top 10 (#1336)
- Beer Releases: "Top 10 →" link now as prominent as other forward links (#1350)
- Beer Releases: beer names sized like other lists — no more oversized rows (#1352)
- Beer page: back exits to the list you came from in one step (#1325, #1331)
- Top menu: Releases grouped with Top 10, renamed from Ölsläpp (#1326, #1332, #1335)
- Beer Releases: re-listings get a muted "Back again" tag — not new beers (#1337)
- Beer Releases: rows sort by Taste Score, 90+ matches highlighted (#1327)
- Beer Releases: rows open the beer page on press, with hover highlight (#1333)
- Beer Releases: the price links to the product on systembolaget.se (#1334)
- Beer page: header badges, cart, share, flag and rating align at one height (#1324)
- Beer page: data-ownership disclaimer with link to the full text (#1322)
- Card colors now adapt to Systembolaget product images too (#1321)
- Beer Butler: mood selector starts on safe bets (#1308)
- Beer Butler: pour polish — foam settle, messier adventurous pour, reveal flourish (#1312)
- Beer page: Buy at Systembolaget moved into the Details section (#1302)
- Nav re-ordered: Beers · Top 10 · Butler · List · Taste Profile (#1294)
- Filter sidebar: uniform-width country badges (#1298)
- Shopping list: a colored edge shows why a row dims, bought rows stay bright (#1291)
- Split by Bought dims only already-drunk beers (bought and tasted) (#1292)
- Beer page polish — Buy/View buttons on top, SB-linked article nr, Backspace back (#1285)
- Beer page header mirrors the cards — score, rating, share & report top left (#1286)
- Beer page store names filter the list, similar-beer View opens its page (#1286)
- Beer page: Online leads the availability table, mobile top row fixed (#1287)
- Similar beers live on the beer page — carousel removed from result cards (#1288)
- Beer page header refined — uniform chip heights, labeled Mark-as-tasted button (#1289)
- Beer page badges go inline on desktop, full-width buttons on mobile (#1290)
- Rank tooltips name the profile style a borrowed #N rank belongs to (#1275)
- Page changes are instant — no crossfade, warm views, leaner cards (#1269, #1268, #1271)
- Card entry ripple capped at 240 ms — no more 1.4 s grid rebuild (#1270)
- Swedish titles & descriptions on public pages for Swedish searches (#1260)
- Unified type scale — consistent text sizes across every view (#1263)
- New heading typeface — Barlow Condensed gives titles a taproom voice (#1266)
- Consistent button wording — one name per action, sentence case, Clear vs Reset (#1262)
- Theme-aware outline icons replace emoji in hints, popups, wizard & lists (#1265)
- Statistics redesign — score-distribution bars, unified tiles & chart colors (#1264)
- Sync code stays off public pages and shows masked in the header (#1259)
- List view fits phone screens — Taste Score docks on the beer image, sortable (#1248, #1250)
- Price is a green Buy at Systembolaget ↗ link on every surface (#1249, #1251)
- Snappier results — faster sorting, filtering & counts (#1203, #1204, #1206, #1208)
- Collapsed filter sidebar no longer computes hidden facet counts (#1205)
- Calmer enrichment updates — fewer mid-browse reshuffles, no page-1 yank (#1207)
- Breadcrumb trail replaced by a compact Undo chip that appears instantly (#1210, #1211)
- Price & volume sliders curve on wide ranges — finer low-end control (#1213, #1214)
- Latest Checkins now roam across browsers under the sync code (#1215)
- Reported beers roam too, so the Reported filter works on every device (#1217)
- Beer Butler remembers "not tonight" rejections across devices (#1216)
- Dismissed new-beer alerts stay dismissed on every device (#1218)
- Card view gets the list view's top-right Reset filters button (#1221)
- Statistics moved from the main nav to the top-bar icon row (#1222)
- Store filter: manage-stores button is now a chip among the pills (#1224)
- Top 10 entries link straight to the Systembolaget product page (#1225)
- Top 10 shows the familiar tier-emoji Taste Score badge (#1226)
- Top 10 is Google-indexable with a Show all beers link (#1227)
- Version & build info moved from the header to the footer (#1232)
- Top 10: score badges align, Untappd badge links to the beer page (#1229)
- Top 10: styles render as the rank + name + temp badge from the cards (#1231)
- Cart states unmistakable — ghost inactive, white on-list, gold bought (#1234, #1240, #1241)
- Top 10: tasted eye sits on the beer image corner, not below it (#1233)
- Top 10: shared Untappd stars badge + score docked on the beer image (#1235)
- Top 10: entries redesigned like the beer cards — badges, origin, docked ratings (#1236, #1237, #1238)
Bug Fixes
- Prices look the same everywhere and follow your language (#1437)
- Top 10 on a phone: the cart button stays on the card (#1436)
- Launch dates show the right day — they were one day early (#1434)
- Taste Profile's "Show all" link matches every other one (#1433)
- Wrong beer numbers and bad style links stay out of search results (#1432)
- Cart button tooltip always names the beer, on cards and list rows (#1422)
- "Hide items already on my list" no longer hides beers you only tasted (#1421)
- Settings: the clear-data button matches its heading (#1418)
- "Visa på Untappd" opens the beer, not an Untappd search (#1388)
- Restock = hide now also hides restocking beers on your list (#1387)
- Beer page no longer jumps when stepping through previous/next (#1389)
- Action buttons line up — no more mismatched heights beside links (#1393)
- Beers menu always shows the result count — no more spinner hiding it (#1395)
- Beer page header stays aligned once you've rated a beer (#1391)
- Guest mode no longer shows your Untappd rating on the shopping list (#1415)
- Taste Profile cards start collapsed on every visit, as intended (#1384)
- Settings cards balance across two columns — no gap beside Language (#1385)
- Swedish percentages render consistently as 42%, not 42 % (#1379)
- About page score tiers now match the real thresholds and translate (#1377)
- Beer results no longer hang on "Indexing products…" after the daily refresh (#1345)
- Opening the app between midnight and 01:00 no longer re-indexes the catalog (#1346)
- App installs no longer bundle the static Beer Releases page (#1347)
- Beer results list fits the phone screen — cart button no longer cut off (#1348)
- Swipe navigation follows the new menu order — Top 10, Releases, Butler included (#1349)
- Dark/light choice now roams reliably — sync no longer reverts it (#1351)
- Ctrl+Right / Ctrl+Left reliably step between the top-menu pages (#1353)
- App reloads itself after an update — no more blank page needing a hard reload (#1356)
- Beer pages no longer hide a full copy of the home page inside them (#1344)
- Beer Releases: long names no longer push the rating off its row (#1328)
- Beer Butler: no "add to my list" when the pick is already on your list (#1309)
- Beer Butler: pressing Butler in the nav restarts the session (#1313)
- Top 10: brewer and beer name no longer run together (#1303)
- Back from the beer page no longer resets your filters (#1295)
- Price/ABV/rating sliders survive background sync and app-update reloads (#1299)
- A check-in no longer marks variant beers (X, V13, batch N) as tasted (#1296)
- Weak Untappd matches can no longer flag never-tasted beers as tasted (#1301)
- Un-tasting or un-marking bought now syncs to your other devices (#1300)
- Top 10: space between brewer and beer name in entry titles (#1293)
- Unrelated sub-styles no longer inherit your style ranks when scoring (#1276, #1277)
- Taste profile edits stick — survive reloads and roam to other devices (#1273, #1274)
- Header logo vertically centered between the header lines (#1267)
- Ghost in the Machine matches its Freaky Friday edition (#1257, #1258)
- Search finds beers by their Systembolaget "Nr" product number again (#1242)
- New releases no longer hidden on launch day by pre-launch stock checks (#1243)
- Beers wrongly marked delisted recover on the next daily refresh (#1244, #1245)
- Fixed false Untappd matches on long beer names that hid beers as style mismatches (#1246)
- Price/volume units no longer wrap onto their own line on narrow cards (#1209)
- Collapsed Store section no longer leaves a blank row in the sidebar (#1212)
- First-run guide no longer strands new users — its bubble stays on screen (#1219)
- Sync-code badge no longer overflows the top bar's bottom line (#1228)
Infrastructure
- New versions go live in seconds — deploys unpack on the server (#1357, #1369)
- Deploys no longer leave random beer pages on a stale version (#1342, #1343)
- Catalog data loads from a static daily mirror — faster, fewer worker calls (#1320)
- Top lists, statistics and beer pages refresh weekly without an app update (#1317)
- Wrong-match report pipeline hardened against crafted submissions (#1254)
1.12.0 2026-07-09
New Features
- Mark beers as tasted — eye toggle builds a tasted list, shown via the Tasted filter (#1098, #1100, #1101, #1102)
- Marking a beer tasted now prompts a star rating, added to Latest Checkins (#1113)
- Link your Untappd RSS feed to auto-mark check-ins tasted & refresh Latest Checkins (#1177, #1180, #1181, #1182)
- Latest Checkins — "Show all" opens a page to browse & filter every check-in (#1114, #1115)
- Check-ins page — sliders filter by known values; home filters preserved (#1116)
- Check-ins page — ABV from Untappd for beers gone from SB, full-width layout (#1117, #1118)
- Check-ins page — loads instantly for large histories, docked filter pane (#1119, #1120)
- Check-ins page — shows all by default; home's hide filters no longer carry in (#1121)
- Check-ins page — raising a slider min also hides check-ins missing that value (#1122)
- Check-ins page — store (Online) and assortment chips now narrow the results (#1124)
- List view — sortable, filters, style rank, image hover-zoom, cart + Reset (#1084, #1085, #1087, #1088, #1089, #1090)
- List view — Country column on wide screens, click to filter (#1149)
- Taste profile is built by picking styles — Untappd linking optional, stats-only (#1151)
- One sync code for everything — settings, styles, scoring, stores, list, theme (#1103)
- Welcome popup — "I have a sync code" restores your account without the wizard (#1106)
- Clean URLs — public pages now have real, shareable, Google-indexable links (#1082)
- New visitors get a dismissible intro strip explaining the app & ranking (#1154)
- First-run guided tour spotlights the sidebar, score badge, stores & card icons (#1155)
- Unmatched beers now offer a "Find on Untappd" link instead of a blank rating (#1167)
Improvements
- Results cart button now confirms before mark-bought and before removing (#1202)
- Smarter suggestion chips — ranked by impact + recent use, dismiss lasts a week (#1196)
- Shopping list removals now ask for confirmation and offer Undo via toast (#1192)
- Tasted eye badge now shows on beer images in the shopping list & card view (#1194)
- More imported & distributor beers now show Untappd ratings via exact-name matching (#1147)
- Contract & guild brews now show Untappd ratings (#1148)
- Temporary-shelf beers stocked at your store now show even when not orderable online (#1166)
- Mobile — card/list toggle now docks inside the search bar instead of its own row (#1165)
- Public pages prerendered with structured data so Google & ChatGPT can read content (#1141)
- Home page prerenders a daily top-rated beers list so crawlers see real content (#1143)
- Sitemap upgraded to XML with last-modified dates for better crawl signals (#1144)
- SEO — one canonical URL per page: no redirects, www & slash variants fold (#1145, #1188)
- Footer now links About, Statistics and Release notes across every page (#1146)
- Public pages now carry Swedish content so they rank for Swedish searches (#1168)
- Added an llms.txt so AI assistants can summarise the site and its public pages (#1175)
- Filter pane — Reset moved to the Assortment header, Expand/Collapse-all dropped (#1083)
- Filter pane — Store section always visible, with add/remove stores built in (#1153)
- Logos reserve their space before loading, reducing layout shift (#1171)
- Inter font now self-hosted — faster first paint, no third-party font requests (#1170)
- Repeat visits load faster — build assets now cache for a year (#1169)
- Lighter initial load — popups, modals and effects now load on demand (#1172)
- Smoother animations — skeleton shimmer + status glow now GPU-composited (#1173)
- Better accessibility — control labels, heading order, AA-contrast text (#1174)
- Latest Checkins — first-time check-ins now surface via the activity feed (#1091)
- Re-linking your account restores a cached Top-20 even if local data was cleared (#1099)
- Filter flags explain themselves on hover — no extra panel (#1158, #1160, #1162)
- The Taste Score "?" explainer now opens on hover (#1157, #1161)
- Taste profile — add as many styles as you like; the 20-style cap is gone (#1152)
- List view — column filters stay visible on no matches; click Brewery to filter (#1093, #1092)
- Cart button — white on list, gold bought; hover previews the next state (#1095, #1139)
- List view — score badge shows the full Taste Score breakdown on hover (#1138)
- List view — beer name links to Systembolaget, rating badge to Untappd (#1094)
- List view — availability shows full card badges; click any to filter, combine (#1096, #1112)
- List view — column filters debounced so fast typing no longer feels laggy (#1109)
- List view — the full collapsible filter pane is back, no switch to cards needed (#1104)
- Sync — other devices' changes appear when you refocus the tab, no reload needed (#1105)
- Header — sync-code chip moved to the far top-right, apart from the menu icons (#1108)
- Faster catalog scoring — your style list is sorted once per refresh, not per beer (#1126)
- Faster shopping-list saves & sync — no more JSON round-trips on every write (#1131)
- Faster rating enrichment — name matching reuses its text work across search retries (#1133)
- Lighter sharing of enrichment results — only fresh finds upload, not the whole cache (#1132)
- Faster card rendering — indexed "similar beers" lookups (#1134)
- Snappier filtering — indexed lookups replace per-beer scans (#1127, #1128, #1130)
- Faster first load — style data tables now load alongside the app, not inside it (#1135)
- Snappier "new beers" popup — sections and counts derived in one pass (#1136)
Bug Fixes
- List filter now counts only your actual list — hidden tasted markers excluded (#1200)
- Listed & bought beers stay visible when unavailable — badge instead of vanishing (#1201)
- Latest Checkins no longer lists the same check-in twice — dated at check-in time, your rating kept (#1198, #1199)
- Range sliders no longer jump back to max when results refresh mid-session (#1197)
- "Available at your store" now reflects real shelf stock after an SB API change (#1195)
- Shopping list kr total no longer inflated by hidden tasted check-ins (#1193)
- RSS sync no longer marks a brewery's whole catalog tasted from one check-in (#1189)
- One-time cleanup removes the wrongly auto-tasted beers from your list (#1190)
- Ghost "tasted" badges from check-ins linked to the wrong beer page fixed (#1191)
- Untappd ratings, RSS sync & images restored after Untappd blocked the old proxy (#1184)
- Rating search rebuilt on Untappd's new search backend — matches work again (#1186)
- Search by Systembolaget product number works again after an SB API change (#1185)
- Settings synced via code no longer get overwritten by a device with stale data (#1183)
- Beer images are back — adapt to Systembolaget's new image API (#1178)
- Style badge now shows the beer's real Untappd style, not your nearest rated one (#1150)
- Back in stock alerts no longer fire for beers that never left the shelf (#1137)
- Out-of-stock beers no longer reappear as available after a reload (#1163)
- Home popup is dismissable again — prerender no longer bakes in a dead overlay (#1142)
- Stores added during the daily refresh now index once it finishes (#1164)
- Taste Profile survives Untappd blocking its beer list — no wipe or indexing loop (#1097, #1098)
- Untappd login-walled its history — refresh keeps stats, styles are now manual (#1099)
- Latest Checkins now show real Untappd ratings + styles, no 0.00 placeholders (#1099)
- Empty catalog now points newcomers to setup, not the removed Untappd scrape (#1156)
- Your in-app check-ins no longer vanish when syncing across browsers/devices (#1140)
- List view — availability badge labels now match the filter chips you click (#1111)
- List view — no duplicate Reset on mobile; the filter pane's Reset is the only one (#1110)
- Sync — popup & scoring edits no longer revert when you switch tabs before they save (#1107)
Infrastructure
- Daily pre-warm — 30d sliding registry of indexed stores in KV (#1086)
1.11.0 2026-05-30
New Features
- Search by SB product ID — pulls the row in even when out-of-profile (#1028)
- Beer Butler — pour from All beers, your shopping list, or beers marked bought (#1041)
- Whole SB catalog now scored — out-of-profile beers land in lower tiers, matched styles still dominate the top (#1062)
- Indexer surfaces every product SB associates with your stores, including orderable-but-not-stocked (#1063)
- Style filter dropdown lists every style present in results, including out-of-profile (#1064)
- Statistics — Reachable / Discontinued / Available-now cells make the indexer-to-results pipeline honest (#1065)
- Onboarding — new visitors land on the catalog with a nag popup, full reachable catalog scored on Untappd rating (#1065, #1067, #1068, #1069)
- Onboarding — News/Stats hidden, Reset lands on catalog, Taste Profile + popups funnel to /setup (#1070, #1071, #1072, #1073, #1077)
- Hint strip — one-click coming-soon view (reset filters, Soon only, sort by release date) (#1078)
- Sort — secondary axis carries its own direction, independent of the primary (#1081)
- Statistics — unonboarded users see catalog-wide stats; nav link restored, profile-tied sections hidden (#1079, #1080)
Improvements
- Taste Profile — scraper tops up thin Top-20 styles, widens analysis window (#1055, #1057)
- Taste Profile — rename to Reset order / Re-index Untappd, add tooltips to header buttons (#1056)
- HomeView — docked filter sidebar is the default everywhere above portrait mobile (#1026)
- FilterPanel — pin Assortment, Ranges and Taste Score by default (#1024, #1040)
- Beer Butler — tier badge captions the bottle from the bottom edge (#1025)
- Hint strip — fit-only chip count + horizontal slide-from-right animation (#1027)
- Taste Profile — reorder cards to Popup → Scoring → Breakdown in both modes (#1031)
- Taste Profile — uniform collapsed-card chrome across all three cards (#1032)
- Taste Profile — cards collapse on reload, expand survives in-app nav (#1045)
- Taste Profile — drop redundant Minimum Taste Score input (tier dropdown subsumes it) (#1047)
- Daily refresh moved from 08:00 to 05:00 CET so data is fresh before peak usage (#1043)
- Shopping list desktop — Beer column reclaims width from Rating/Availability (#1053)
- Shopping list — hide redundant per-row tag chip when split by Tags (#1054)
- Shopping list — Bought, Tasted, Restock filter buttons always visible (#1058, #1059)
- Statistics — page numbers no longer respond to home-page filters (#1061)
- Shopping list — drop bought banner; tasted/unavailable/restocking banners now filter-aware (#1064)
Bug Fixes
- FilterPanel — Reset button polish: full-width, no emoji, reserved space (#1023, #1037, #1038)
- Shopping list — split-mode group cards get header chrome + breathing room (#1030)
- Shopping list — v1 sync payloads no longer wipe v2 per-item tags (#1033)
- Header — News bell unread bubble no longer clips above the viewport (#1034)
- Shopping list — deletes survive cross-device toggles via pull-before-push (#1035)
- SEO — canonical, og:url, sitemap and robots.txt point to untappdbolaget.se (#1036)
- SortSelector — direction button now matches sort dropdown height (#1039)
- Latest Checkins — re-check-ins reliably bump to top in all refresh modes (#1042, #1050)
- Untappd rating polish — 2-decimal mobile/tooltip, no ghost ★ 0.00 (#1046, #1048)
- Shopping list — bought rows terminal for restock/unavailable states (#1049, #1052)
- Shopping list — long beer names truncate to single line on mobile (#1051)
- Statistics — count-up entrance plays once, then tweens between updates (#1060)
- TSE products verified out-of-stock are now hidden (display gate had been BS/TSLS-only) (#1062)
- Image brightness detection deferred + cached to localStorage so first paint isn't blocked (#1075)
- Filter pipeline short-circuits on cheap predicates before expensive helpers (#1076)
- Page size dropped to 48 so fewer heavyweight cards mount on first paint (#1074)
Infrastructure
- Enrichment KV — server-side delta-merge + daily pre-warm cron, race-free multi-client writes (#1062)
1.10.0 2026-04-26
New Features
- Serving temperature on beer cards and style tooltip (#833)
- Unified style badge — rank, style, temperature pill (#837, #838)
- Reported tri-state toggle under Assortment › Personal (#864)
- Seasonal & Weather scoring — experimental, opt-in, location-based, mid-day reading, view-enter refresh (#920, #942, #993)
- Re-index checkins button on Taste Profile (#937)
- Taste Profile — configurable "New Beers" popup qualification: window, score, price, tier, top-N styles (#964)
- Beer Butler — mood + weather + scope intro, pouring animation (#968, #969, #970, #971, #972, #974)
- Beer Butler — pick card with Approve/Nah + rationale bubble (#975, #976, #978, #979, #980, #981)
- Beer Butler — standout picks + page-wide reveal celebration (#982, #983, #984, #985, #986, #987)
- Beer Butler — Taste Profile integration follow-ups (#1002, #1005, #1008, #1011, #1014)
- Setup — store picker optional (online-only auto-indexes); new Scoring step (price/ABV/normalization/season) (#977, #992, #998)
- Moved to untappdbolaget.se, HTTPS enforced (#988, #990, #991)
Improvements
- Shopping list — availability, rank chip, Show filters (#816, #851, #858, #859, #866)
- Shopping list — TASTE pill + mobile reorg + bought button polish (#868, #899, #904, #908, #929, #930)
- Shopping list — list-id header + sync UX inline (#931, #935, #938, #944)
- Shopping list — search bar, Split-by dropdown, location tags + Split by Tags (#1007, #1009, #1016)
- Style badge — adaptive widths, hover tooltip, tighter gutters, Taste Profile ellipsis (#874, #893, #928, #933, #959)
- RatingStars — pinned variant per call site, compact in narrow columns (#934, #941)
- News & availability popup — full thumbnail, unified badge, 3-state add button (#905, #927)
- Hint strip — multi-chip + click-history (#643, #629, #915, #916, #917)
- Hint strip — top-style filter + fit-aware widths (#924, #954, #996, #1004)
- Score model — top-1% reward, synergy bonus, rolling 2-year top styles, no flash-of-100, per-beer Seasonal & Weather delta (#907, #912, #913, #923, #936)
- Style tooltip + normalization — Untappd classification when enriched differs, tooltip + Breakdown agree (#855, #875)
- Statistics — country count, tier click-through, Matched %, clean baseline (#856, #863, #870, #891)
- Visual polish — rounded-rect shapes + beer-glass gradient (#827, #832, #847, #849, #850, #854)
- Visual polish — beer-style palettes + parallax bubbles + Weather & Season tag (#865, #882, #884, #906, #911, #932)
- Page tweaks — mobile breadcrumb + UI cleanup + Reset Filters + About/disclaimer (#848, #857, #873, #881, #903)
- Page tweaks — Settings trim + Style Breakdown temp + Scoring position + Latest Checkins layout (#909, #914, #918, #919, #953)
- Taste Profile — collapsible preference cards (unified chrome, default-collapsed each session), guest-mode parity (Beer Butler banner, unified card order) (#999, #1010, #1012)
- FilterPanel — per-section pin keeps a section permanently open (#1000, #1001)
- Installable as a PWA — manifest, icons, offline shell, About-page Install button (#997)
- Logo glimmer — subliminal idle sweep + on shopping-list add / mark-bought (#1006)
- Header — News/Settings/About icon row, Butler back in primary nav (#1003)
Bug Fixes
- Notifications & News popup — empty-state on open + last-visit window (#695, #910, #946, #947, #948, #949)
- Notifications & News popup — hide-listed toggle + sort/badge parity (#951, #958, #963, #965, #967)
- StyleBadge surface parity — popup + shopping list match beer cards (#950)
- Shopping list mobile — pill centres with checkbox, beer text beside pill, thumb-stack outline (#922, #925, #926)
- Shopping list tag picker — Enter applies the tag to the row, not just to the registry (#1020)
- Shopping list — Tag column sortable; tag chip can no longer extend past the card border (#1021)
- Enrichment cache invalidation — auto on KV bump, catches pre-#892 installs (#892, #902, #943)
- Enrichment cache invalidation — wipe-success marker + parser reads `/brewery/{id}` links (#955, #957, #960, #966)
- Enricher / matcher correctness — brewery boost needs raw signal, variant-suffix rejection, style-contradiction drop, multi-pack detection, filler-only word overlap rejected (#860, #862, #869, #872, #994)
- Card polish — temp chip truncation, Untappd "YOU" row, BOUGHT pill corners + label, kr/ml container query (#836, #852, #853, #861, #894)
- Seasonal ☀️ + Restock 🕐 — shared filter/badge gates, sub-style buckets, chip match count, viewport-agnostic (#939, #940, #961)
- Filter polish — breadcrumb chip restores filter, Latest Checkins bypass cache on refresh, shared filteredResults base (#867, #895, #921)
- Latest Checkins — recentOnly scrapes always reach Untappd and the view re-sorts reactively (#1013, #1015)
Infrastructure
- Release notes split + agent-protocol docs compacted, in-development bullets regrouped + tail-budget rule (#952, #962, #1022)
- Results store perf — single enrichment read + median skip + country set (#877, #878, #879)
- Results store perf — assortment delta + v-memo + serialized KV writes + triggerRef (#886, #887, #888, #889)
- Lazy-loading — workers, style-descriptions chunk, Dexie v18 searchedAt index (#880, #883, #885)
- Home-page hints suggestions + style coverage diagnostic script (#890)
1.9.0 2026-04-16
New Features
- Swipe navigation between pages on touch devices with smart-zone gesture detection
- Style flavor tags — hover a style to see emoji descriptors and food pairings
- Similar beers carousel with thumbnail previews and slide-in animation
- Volume range slider and Bought tri-state filter
- Statistics page redesign — animated hero stats, donut charts, growth chart, scroll-reveal
Improvements
- Rebalanced taste score — max-skewed 60/40 blend; score popup shows dynamic weights
- Beer card polish — glassmorphic backdrop, compact layout, bought indicator border
- Shopping list overhaul — split dims, mobile grid cards, taste score column, sort dropdown
- Newly Available popup — score badge, View New Beers filter, persistent dismiss state
- Glassmorphic filter pane with animated bubbles; collapsed by default on mobile
- Exact-only style matching; ambient bubbles with foam burst on navigation
- Notification bell, floating back button, unified bought indicator across all views
Bug Fixes
- Enricher matching — collabs, variant suffixes, short breweries, shared normalization
- Online availability — FS products checked, OOS reports bypass cache, network errors handled
- Check-in freshness — proxy cache race fixed, manual Refresh button with cooldown
- Restocking beers shown with amber badge instead of hidden
- Statistics page filter-agnostic invariant; cache performance table mobile layout
- Shopping list — opacity fix for filters, glassmorphic image backdrop, uniform badge heights
- Breadcrumb undo from cross-route filter actions
1.8.0 2026-04-08
New Features
- Taste quiz — guided 8-question quiz in guest mode to discover preferences
- Style profile code — shareable code to transfer style preferences across devices
- Scoring adjustments — 4-level importance selector for price and ABV bonuses
Improvements
- Clickable brewery name on beer cards filters results to that producer
- Style breakdown — top 3 beers per style, import/reset codes, drag-and-drop reordering
- Filter UX redesign — labeled groups, range sliders, filter count badges, emoji tier buttons
- Search highlighting, keyboard shortcuts, page transitions, and back-to-top button
Bug Fixes
- Out-of-stock and delisted products properly excluded with proactive availability checks
- Enrichment — collab detection, style contradiction filtering, false-match rejection
- Shopping list auto-checked daily; search input no longer drops keystrokes
1.7.0 2026-03-30
New Features
- Report wrong match — flag incorrectly matched beers with diagnostic data
- Guest mode — use without Untappd by selecting preferred styles
- Style customization — add, remove, reorder styles with drag-and-drop
- ABV and price scoring bonuses; celebration popup for newly-available beers
Improvements
- Major visual polish — Inter font, glassmorphism, animations, skeleton loaders, 3D tilt, ambient particles
- Accessibility — keyboard focus, reduced-motion support, button feedback, screen reader improvements
- Shopping list — split by store/style, hide-bought, cross-device sync, placeholder images
- Filter panel — collapsible sections with active indicators, better enrichment matching
Bug Fixes
- Online availability self-heals; shopping list items survive all exclusion paths
- Enricher — style contradictions, collab beers, compound styles, zero-rating handling
- Beer card rank and style name correctly match user profile
1.6.0 2026-03-20
New Features
- Bought toggle, style reordering with bonus points, relative dates on cards
Improvements
- Complete style descriptions for all 233 styles; enrichment matching overhaul
- Compact status bar, sort/display polish, auto-reload on new version
Bug Fixes
- Out-of-profile style exclusion across matching, enrichment, and lookup
- UI fixes — bought icon, mobile status bar, nav overlap, shopping list sync
1.5.0 2026-03-17
New Features
- Top 3 per style filter, sort by user rating and APK, cloud-shared KV caches
Improvements
- Enrichment match rate raised to ~95%+; price factor using per-style medians
- Rating-dominant style ranking; CF Worker security hardening
Bug Fixes
- Tasted beer detection, shopping list sync, KV write-back and rate limiting
- Pipeline ordering, store filter, UI polish across mobile and desktop
1.4 2026-03-15
- Auto-update checker with countdown banner
- Cross-language beer matching with Scandinavian vowel equivalence
- Docked filter sidebar on wide screens; beer card state gradients
- Enricher overhaul — distributor handling, diacritics, compound names
- Regional TSLS filtering, style mapping gaps closed, SEO improvements
1.3 2026-03-13
- Untappd style as scoring source of truth; manual bonus per style
- Untappd rating filter, clickable style names, shopping list sync codes
- Style classification overhaul — IPA mappings, grouped resolution, bonus scaling
1.2 2026-03-11
- Tri-state filters, country flags/filter, packaging indicators, private account detection
- Shopping list auto-syncs with enrichment; auto re-index on store change
- iOS keepalive during indexing; release notes page
1.1 2026-03-07
- Shareable shopping list with sync codes; proxy cache with KV L2
- Migrated from Netlify to GitHub Pages + Cloudflare Worker
