Commit Graph
17 Commits
Author SHA1 Message Date
stan e1e2bee590 groceries/picnic: label the Picnic Family member discount
Deploy production / deploy (push) Successful in 1m22s
2026-10-27 09:19:40 +00:00
stan c094754c5b groceries: add Picnic store (picnic.app storefront API, full range via category pages)
Deploy production / deploy (push) Successful in 1m24s
- picnic.ts: crawls the category tree, subcategory and overview pages (RSC), maps
  Picnic categories to the shared list; no EANs, so matching is by name/brand/size
- picnic-auth.ts + scripts/picnic-login.ts: one-shot login from
  /etc/grocery-tracker/picnic.env, token kept in ~/.config/groceries/picnic.env;
  2FA is never requested unattended (run picnic-login.ts by hand)
- migration: store row picnic; Picnic as own brand in stats
2026-10-27 09:04:26 +00:00
stan 6dcbcfee25 groceries stats: fix array/json params for the app client (live store filter 500), CPI axis, header spacing
Deploy production / deploy (push) Successful in 1m11s
2026-10-25 20:48:00 +00:00
stan 8e35a58095 groceries stats: quote day alias in shrinkflation query
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 20:42:32 +00:00
stan a6ef263c7e groceries: stats page with nightly snapshot (battles, basket, promos, CPI, range)
Deploy production / deploy (push) Successful in 1m19s
2026-10-25 20:39:35 +00:00
stan 60370d4572 groceries: relevance-ranked search (plain/basic products first)
Deploy production / deploy (push) Successful in 1m13s
- search.ts: score on the core name (brand/size stripped): exact or query+base suffix
  (kipdij+filet), head-final compounds, prefix, inside; penalties per extra word and per
  flavour/processing word (search-words.ts, editable); bonuses for store brands, the
  query's dominant category, store count, favourites; trigram tiebreak
- groceries.synonyms table (seeded: kipdij/kippendij, pasta → spaghetti, …) expands queries
- list rows show all pack sizes of a group; group picker uses the same ranking
- scripts/groceries-search-eval.ts prints top results + latency; preflight now 8 tables
2026-10-25 20:20:34 +00:00
stan 1cfbe6486a groceries: Action importer (allowed category listings: price, unit price, EAN from image name; food/drinks, personal care, pets, household consumables) + store row
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:40:53 +00:00
stan 0e98acd0a8 groceries: Lidl — search API only public for CDN-cached URLs (401 otherwise); later pages best-effort, off the nightly run
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:31:39 +00:00
stan 707f07efd4 groceries: mobile-first tracker redesign — compact rows per product group (cheapest store badge, unit price, spread, promo), tap to compare stores; category tree (23 tops, subcategories, icons/colours) with chips, store tiles, sort and non-food toggle; owner shelf prices (manual source with date, photo, note)
Deploy production / deploy (push) Failing after 1m1s
2026-10-25 19:10:10 +00:00
stan 67d74f39b8 groceries: ALDI importer (category pages SSR Algolia hits, offers; no EANs) + store row
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:04:37 +00:00
stan cce6ec3f2b groceries: Vomar importer (public product gateway, EANs; regular prices only) + store row
Deploy production / deploy (push) Successful in 1m21s
2026-10-25 18:57:21 +00:00
stan 942c436d03 groceries: Hoogvliet importer (sitemap SKUs + storefront GraphQL, EANs, promo labels) + store row; Lidl retries transient CDN 401s
Deploy production / deploy (push) Successful in 1m24s
2026-10-25 18:52:01 +00:00
stan ce8b545f60 groceries: Lidl importer (online range), Dirk importer + store row, generic per-store GTIN backfill
Deploy production / deploy (push) Successful in 1m36s
2026-10-25 18:41:12 +00:00
stan 3f30bb883f groceries: add PLUS, Xenos and Amazing Oriental stores, is_food flag, PLUS EAN backfill
Deploy production / deploy (push) Successful in 1m7s
2026-10-25 17:17:53 +00:00
stan c4689adda4 groceries: fix search 500 (pg_trgm word_similarity lives in public, app search_path is $user); guard test for unqualified trgm calls
Deploy production / deploy (push) Successful in 2m32s
2026-10-24 15:07:08 +00:00
stan 807f8af167 groceries: grouping ignores 'durum tarwe' and possessive store lines (Jumbo's), so house pasta lines up across stores
Deploy production / deploy (push) Successful in 2m49s
2026-10-24 15:03:39 +00:00
stan 427f4ed095 groceries: nightly AH/Jumbo catalogue import, unit-price normalisation, product groups and compare UI
Deploy production / deploy (push) Successful in 2m48s
2026-10-24 14:01:26 +00:00