All versions since v0.23.0
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 }withcanUpload(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)