Skip to content

All versions since v0.7.2

v0.7.2

0.7.2 (2026-04-21)

Bug Fixes

  • ssr: let start manifest auto-inject stylesheet link (9bc6134)

Performance Improvements

  • images: convert logo and email icons to webp (058483d)

v0.8.0

0.8.0 (2026-04-21)

Features

  • security: add CSP and HSTS response headers (2186396)

Bug Fixes

  • auth: use window.location.origin as client baseURL fallback (e938f9f)

v0.8.1

0.8.1 (2026-04-21)

Bug Fixes

  • security: drop upgrade-insecure-requests from CSP (a00175d)

v0.9.0

0.9.0 (2026-04-21)

Features

  • auth: support multi-origin self-host configs (357a85e)

v0.9.1

0.9.1 (2026-04-21)

Bug Fixes

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

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.11.0

0.11.0 (2026-04-21)

Features

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

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.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.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.13.1

0.13.1 (2026-04-23)

Bug Fixes

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

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.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.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.17.0

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)

v0.18.0

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)

v0.19.0

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)

v0.20.0

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)

v0.21.0

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)

v0.22.0

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)

v0.23.0

0.23.0 (2026-04-30)

Features

  • client: detect build-version mismatch after deploy (ed0c5b2)

Bug Fixes

  • auth: purge client caches and retry on sign-in (04f7552)
  • auth: purge client caches on sign-out (8173ca5)
  • forms: disable browser autocomplete on list and item name inputs (96d21eb)
  • items: skip $ prefix when price already has one or is non-numeric (cf13099)

v0.24.0

0.24.0 (2026-04-30)

Features

  • api: add /api/mobile/v1/lists/public, narrow public-lists shape (2126920)
  • auth: add storybook stories for sign-in and sign-out pages (d16c113)
  • items: cap priority tab height at 64px (bc523fe)
  • items: group known vendors and show counts in vendor filter (d06e24e)
  • list-row: show avatar+name tooltip on hover (0c097ba)
  • lists: expose child birthdates on getMyLists (3844127)
  • lists: expose lastGiftedAt for upcoming-birthdays widget (1e32bbe)
  • lists: open settings sheet from row Edit, hide denied users (803a6d4)
  • me: differentiate gift-ideas recipient and list owner (d41fdec)
  • me: show editable gift-ideas lists in Gift Ideas section (7718dcc)
  • mobile-api: add PATCH and DELETE for items on v1 (c661014)
  • mobile-api: add per-user device key management (092c2f8)
  • notes: style links to stand out in light and dark modes (1d305bc)
  • settings: add icons to settings nav links (bc38dce)
  • temp: add /temp/widgets preview for iOS birthdays widget (a8fb619)

Bug Fixes

  • auth: hard-reload after sign-in to dodge cookie/cache races (645d365)
  • auth: raise mobile apiKey plugin rate limit (843f8f4)
  • list-addons: stack header on narrow screens (0f77833)
  • storybook: stub getGiftIdeasRecipients in api mocks (ee8466f)
  • styles: prevent h1 descender clipping under truncate (eb9a19d)

Performance Improvements

  • mobile-api: drop redundant getSession in auth middleware (015c802)

v0.25.0

0.25.0 (2026-05-01)

Features

  • auth: foundation + password reset / account recovery (ff5722a)
  • auth: oidc provider with admin CRUD and consent screen (a3d6c7e)
  • auth: passkeys (webauthn) as opt-in sign-in path (6e0f5e8)
  • auth: totp two-factor authentication (97f1d1b)
  • mobile-api: add /me/profile, /me/people, /me/gifts for MCP sidecar (68c1637)
  • mobile-api: land iOS-facing REST surface and isolate impls into _*-impl files (52cf92a)
  • screenshots: add interactive Playwright capture CLI (c31c672)
  • seed: add screenshots fixture seeder (c52b1e4)
  • ui: refine group, settings, comment, and lightbox interactions (a340a64)

Bug Fixes

  • admin: refresh public app-settings after admin toggle (286122d)
  • lists: rework owner and editors avatar stack on list rows (24ade32)

v0.26.0

0.26.0 (2026-05-02)

Features

  • admin: redesign users list with subgrid alignment and richer per-row info (dd12ee6)
  • admin: section permissions matrix legend and add 50-user story (5cd515d)
  • admin: show banner when admins are missing 2FA (5770c8e)
  • auth: use 6-slot OTP input on 2FA challenge (5446c6d)
  • dependents: admin-only CRUD with shadcn confirms (690af28)
  • dependents: non-user gift recipients (pets, babies, anyone managed) (ae4677f)
  • items: unify badge with over-claim and unavailable states (add9c43)
  • lists: nudge owners to pick a primary list (abf8882)
  • lists: surface primary list at top of all-lists view (50acf67)
  • permissions: add restricted access level (a3237d2)
  • settings: disable already-partnered users in partner picker (8668ccd)

Bug Fixes

  • auth: center sign-out spinner (ae5bd32)
  • dependents: show dependent identity on lists for a dependent (de75907)
  • settings: polish profile + 2FA copy and form spacing (a5b2b46)
  • settings: stop infinite refetch loop in passkeys panel (73ba7bf)

v0.27.0

0.27.0 (2026-05-02)

Features

  • filters: add date-range filter with presets and custom range (9461d94)
  • items: rework reorder panel with multi-select drag and mobile-friendly grip (6eab08d)
  • items: show dependent lists in move/bulk-move pickers (2e9496a)
  • lists: allow reassigning a list to a dependent from settings (d71e4ec)
  • received: aggregate by gifter household with timeframe + KPIs (fc38b50)

Bug Fixes

  • db: bump 0017 journal when past 0016 high-water mark (1aafefe)
  • db: fall back to POSTGRES_URL in drizzle config (b8c37df)
  • items: don’t auto-scrape unchanged URL on edit (6e355d2)

v0.28.0

0.28.0 (2026-05-05)

Features

  • admin: add scheduling page with cron run history and manual triggers (99df09e)
  • deploy: wire cron defaults across vercel, render, and self-host (afdf681)
  • filters: add price filter with presets and custom range (6170240)
  • import: add itemScrapeJobs schema and import settings (7509324)
  • import: amazon wishlist source (fedfa63)
  • import: apple notes source (1e750c9)
  • import: bulkCreateItems server fn (9555cea)
  • import: paste-urls source (5be1bee)
  • import: preview table for bulk imports (1562369)
  • import: scrape-queue runner with cron tick (8ce042a)
  • intelligence-admin: polish admin page (7bf6226)
  • intelligence: add CLI scripts for Shape B/C deployments (10abe86)
  • intelligence: add DB schema and admin settings (eaf5622)
  • intelligence: add per-run debug panel to admin runs table (#62) (1786fb6)
  • intelligence: admin run debug panel + settings cleanup (#63) (0c458ec)
  • intelligence: adminRunForMe + integration tests (1e60f34)
  • intelligence: allow un-dismissing recs from the suggestions page (275b810)
  • intelligence: confirm rec-resolving actions in a dialog (4753958)
  • intelligence: cron endpoint and server functions (f300e5b)
  • intelligence: grouping analyzer with apply-able recs (691419e)
  • intelligence: include dependents in guardian recommendations (13e468c)
  • intelligence: pipeline core, three analyzers, runner (38dbbce)
  • intelligence: rename to Suggestions, split admin into sub-routes (2c32a01)
  • intelligence: storybook scaffolding for AI recommendations page (d7672ad)
  • intelligence: user-list actions card with per-user run + stats (8e97178)
  • intelligence: wire admin intelligence route (3fe0791)
  • intelligence: wire delete-items + set-primary-list apply kinds (1ad2efe)
  • intelligence: wire user-facing route + nav and add tests (b35c5af)
  • items: always show Group submenu with create-and-assign options (3f8e8a1)
  • items: split add-item button with import dropdown (c35a247)
  • lists: hide users without lists, surface them in heading popover (f985b11)
  • lists: interleave dependents with users by upcoming birthday on All Lists (5ac798f)
  • lists: pair Type with List-is-for, swap private checkbox for switch (dd2b7ae)
  • sidebar: hide Suggestions link when no active recs (9da9458)
  • storybook: add project patterns reference (d8e877e)
  • theme: add split button to project patterns (8318762)
  • theme: add split button to theme reference (f424bd1)
  • theme: document canonical Card variants in project-patterns story (c632084)
  • ui: add lg size variant to Switch (83e31e1)

Bug Fixes

  • admin: use EyeOff icon for restricted access glyph (ce9aa2a)
  • db: allow null app_settings.value (de441b9)
  • error-boundary: make Go home actually clear error state (daf535b)
  • intelligence: coerce admin run-summary aggregate to Date (ad8bdb8)
  • intelligence: make navigation actions actually navigate (2dcb3de)
  • intelligence: scope stale-items recs to the items the AI flagged (0557e02)
  • items: darken claim-state copy for light-mode contrast (1a41520)
  • lists: wait for both user and dependent queries on All Lists (788656d)
  • theme: tidy split button styles and labels (85a6177)
  • version-check: single toast for stale build (bc73515)

v0.29.0

0.29.0 (2026-05-12)

Features

  • admin,profile: partner anniversary + relationships in admin edit (3ab04df)
  • admin: add Custom Holidays section, replace legacy catalog UI (ecf0aaa)
  • admin: expand reminder + relationship-reminder UI (affcd89)
  • admin: generic-holiday settings section and renamed gates (ef446fe)
  • admin: parental-relations admin section and mobile flag (54163c8)
  • api: get/add/remove user relation labels (3d370d9)
  • auth: “Sign in with OpenID” - external OIDC client end-to-end (e9bd995)
  • avatars: shrink dependent avatar large variant on mobile (23d6d02)
  • cron: add list-owner-reminders + relationship-reminders fan-outs (e5105be)
  • cron: auto-archive supports customHolidayId resolution (8318a59)
  • cron: daily parental-relations reminder pass (79e90c5)
  • cron: generic-holiday auto-archive pass and email send (be7bc86)
  • cron: wire enableChristmasEmails for post-archive owner email (35c7de3)
  • db: add ‘holiday’ list type and metadata columns (97772dd)
  • db: user_relation_labels table and relation_label enum (442d393)
  • emails: add pre-event reminder templates and send wrappers (164136d)
  • emails: generic post-holiday email template (d553fe3)
  • emails: parental-relations reminder template + send fn (c1447ec)
  • holidays: admin-curated holiday catalog (6f4e050)
  • holidays: make every catalog entry opt-in by default (435c965)
  • intelligence: “set your people” analyzer (e6df13d)
  • intelligence: add per-item polish suggestion analyzers (3e83fc6)
  • intelligence: add per-list filter popover to the suggestions page (a3ac9e8)
  • intelligence: bundle noisy per-item recs into per-list cards with sub-item actions (f5f2c46)
  • intelligence: exclude todo lists from analyzers (83f6754)
  • lists: country and holiday pickers for the holiday list type (deb618a)
  • lists: curated holiday catalog backed by date-holidays (4cc416b)
  • lists: enforce admin list-type toggles in API (e88eeca)
  • lists: show recipient avatar on edit header for non-owner lists (19f52f9)
  • lists: use customHolidays picker on create and settings flows (32bb3f1)
  • lists: validate holiday metadata on create and update (d01f964)
  • mobile-api: capabilities probe and TOTP challenge fork (12687d1)
  • mobile-api: passkey sign-in begin/finish endpoints (23597ab)
  • mobile-api: switch passkey to browser-driven flow (4f4bee9)
  • mobile-api: wire OIDC begin/finish stub and fix capabilities probe (8633088)
  • profile: add optional bidirectional partner anniversary (da38d7d)
  • relationships: per-arm gating, drop legacy enableParentalRelations (71285eb)
  • schema: add custom_holidays, custom_holiday_reminder_logs, todo_items (5049b56)
  • scrapers: extract aggregate review rating from product pages (68154f5)
  • screenshots: dedicated screenshot env + new routes (1d0192a)
  • screenshots: emit diagonal split images per viewport (ecf183f)
  • screenshots: mirror basic screenshots to docs (17981c3)
  • settings: add reminder + relationship-reminders keys (c808283)
  • settings: parental-relations flag and reminder lead-time (2f96b00)
  • settings: rename christmas gate and add generic-holiday flags (7fe8424)
  • sse: broadcast item, comment, addon, and list events (4c61fbf)
  • sse: subscribe /me, edit, and organize surfaces (a17706b)
  • sse: subscribe recent and purchases feed surfaces (8e8ef79)
  • todos: add todo API + list-type isolation rules (4bf4dbe)
  • todos: minimal todo-list UI surface (6cade17)
  • ui: add TreeRow primitive with reusable hierarchy connectors (18d0979)
  • ui: list-type icon and tile for the holiday list type (b18434d)
  • ui: profile section for tagging mothers and fathers (3479288)
  • widgets: upcoming-holidays feed alongside birthdays (38b83c1)

Bug Fixes

  • admin: use Select dropdown for Mother’s/Father’s Day country (0d6e011)
  • auth: drop server-fn URLs from the post-sign-in redirect (a4192d8)
  • crypto: pin GCM auth tag length to 16 bytes (e15c2ca)
  • intelligence: per-item delete rows + pending overlay on rec cards (8a99283)
  • intelligence: point relation-labels rec at /settings/ via path-shaped nav (d777588)
  • intelligence: skip primary-list rec for dependent subjects (7368f88)
  • lists: widen create-list dialog and truncate long select values (2b93f94)
  • me: wrap children’s lists in ListsCard like dependents’ (559bcd0)
  • mobile-api: wrap GET /v1/app-settings in { settings } (99f7a47)
  • mobile-api: wrap GET /v1/storage/status in { status } with canUpload (eb1d91d)
  • readme: trim and route to giftwrapt.dev (3673188)
  • screenshots: wait for all images to load before capture (eab6145)
  • settings: drop zod defaults so partial().parse stays sparse (f000626)
  • storybook: stub @tanstack/react-start/server to unblock build (7258e3c)
  • ui: keep first-paint splash dark and centered (99b55bb)

v0.30.0

0.30.0 (2026-05-12)

Features

  • holidays: route Mother’s Day per country, expand catalog (517328c)
  • widget: add custom_holidays resolution path (be7ce83)
  • widgets: redesign upcoming-holidays feed as per-user list (939e8ab)

Bug Fixes

  • admin: gate custom-holidays section on enableGenericHolidayLists (e783264)
  • admin: unfilter relation-labels picker in admin edit-user flow (d4cadfb)
  • cron: satisfy tanstack-start serializer for admin cron return types (1051316)
  • permissions: hide restricted indicator from restricted users (bf4a181)
  • profile: replace native date input with masked date picker (3b7bd9c)

v0.30.1

0.30.1 (2026-05-13)

Bug Fixes

  • cron: fix stale .notes/cron-and-jobs.md path in code comments (6a8507f)

v0.31.0

0.31.0 (2026-05-15)

Features

  • admin: extract mobile-app redirect URIs into dedicated editor (e910ec7)
  • cron: auto-cleanup orphan claims on event date (e4ac509)
  • deploy: publish Railway one-click template (c985642)
  • intelligence: ai-assisted rename for convert (list-hygiene phase 2) (0a503c0)
  • intelligence: list-hygiene analyzer for upcoming archive events (6153bc3)
  • intelligence: merge duplicate event lists (list-hygiene phase 2) (e18836d)
  • intelligence: stale-public-list detection (list-hygiene phase 2) (6e1ecce)
  • items: add pendingDeletionAt + read-time safety net (6f68492)
  • items: orphan-claim flow for recipient-deleted items (16378fa)
  • me: list-type legend modal (cbb3079)
  • orphan-claims: per-list alert + /purchases summary UI (57cada7)
  • settings: hoist mobileRedirectUris to top-level mobileApp config (51f9be1)

Bug Fixes

  • auth: auto-revoke other sessions + mobile keys on password change (bcd160e)
  • build: keep client bundle free of node:crypto (4b569b7)
  • comments: warn that comments are public in the input placeholder (84b3815)
  • email: surface Resend errors from sendTestEmail (1a6d159)
  • images: upgrade http image URLs to https (e2c6a4e)
  • markdown-notes: show list bullets and isolate link hover (f87e393)
  • migrations: split 0034 with statement-breakpoint for pglite (843f9a1)
  • purchases: restore page icon color to match sidebar (e05fcc6)
  • stories: query orphan-summary link by text, not role (148731e)
  • tests,orphan-claims: unblock suite and resolve partner symmetrically (ce7a682)

Performance Improvements

  • charts: lazy-load recharts on purchases and admin intelligence (d114d14)
  • email: lazy-load templates in resend so they stay out of routes (61646c0)

v0.32.0

0.32.0 (2026-05-15)

⚠ BREAKING CHANGES

  • squash migrations to baseline and overhaul local dev setup

Features

  • squash migrations to baseline and overhaul local dev setup (a813eca)

v0.33.0

0.33.0 (2026-05-16)

⚠ BREAKING CHANGES

  • settings: fresh deployments no longer expose the todos list type out of the box. Operators can re-enable via the admin app-settings editor.

Features

  • admin: expand edit-user modal with DatePicker and per-user permissions (3663060)
  • docker: generate selfhost compose matrix from feature registry (6b0a407)
  • settings: default enableTodoLists to false for new tenants (7076921)
  • todos: confirm item deletes and align settings UI with type-lock (c1f0610)

Bug Fixes

  • calendar: render dropdown caption layout cleanly (3c08c00)
  • capitalize “Amazon Wish List” consistently (eece254)
  • lists: gate “test” list type to local dev only (c74e7f9)
  • todos: render TodoList on edit page and align add-item dialogs (73b6061)

v0.34.0

0.34.0 (2026-05-16)

Features

  • profile: circular crop dialog and unified admin edit-user save (f4cabc8)

v0.35.0 Latest

0.35.0 (2026-05-18)

Features

  • admin: gate barcode page on enableMobileApp setting (bb2a607)
  • barcode: add admin page and live probe (32a2e97)
  • barcode: add product-lookup endpoint for mobile (0b9a18d)
  • barcode: add schema, settings, and provider layer (1a2c834)
  • items: add product photo upload with AI vision prefill (aa13d16)
  • migrate: detect post-squash upgrade and link recovery docs (a2f82f8)

Bug Fixes

  • admin: toast and close edit-user dialog on save (a74e825)
  • csp: allow blob: in img-src for client-picked image previews (54369c9)
  • garage: use loopback for in-container CLI rpc_public_addr (21e6fa2)
  • scrapers: make AI structured output schema Gemini-compatible (c984b37)