Skip to main content
← Back to Building Storkie

Release notes

Page 7 of 9

  • 1.25.0

    New

    • rebrandStorkling is now renamed to Storkie throughout the app

    Fixed

    • Patch vite 7.3.0 → 7.3.2 to resolve 3 audit vulnerabilities
  • 1.24.1

    Fixed

    • Patch migration 069 for production data compatibility
  • 1.24.0

    New

    • Add /query-audit and /verify-fix skills, fix stale test assertion
    • dbAdd migration 065 — fix stats RPC and add chat indexes

    Fixed

    • Add async to non-async server action exports in activities.ts
    • Add default export to web-push mock so default import resolves correctly
    • Align 28 stale tests with refactored source code
    • Align 8 stale test assertions and bump lodash override to resolve audit
    • Align test assertions with logError refactor and requireAuthForQuery behavior
    • Core library improvements — env vars, auth, photo upload, proxy
    • Eliminate 3 HIGH-severity useEffect anti-patterns — render cycles, unstable deps, and per-tick writes
    • Feature hooks — photos, sharing, notifications, child profiles
    • Make SUPABASE_SERVICE_ROLE_KEY always optional in env schema
    • The dashboard prevents signed-out users from seeing authenticated data
    • pwaSwitch navigation caching to network-first to prevent stale chunk crashes
    • Reorder timeline test mock data to match server-side DESC sort
    • Replace cyan PWA theme color with responsive dark/light values
    • Replace no-explicit-any with typed cast in createActivityModal
    • Resolve 2 ESLint errors, 3 warnings, 7 TS errors, and 41 stale test assertions
    • Resolve 2 TypeScript errors and 2 ESLint warnings from verify:ci:fast
    • Resolve 7 TypeScript errors, 10 mock hoisting failures, and 11 stale test assertions
    • Resolve 8 lint warnings and 111 test failures from auth refactor
    • Resolve build error, 2 lint errors, 1 TS error, and 6 stale test assertions
    • security,perfHarden APIs and optimize critical paths
    • securityHarden API routes — rate limits, auth checks, logging cleanup
    • Suppress 3 react-hooks/refs false positives and remove stale eslint-disable
    • swCorrect manifest path and bump cache version
    • swStop intercepting requests the SW doesn't need to handle
    • Type safety and minor bug fixes
    • uiModal, timeline, and settings component updates
    • Use React.Fragment symbol instead of string in createElement

    Faster

    • Cache Ratelimit instances by config to avoid per-call allocation
    • Cache Supabase client per-request via React cache()
    • Clean up session list query — remove dead code, extra columns
    • Deduplicate user settings actions with generic helper
    • Eliminate N+1 queries, fix over-invalidation, and batch DB operations
    • Eliminate redundant queries and over-broad cache invalidation
    • Extract calculateInsights to break cold-start import chain
    • Fix query invalidation gaps, add DB indexes, and optimize cache strategies
    • Lazy-load web-push in cron handler to reduce cold start
    • Optimize Lighthouse scores — font subsetting, lazy-load AI SDK, fix Sentry 404
    • The chat feature uses a different model for generating titles
  • 1.23.0

    New

    • aiUsers can now opt-in to Smart Insights for AI data access in settings
    • chatChat pages now show a loading skeleton while loading
    • chatA Smart Insights prompt has been added to chat and the UI is polished
    • chatThe chat interface loads better and suggestions are displayed in a clearer layout
    • chatThe loading spinner in the conversation list is replaced with a skeleton loading
    • settingsA Smart Insights toggle is now available in the Storkie AI section of settings
    • sleepThe wake-up time input now has a calendar date picker
    • uiChat pages have new entry animations
    • uiLoading screens show an upgraded shimmer effect with animations
    • uxThere is a new popup and badge for overdue activities

    Fixed

    • aiAdd timezone-aware queries and pre-converted timestamps
    • chatThe chat interface now shows the date better and focuses on input more easily
    • uiAdd conversation delete button and fix toast positioning
    • uiRaise toast position above bottom navigation
  • 1.22.0

    New

    • chatThe chat section has new list and thread options
    • chatThe chat interface, messages, and markdown styles have been refreshed
    • chatTool-calling architecture with gpt-5.4-nano and Storkie persona

    Fixed

    • securityAdd session ownership verification in chat stream route
  • 1.21.2

    Fixed

    • dashboardThe dashboard shows the end time for sleep and nursing elapsed displays
  • 1.21.1

    Fixed

    • dbUse maybeSingle() in getActivityById to handle missing rows gracefully
    • photosThe delete photo dialog now uses a soft-delete pattern instead of a nested delete dialog
    • sleepSleep wake times will save even if the timer is running

    Faster

    • pwaReduce cold start time with parallel fetches and SW caching
  • 1.21.0

    New

    • The photo gallery and viewer now group photos by date
    • Bottle quick-select buttons, head circumference display, timeline icon + unit fix
    • The activity filter now allows multi-select options
    • dashboardThe settings gear is moved to the header, and card displays are improved
    • navThe TopBar is polished, and BottomNav routing is simplified
    • The wake-up time input now automatically infers the date
    • timerThe sleep and activity modals have a timer feature added
    • uiAdd reusable scroll indicator hook and component
    • uxScroll indicators are now included in modals and timeline views

    Fixed

    • All modals no longer automatically focus on mobile devices
    • timelineThe timeline cards now have increased height for two-line notes
    • The summary empty state icon uses opacity instead of color
  • 1.20.0

    New

    • The dashboard now sorts activities based on urgency
    • Add feeding_preference, measurement_system, and activity_cards_pinned to user settings
    • The Timeline, Summary, and Photos have new entry animations
    • Add useMounted shared hook for hydration safety
    • Add useMountEffect utility hook
    • Card settings now auto-save when changes are made
    • The Summary is now a separate page, simplifying the timeline views
    • The modal user experience has been improved with better indicators and labels
    • The dashboard has a new layout with a hybrid design and a count pill
    • Navigation features a quick-add grid and a TopBar dropdown integrated into the dashboard
    • The settings page has been redesigned and includes card management and feeding preferences for onboarding
    • The interior of the dashboard card is restyled with a vertical stack and texture
    • The dashboard uses a 3-column grid with the featured card displayed first on larger screens

    Fixed

    • Adapt responsive design (flexible widths, mobile breakpoints)
    • Add initial page entrance animation to SummaryView
    • The wet diaper card has a hover border now
    • Buttons on activity cards take full width
    • Bump flatted override to >=3.4.2 for prototype pollution CVE
    • Clarify redundant UX copy
    • Consolidate duplicated rdp-day rules into @layer utilities
    • Charts show different colors in dark mode
    • Storkie improves accessibility features
    • The background icon on activity cards has better contrast
    • The dashboard layout has been improved with better row height and centered cards
    • Empty states now include educational guidance for more clarity
    • Claude review allows for more turns and additional tools
    • The timeline animation is now controlled by parents when switching tabs
    • Contrast, chart text, and detail tab text colors have been standardized
    • Normalize remaining hard-coded hex colors to CSS custom properties
    • Normalize theme tokens and dark mode gaps
    • Performance has been optimized for smoother operation
    • Decorative animations and blur effects are now less distracting
    • The backdrop-blur effect has been removed from UI controls for clearer display
    • Replace bounce/overshoot easing with smooth deceleration curves
    • Replace remaining raw img tags with next/image, add lazy loading
    • Resolve timeline tab-switch animation competing with isPending dim
    • Responsive tweaks (slider padding, photo grid, gender buttons)
    • Revert ActivitiesPageClient redirect to useEffect
    • Sticky modal footer on desktop and zoom-aware timeline positioning
    • Toast action button invisible in dark mode
    • UI polish — drop-shadow cleanup, switch sizing, theme swatches, font removal
    • UI polish — timeline critique improvements
    • Unify notification list spacing to space-y-2
    • Use --allowedTools in claude_args instead of invalid allowed_tools input
    • Use element-level opacity for card watermark icons
  • 1.19.1

    Fixed

    • Add localStorage polyfill for Node 24 compatibility
    • The timeline date automatically advances when the app reopens after midnight
  • 1.19.0

    New

    • pwaAn install prompt is added for users
    • pwaThe InstallPromptBanner is connected in the app

    Fixed

    • Bump undici override to >=7.24.0 for WebSocket/smuggling fixes
    • pwaAddress code review findings for install prompt
    • pwaAuto-dismiss iOS install banner on page hide
    • pwaRemove confirm dialogs on service worker update
    • The confirm dialogs for service worker updates are removed and the Clerk avatar is centered in the top bar
  • 1.18.0

    New

    • rebrandThe app is now called Storkling in configuration files
    • rebrandThe app is now called Storkling in emails
    • rebrandThe app is now called Storkling in the page metadata
    • rebrandThe app is now called Storkling in the PWA manifest
    • rebrandThe app is now called Storkling in the root layout
    • rebrandThe app is now called Storkling in the service worker
    • rebrandThe app is now called Storkling in various URLs
    • rebrandThe app is now called Storkling in user-facing text
    • rebrandRename localStorage keys from babytracker to storkling
    • rebrandThe app now features Storkling stork branding in the icons
    • rebrandUpdate icon assets with full blue background
    • rebrandUse SVG favicon for crisp browser tab icon

    Fixed

    • Resolve flatted audit vulnerability via pnpm override
  • 1.17.0

    New

    • There is an option to keep editing in the DiscardConfirmDialog
    • The SleepModal now has a blank end time default and a Current Time button
    • The diaper hourly bar chart is colored by type: wet, dirty, both, or dry
    • Diaper type buttons are now colored to match the timeline icons
    • The timeline cards show the activity type label
    • The summary tab syncs with the URL and shows loading skeletons

    Fixed

    • The nursing timer buttons will not submit forms mistakenly
    • The Add Photo button has activity-colored borders in all modals
    • Cards are blurred before modals open for better visibility
    • There is instant visual feedback when switching views on the timeline
    • The Y-axis remains fixed while you scroll bar charts on mobile
    • The service worker no longer intercepts certain requests
  • 1.16.0

    New

    • Add shared hooks and utilities for modal/card simplification
    • Add useLongPress hook for gesture detection
    • The dashboard shows timestamps that update live in the cards
    • navA long-press on the Quick Add button opens a shortcut popup
    • settingsThe settings now show success messages, guard against unsaved changes, and have polished notifications
    • sleepThe sleep timer state is saved in local storage
    • summaryThe summary page has over 15 new charts and a restyled activity display
    • summaryThe summary now includes a sleep session duration chart with a custom tooltip
    • summaryThe Insights page shows a dynamic timeframe label based on your date selection
    • summaryThe timeline summary has been redesigned to a new layout inspired by Oura's "Today Feed."
    • summaryThe date range dropdown has been replaced with preset pills and a calendar picker
    • timelineThe timeline now has continuous infinite scrolling and redesigned day headers
    • timelineThe timeline shows the default view tab when you first open it
    • timelineThe timeline keeps the active view tab saved in the URL
    • timelineThe list view uses a DatePicker instead of a WeekPicker

    Fixed

    • Add error boundaries, loading states, and page polish
    • Add top padding between view tabs and date selector
    • Auth logError, optimistic delete, SW cleanup, and utility fixes
    • chartsUse numeric height for ResponsiveContainer to prevent -1 warnings
    • The dashboard cards show empty states and updated temperature units
    • Disable Sentry event reporting in development
    • Hooks error handling, timezone, and query keys
    • Improve error handling and remove redundant refetches
    • Improve error handling, Sentry reporting, and loading states
    • Layout consistency, CSS variable heights, and navigation a11y
    • Modal validation, loading states, and UX polish
    • Move modal preload imports to stable module to prevent HMR warnings
    • NursingCardThe nursing card formats duration as mm:ss instead of raw decimals
    • Page loading skeletons, settings polish, and auth metadata
    • Page-level fixes, SW guard, and remove dead chat route
    • Page-level fixes, SW guard, and remove dead chat route
    • Remaining UI/UX audit items — modals, cards, hooks, CSV export
    • The page scrolling works correctly now without any issues
    • The timeline no longer shows the realtime connection status banner
    • Replace next/dynamic with React.lazy to prevent unused preload warnings
    • The header now has a refresh button and a version label
    • The app properly manages registration, pushes subscriptions, and improves dialog accessibility
    • The timeline date selector labels have been corrected and the stat strip wraps appropriately
    • The timeline now has improved user experience and touch targets
    • timelineThe timeline shows an empty state, syncs dates, and uses consistent heights
    • timelineThe timeline features unit-aware formatting, polished charts, and summary tabs
    • UI accessibility, touch targets, and component polish

    Faster

    • The activity cards and timeline views load faster
  • 1.15.0

    New

    • nursingThe nursing activity has a persistent timer that shows an indicator in the header
  • 1.14.4

    Fixed

    • authAdd localStorage fallback to resolveChildProfile
    • nursingLift timer to React Context for single-instance guarantee
    • nursingMove eslint-disable-next-line to correct position
    • nursingPreserve accumulated side duration when switching back
    • nursingStop useEffect resetting form every second and guard handleClose
    • nursingUse timer values on save and track session start time
  • 1.14.3

    Fixed

    • pwaThe app shows an inline splash screen instead of a blank screen when starting up

    Faster

    • authRemove redundant auth guards already handled by proxy
  • 1.14.2

    Fixed

    • authHandle Clerk API failures gracefully on activities page
  • 1.14.1

    Fixed

    • pwaRemove root loading.tsx to prevent hooks crash on redirect
  • 1.14.0

    New

    • Error boundaries are added for the activities, child profile, and chat pages
    • Rate limiting is applied to the AI chat function

    Fixed

    • dataThe summary detail tabs show correct statistics now
    • dbAdd restore_activity SECURITY DEFINER RPC
    • photosThe photo gallery shows all activity photos and has improved thumbnail quality
    • securityAdd UUID validation and partial update validation
    • securityEscape HTML in invitation email template
    • securityOverride serialize-javascript to patch RCE vulnerability
    • securitySwitch cron route to service role key
    • securityUse JWT identity for soft_delete_activity auth check
    • uiThe activity type labels on activity cards are now capitalized
    • uiThe photo viewer uses next/image for better image handling
    • uiChart tooltips are now readable in dark mode

    Faster

    • Convert static modal imports to dynamic loading
    • dbOptimize RPC auth checks and realtime subscription
    • dbReplace client-side diaper stats aggregation with server-side RPC
    • Fix QueryProvider to use isServer singleton pattern
    • Parallelize cron notification processing with Promise.allSettled
    • Remove preflight queries from update/delete/stats operations
    • Remove redundant revalidatePath calls and extract cache helper
    • Replace currentUser() with auth() in server actions