What's New - Margin Master

What's New

Stay up to date with the latest features, improvements, and fixes

What's New in Margin Master

Stay up to date with the latest features, improvements, and fixes.

MarginMaster v2026.303.40103 v2026.303.40103

March 3, 2026 20 changes(2 deployments combined)
Affects:Do it Best
Improvement 5 items
  • Improved update snooze interface

    Replaced cryptic snooze options ("1 Hour", "1 Day", "1 Week", "1 Month") with descriptive labels ("Don't show me for one hour", "Don't show me for one day", etc.) and moved the snooze selector into the update status dialog itself. The 1-month option was removed. The selected snooze interval is now saved immediately when closing the dialog and respected during automatic update checks.

  • Streamlined update snooze preferences

    Moved the snooze interval selector directly into the Update Status dialog, replacing the separate multi-button snooze prompt. Users can now choose their preferred reminder frequency ("Show me every update", "Don't show me for one hour/day/week") from a dropdown when viewing update information. The selected interval is automatically saved when closing the dialog. Also removed the "1 Month" snooze option to simplify choices.

  • License initialization logging enhanced

    Startup now logs whether IPWorks licenses were loaded from the API or from cached appsettings.json. If both sources fail, a warning is logged indicating FTP/SFTP/ZIP operations may not work, but application startup continues normally.

  • Performance logging for selection box loading

    Added diagnostic timing to track how long each selection box takes to populate. Fields taking over 5 seconds now log a warning, while fields taking over 1 second log an informational message. Binary fields (Yes/No values) now skip expensive database queries and use static values, significantly improving startup performance.

  • Enhanced selection box loading performance

    Added performance optimizations for boolean/binary fields (HasZonePricing, Lock, PrivateLabel) by using static Yes/No values instead of querying the database. Added performance logging to identify slow-loading selection boxes. Binary fields now load instantly rather than requiring expensive DISTINCT queries.

Bug Fix 4 items
  • Fixed auto-update crash in debug mode

    Resolved a NotInstalledException that occurred when checking for updates in debug mode on non-installed builds. The application now simulates update checks when running under the debugger without a Velopack installation, allowing developers to test the application without crashes.

  • Fixed auto-update check error in debug mode

    Resolved an error that prevented the auto-update system from checking for updates when running in debug mode. The system now properly simulates update checks during development without throwing exceptions.

  • Fixed Query Store enablement compatibility

    Resolved an issue where enabling Query Store for diagnostics would fail on certain SQL Server builds that don't support the STALE_QUERY_THRESHOLD_DAYS parameter. The system now automatically retries without this parameter if needed.

  • Fixed managed index recommendations for cross-database scenarios

    Corrected an issue in the diagnostics system where missing index recommendations would generate invalid SQL when the database name in the recommendation differed from the current connection context. Recommendations now always use local table references that work correctly.

User Interface 5 items
  • File menu separator cleanup

    Removed an extra separator line in the File menu that appeared between the Restart and Exit menu items. The menu now has better visual spacing with a single separator appropriately grouping the restart and exit functions together at the bottom of the menu.

  • Cleaned up File menu separator

    Removed an extra separator line that appeared before the Exit menu item in the main window's File menu, eliminating visual clutter and improving the menu layout.

  • Reorganized database connection menu items

    Moved "Connect to existing database" and "Create a new database" from the dynamic database names dropdown list to dedicated menu items in the File menu, positioned above Restart and Exit with separators for visual clarity. This change makes these important connection commands more discoverable and separates them from the list of recent/available databases.

  • Redesigned update notification display

    Replaced the full-width green banner with a compact "Update Available" badge in the window's title bar header. This reduces visual clutter while still making update availability clearly visible. Clicking the badge opens the update dialog.

  • Redesigned update notification display

    Replaced the full-width green banner that appeared below the main toolbar with a compact "Update Available" badge in the window header. The badge shows an icon and text, is clickable to view update details, and only appears when an update is actually available. This reduces visual clutter while still keeping users informed.

Database 1 item
  • Expanded startup indexes for faster initial queries

    Added managed indexes for commonly queried columns (Dept, Class, VendorNumber, PrimeVendor, ProductGroup, ProductGroup2, Location) on all main tables. These indexes prevent expensive full table scans when populating selection boxes at startup, particularly for cold storage scenarios. Also improved error handling to automatically disable indexes when target tables don't exist.

Architecture 1 item
  • IPWorks licenses served from cloud API

    Runtime licenses for IPWorks (FTP), IPWorksSSH (SFTP), and IPWorksZip components are now retrieved from the Blazor API during startup, with base64-encoded appsettings.json fallback for offline use. This removes hard-coded license keys from source code and enables centralized license management. The new IPWorksLicenseService follows the same pattern as the Dapper configuration service and runs in parallel during startup to avoid delays.

Infrastructure 3 items
  • IPWorks NuGet packages updated

    Updated nsoftware.IPWorks to build 9544, nsoftware.IPWorksSSH to build 9545, and nsoftware.IPWorksZip to build 9544. Debug builds now include version checking to warn developers when package versions and license keys may be out of sync.

  • Cleaned up unused update notification code

    Removed the custom notification toast system (UpdateNotificationView, UpdateNotificationViewModel) and associated custom notification service, simplifying the update notification architecture.

  • Cleaned up unused notification components

    Removed the UpdateNotificationView and UpdateNotificationViewModel components that are no longer needed after redesigning the update notification system.

Refactoring 1 item
  • License management centralized across all FTP operations

    All FTP, SFTP, and ZIP operations now retrieve licenses through the new IPWorksLicenseService instead of referencing a static class. This affects backup/restore operations, vendor file downloads (Do-It-Best mailbox, Ace/Orgill/EJ catalog imports), database backup compression, and support file replication.

Retailersoft, Inc.
Tools for Success
Connect with us

© 2026 Retailersoft, Inc. All rights reserved.

Loading...

Reconnecting to the server...

This usually takes a few seconds.