Skip to content

Changelog

v0.16.0

0.16.0 (2026-04-27)

Features

  • admin: add /admin/scrapes for inspecting scrape attempts (eba34c9)
  • admin: each scraper has its own Save button instead of autosave on blur (8ef0ce8)
  • admin: make scraper form rows responsive via container queries (edd0228)
  • admin: pin the Inspect column to the left edge + widen the detail dialog (f403d8a)
  • scraper: replace single auth header with multiline custom headers (4ea3506)
  • scraper: show user-facing names in the streaming progress UX (ef35576)
  • scraper: support 0:N custom HTTP scrapers + show timing in seconds (3250912)

Bug Fixes

  • items: tame Add Item dialog overflow and align Notes with Edit Item (b36f857)
  • scraper: allow toggling custom HTTP on before endpoint is typed (49fa2c0)

v0.15.0

0.15.0 (2026-04-27)

Features

  • admin: add AI provider configuration page (3496598)
  • admin: add AI scraping section to AI page (1223bda)
  • admin: add scraper providers form (4a1da3e)
  • ai: adopt vercel ai sdk and support openai/anthropic/compatible (1b6f5f7)
  • avatar: color fallback by name hash (b0e8055)
  • items: add ClaimUsers and rework QuantityRemainingBadge claim states (692550b)
  • items: add depth shadow to priority tab (4b00fa3)
  • items: add image picker to add-item form (c5f5e92)
  • items: add overflow menu for item groups with move-to-list (a65d6f5)
  • items: add scrape progress alert component (5aeb6eb)
  • items: consolidate claim/lock UI in ItemRow (5b9b81d)
  • items: convert add-item flow to modal over my-lists (0c6ce2d)
  • items: filter gifter view by vendor (89caec1)
  • items: move URL above title and add scrape button to dialogs (324cc5a)
  • items: mute fully-claimed cards, keep Edit claim vivid (ecbacd1)
  • items: mute locked rows and explain lock reason in a popover (3556dac)
  • items: re-scrape fills empty fields instead of skipping touched (2ce393f)
  • items: replace priority select with 4-way toggle group (f80f687)
  • items: restructure row layout and consolidate dimming (97ce036)
  • items: toggle availability, block claims, show date tooltip (c539ac5)
  • items: wire scraping into add-item dialog (5610cb9)
  • list-settings: allow editing gift-ideas recipient (f3f6349)
  • lists: warn when gift ideas recipient is also an editor (27e6459)
  • permissions: enforce relationship rules and partner editor flows (639692b)
  • recent: scope feeds to viewer access, add jump-to-item links (a284cd7)
  • scraper: add ai-provider as parallel racer (091f8f8)
  • scraper: add browserless-provider (dc313b8)
  • scraper: add clean-title post-pass (612ff0b)
  • scraper: add custom-http-provider (8566351)
  • scraper: add fetch-provider with UA rotation (b903ed5)
  • scraper: add flaresolverr-provider (eb0df9a)
  • scraper: add HTML extractor, scoring, and image filter (abc9fa7)
  • scraper: add provider types and orchestrator skeleton (01c6163)
  • scraper: add streaming SSE route handler (e544956)
  • scraper: add useScrapeUrl hook (01de42b)
  • scraper: register all four providers in the orchestrator entry points (32acbe6)
  • scraper: wire ai-provider into both orchestrator entry points (febcca2)
  • scraper: wire scrapeUrl server fn and DB cache (af8978a)
  • settings: redesign permissions page with unified rows (8ac8eb5)
  • storage: add RustFS as a peer to Garage for self-hosting (4d1abe6)
  • storybook: add light/dark theme playground stories (09373b0)
  • users: add optional birth year field (af09fac)

Bug Fixes

  • a11y: add aria-label to icon-only buttons (ab281cc)
  • admin: stop settings upsert from resetting unrelated fields (2d3583e)
  • items: animate comments panel close, not just open (1374fbe)
  • permissions: allow list editors to update list settings (4a83952)
  • permissions: grant guardian edit access to child lists (b932247)
  • seed: force gift-ideas lists to isPrivate (4806304)
  • storybook: export moveGroupToList from api mock (17dfa9d)
  • ui: unify empty state and remove redundant list-row underline (c611821)
  • user-badge: title-case all role labels (6fac819)

Performance Improvements

  • client: drop dotenv from client bundle and lazy-load motion/markdown (334f0e4)
  • nav: cut sidebar navigation latency on Vercel (a51344f)

v0.14.0

0.14.0 (2026-04-24)

Features

  • claims: merge unclaim into edit dialog, add ConfirmDialog (90dc427)
  • comments: expand by default, blue styling, relative time (429bd79)
  • comments: show comment count on item rows without expanding (ebe958e)
  • items: consolidate qty/price into comment-row pills (0b94be3)
  • items: money-style total cost input with $ prefix (cf40d80)
  • items: storybook overhaul, image lightbox, grouped prop rename (a05e694)

v0.13.1

0.13.1 (2026-04-23)

Bug Fixes

  • docker: bump node heap to 4GB during build (b9a947a)

v0.13.0

0.13.0 (2026-04-23)

Features

  • admin: email settings tab with db-backed resend config (0840e44)
  • admin: upload avatars for other users (1793380)
  • auth: animated gradient background on sign-in and sign-up (e519cbd)
  • comments: edit-page, motion, Cmd+Enter (47b78e2)

Bug Fixes

  • admin: replace number birth day input with month-aware select (55b5d3d)
  • uploads: hide upload hints when storage is disabled (a293019)

v0.12.1

0.12.1 (2026-04-23)

Bug Fixes

  • compose: don’t gate app on garage healthcheck during cold boot (2e4a995)
  • docker: bump base to node:22-slim, strip vendored npm (05e11ef)
  • uploads: invalidate auth cookie cache on avatar update (1bbd3a4)

v0.12.0

0.12.0 (2026-04-23)

Features

  • items: file uploads for item images, cleanup orphaned objects on delete (80662da)
  • lists: add ListsCard composable component (4a0ee8d)
  • purchases: polish row UI, chart tooltip, color scheme, icons (b5480a4)
  • purchases: restructure metrics, add Spend by Recipient chart (7d573f2)
  • settings: wire avatar upload and remove (1a3a9b8)
  • storage: add S3-compatible adapter + boot validation (67835f1)
  • storage: boot Garage in docker compose with one-shot init (6baffab)
  • storage: fold Garage bootstrap into the app entrypoint (3a0ae8c)
  • storage: upload API and /api/files proxy route (6c56d53)

Bug Fixes

  • loading: center app-load spinner in viewport (f4ab3e3)
  • seed: load .env.local when running db:seed via tsx (0eb1e83)
  • storage: gracefully degrade when STORAGE_* env vars are missing (5df0c0d)
  • storage: scope disabled banner to admin page only (890e508)
  • storage: scope disabled banner to authenticated app shell (fd613da)
  • storybook: alias @/api/storage-status to mocks (0c8a1d2)
  • storybook: alias @/api/uploads to mocks (e7b4670)
  • storybook: wrap stories in TooltipProvider (e979afa)

v0.11.0

0.11.0 (2026-04-21)

Features

  • purchases: consolidate My Purchases and Summary into one page (f234770)

v0.10.0

0.10.0 (2026-04-21)

Features

  • admin: add data export and import for backup/restore (678207e)
  • devtools: gate TanStack devtools on env + worktree (da46d5d)
  • list-addons: restyle as cards, drop gifter-facing mark-as-given (b076380)
  • list-view: restyle items to match edit page, add filter/sort (a8212d7)
  • logging: pino-based structured logging with runtime LOG_LEVEL (8220c8f)
  • nav: split Purchases sidebar section with Received (39b8431)
  • settings: remove connections page (27a8b1c)
  • sidebar: enable icon-only collapsed mode (b3c5045)

Bug Fixes

  • docker: follow PORT env in healthcheck, hit 127.0.0.1 not localhost (807c4ba)
  • permissions: center checkboxes under their column icons (1eacf5b)
  • stop leaking server env access into the client bundle (ee079dc)

v0.9.1

0.9.1 (2026-04-21)

Bug Fixes

  • selfhost: boot on plain-HTTP non-localhost origins (bdb9e9a)