Skip to content 0.22.0 (2026-04-30)
Features
- admin: show optional vercel deployment info on debug page (df51548)
- auth: auto-derive BETTER_AUTH_URL on Vercel production (c7fec7d)
- items: skip scrape for sublist URLs and lock URL during scrape (ea0699b)
- lists: animate user avatar on card hover (ff15710)
- lists: include guardian’s children as gift-ideas recipients (c749d9e)
- lists: show avatar in gift-ideas recipient select (94619f5)
- lists: show recipient avatar on gift-ideas rows (4b8313d)
- purchases: show partner avatar on partner-claimed rows (1e39712)
- ui: show avatar alongside name in user select options (ec15159)
Bug Fixes
- items: upgrade http image URLs to https (25c3837)
- lists: widen gift-ideas recipients to anyone visible to viewer (b967b8c)
0.21.0 (2026-04-29)
Features
- admin: add purge-all-lists action on /admin/data (02dd274)
- admin: show version, commit, and build time on debug page (9b9f8e6)
0.20.0 (2026-04-29)
Features
- api: add /api/mobile REST surface and bearer auth (7fc3e45)
- deploy: add one-click deploy buttons for Vercel, Railway, Render, Coolify (cae8091)
- mobile: isolate mobile API behind Hono gateway with apiKey auth (99013f8)
- title: move app title from build-time env to runtime config (2099db1)
Bug Fixes
- deploy: alias @/db to client stub to keep pg out of browser bundle (d5e68bc)
- deploy: unblock sign-out and rate limits on multi-instance deploys (6a8c6c8)
0.19.0 (2026-04-29)
Features
- items: open add-item dialog via /me?url= and /import?url= (6da3143)
- validation: cap free-text inputs and add admin counters (ea9c814)
0.18.0 (2026-04-29)
Features
- addons: refresh off-list gifts section UI (dcd7b03)
- admin: add storage browser for image objects (ddc9b7b)
- admin: add user permissions matrix to admin/users (af2ffec)
- admin: delete user from edit page (97dbd37)
- admin: show Guardian badge on users with guardianship (b96c6f9)
- claim: tint gift icon green on claim button hover (1850b5d)
- cron: cleanup-verification cron to purge expired tokens (4bac914)
- items: admin toggle to mirror external images into storage on save (3ac1ad1)
- items: celebrate successful claims with a check-morph flourish (ecf0fd2)
- items: copy item to your own list (f520b2c)
- items: move list items into React Query (9b5a106)
- items: optimistic updates for group assign, delete, and bulk ops (531e21e)
- items: optimistic updates with row-level saving indicator (98b00a4)
- items: render internal-list links as in-app navigation badges (7cdb12e)
- items: use UrlBadge in rows and reorganize storybook (b72fc02)
- lists: add back-to-parent affordance on internal-list nav (3fe596a)
- lists: refresh list header avatar and empty-state alignment (39b0e29)
- notes: autolink bare URLs in rendered markdown notes (7901141)
- purchases: stack priority icon under type icon in detail row (f04d18c)
- recent: redesign recent items and comments pages (7376813)
- recent: widen recent items and comments window to 60 days (dee1fb4)
- scraping: per-entry timeout overrides + tier-aware progress alert (6dc1b32)
- storybook: wrap Pages stories in a centered page-frame decorator (2b6fd5f)
- test: add pglite integration harness and fix user-delete cascade ordering (cc6aca8)
Bug Fixes
- admin: also skip R2 .emptyFolderPlaceholder in storage list (82ab1ef)
- admin: cap admin storage walk + refuse bulk-delete when truncated (28984d3)
- admin: hide S3 folder placeholders and open thumbnails in lightbox (4d4f9d5)
- auth: cap cookieCache.maxAge at 24h instead of 7d (4191601)
- auth: drop empty-string fallback for BETTER_AUTH_SECRET (057dde8)
- auth: refuse INSECURE_COOKIES on HTTPS deployments (4d1e692)
- auth: use generic sign-in error message (226b45d)
- backup: require typed confirm + auto pre-wipe snapshot + audit log (9438dc3)
- cron: fail-closed without CRON_SECRET, timing-safe bearer compare (deb7ca3)
- deps: cap better-auth override to 1.4.x to avoid 1.6 admin-plugin bundle break (0240607)
- deps: cap vite override below 8 to avoid rolldown bundler regression (4dc13b6)
- files: add nosniff and Vary headers to file proxy (865e742)
- filters: show vendor filter when any vendor is present (d3f1f12)
- gifts: remove unused getGiftsForItems server function (016d600)
- health: drop verbose mode from /api/health (3e8ced7)
- image-picker: hide candidates whose img element fails to load (3573629)
- items: client-side resize, upload on add, no-image picker option (5821b5d)
- items: extract *Impl into server-only sibling to unbreak client build (5fbd7a6)
- lists: refresh listing pages on query-cache invalidation (415be3d)
- lists: shrink edit-page actions on smallest screens (4afd0a3)
- lists: structured error for child gift-ideas attempts (6bd2fa8)
- permissions: unify owner-or-viewer check with canViewListAsAnyone (8bbbd4a)
- rate-limit auth, scrape, file proxy, comments, claims (b759976)
- scrape: block SSRF via private-IP check and manual redirect walk (f4c9200)
- scrape: bump default timeouts to 20s/45s (be8b20a)
- scrape: harden AI extractor against prompt injection (b2eb5e6)
- settings: migrate legacy wish-list-scraper type on read (aa6bb86)
- settings: redact decrypted scraper secrets from public reads (8216f5a)
- skeletons: drop red bg from loading skeleton (566c7a4)
- storage: default GARAGE_ADMIN_URL to compose service name (9b3d71b)
- uploads: validate magic bytes and cap sharp pixel input (c794e5f)
- urls: lowercase unknown-vendor display names (8fc0508)
0.17.0 (2026-04-27)
Features
- scraping: add ScrapFly as a hosted scrape provider (d3372f3)
- scraping: unify providers under tiered, admin-configurable entries (5a63337)
Bug Fixes
- admin: widen admin canvas; cap narrow pages at max-w-xl (30ab798)
- scraping: better signal/noise in scrape UI and result filtering (84bbce7)
- scraping: drop duplicate cancel, clarify partial state, broaden extractors (7b52030)
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)
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)
- client: drop dotenv from client bundle and lazy-load motion/markdown (334f0e4)
- nav: cut sidebar navigation latency on Vercel (a51344f)
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)
0.13.1 (2026-04-23)
Bug Fixes
- docker: bump node heap to 4GB during build (b9a947a)