Skip to content

Changelog

Version 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)