Skip to content

Ntfier v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Feb 11:51

Features

  • replace theme grid with compact preview + list selector
  • add dark rounded background to app icons
  • regenerate all app and tray icons from new logos
  • add context menu with copy title/content to notification cards
  • auto-mark notifications as read for muted topics
  • add notification deletion with optional remote delete and animated UI
  • add comprehensive error handling with toast notifications
  • add image preview route component
  • hide to system tray on minimize when minimize_to_tray is enabled
  • add image-preview window capability and route
  • add attachment availability check with unavailable state
  • migrate from rusqlite to Diesel ORM
  • add LazyImage component for deferred image loading
  • add notification sound setting
  • add compact view mode for notifications
  • add notification expanded state persistence
  • add reusable components and utilities

Bug Fixes

  • validate URL in image-preview route
  • downgrade credential logging to debug level
  • propagate errors in create_subscription server insert
  • add rehype-sanitize to prevent XSS in markdown content
  • sanitize Diesel error messages sent to frontend
  • use url::Url for WebSocket URL building
  • remove password column from schema
  • add try-catch guards to localStorage theme operations
  • resolve unused variable lint warnings and enable unsafe biome fixes
  • log JSON parse errors in JsonVec deserialization
  • prevent infinite loop on connection setup failures
  • wrap multi-step operations in transactions
  • enable SQLite foreign key constraints
  • add comprehensive error handling for image preview window
  • preserve notification collapse state across app restarts
  • run Rust linting on Windows and improve pre-commit hook
  • add fetch-depth for changelog generation

Performance

  • replace lucide-react barrel imports with direct path imports
  • extract noop and reuse stable callback for UpdateToast
  • memoize Header component
  • read previewErrors via ref in handleImageClick callback
  • stabilize onOpenSettings/onAddSubscription callbacks
  • cache localStorage reads for theme preferences
  • defer currentTopicId read in handleMarkAllAsRead via ref
  • narrow loadNotifications effect dependency to subscription IDs
  • pass stable onExpandedChange callback to NotificationCard
  • pass stable callbacks to SidebarTopicItem to preserve memo
  • hoist static ReactMarkdown config to module scope in MarkdownContent
  • use counting loop for unreadCount in NotificationList
  • use Map index for O(1) theme lookup in getThemeById
  • deduplicate totalUnread computation and use single-pass loop
  • memoize AppContext provider value object
  • memoize ThemeProvider context value and callbacks
  • replace lucide-react barrel imports with direct path imports
  • fix double getInitialState() call in ThemeProvider
  • replace filter().length with counting loops in unread counts
  • add reverse index for O(1) notification-to-topic lookup
  • add content-visibility for notification list items
  • memoize AppLayout, SidebarTopicList, and unreadCount
  • lazy load SettingsDialog to code-split settings UI
  • replace barrel imports with direct imports
  • lazy load MarkdownContent to code-split react-markdown
  • spawn notification display as background task
  • optimize N+1 queries in subscription lookups
  • add in-memory cache to reduce OS keychain access

Refactor

  • extract duplicated subscription SQL to constant
  • use toSorted() for immutable notification sorting
  • simplify release changelog to use git log and gh CLI
  • add granular settings queries to avoid unnecessary credential lookups
  • remove unnecessary 100ms sleep
  • reorganize BehaviorTab layout
  • improve notification components

Documentation

  • rewrite feature list and fix formatting
  • document sync Mutex design trade-off in async context

Miscellaneous

  • import sorting
  • remove unused test dependencies
  • remove unused web-vitals
  • remove unused @radix-ui/react-avatar
  • move @radix-ui/react-collapsible to ui package
  • remove CHANGELOG.md and update script reference
  • bump version to 1.0.0
  • update Cargo.lock and apply rustfmt formatting
  • remove unused r2d2 feature from diesel
  • update dependencies and add react-collapsible
  • release 0.7.0
  • add red logo variant
  • update .gitignore with IDE and system files