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.816.31181 v2026.816.31181

August 16, 2026 18 changes
Improvement 4 items
  • Automatic connection registry cleanup

    Added smart background cleanup that runs after successful startup. The system now automatically removes database entries from the connection history when it can confirm the database no longer exists on the server. Critically, it only prunes entries when the SQL Server instance responds — unreachable servers (offline network machines or stopped services) are never touched, preventing false deletions. The active database connection is never removed regardless of server state.

  • Local server alias consolidation

    Duplicate entries for the same local SQL Server instance are now automatically merged into a canonical form. For example, connections to "localhost\MARGINMASTER", "RS23\MARGINMASTER", "(local)\MARGINMASTER", and ".\MARGINMASTER" are recognized as the same instance and combined into a single entry (.\MARGINMASTER). When duplicate database entries exist across these aliases, the active connection or most recently used entry is preserved.

  • Suppressed misleading "0 records / 01/01/01" rows in POS import history

    The POS import history grid no longer shows empty tables with zero records and placeholder dates (01/01/01). Following MM-1192 precedent, zero-record rows are now skipped during enrichment from main tables, preventing them from suppressing the POS-table fallback and the "no POS data" banner. Residual MinValue dates now render as an em dash (—) instead of "01/01/01 12:00 AM."

  • Empty POS tables no longer create misleading fallback rows

    The POS table fallback logic now skips tables with zero records, preventing empty tables from masking the "no POS data" condition. Previously, a table with zero rows could suppress both the fallback and the "never imported" warning, making the dialog appear as though data existed when it didn't.

User Interface 10 items
  • SQL Server instance dropdowns show product and version

    The Delete Database and Migrate Database dialogs now display SQL Server instances with their full product name and version year (e.g., ".\MARGINMASTER — SQL Server 2025 Express"). This matches the format used in the Connect to Database dialog and helps users distinguish between multiple installed SQL Server instances by showing the actual product (2012, 2014, 2016, 2017, 2019, 2022, 2025) and edition (Express, Standard, etc.) rather than just the instance name.

  • Utilities menu reorganized into functional groups

    The Utilities menu items have been reorganized into three logical sections separated by dividers: diagnostic tools (logs and communications testing) at the top, data/import tools in the middle, and destructive reset operations at the bottom. This new organization makes it easier to find the right utility without scanning through an unorganized list.

  • Utilities menu reorganization

    Menu items in the Utilities menu have been reorganized into three logical groups: diagnostics/logs (Show Log Files, Clear Log Files, Communications Tester), data/import tools (SQL Scripts, MySQL Scripts, Excel Import Map, Import Global File Config Data), and destructive resets (Reset Vendor Data, Reset POS Data). Each group is separated by visual dividers, and the Communications Tester has been moved up from the middle section to sit with other diagnostic tools.

  • Color-coded warning banners in Data Aging dialog

    The Data Aging dialog now displays red and amber banners using the same thresholds (AGINGVENDORDAYS/AGINGPOSDAYS) as the title-bar aging pill, ensuring both indicators always agree. A red banner appears when POS data is at/over threshold or completely missing. An amber banner appears when vendor data is stale. The strongest "No point-of-sale data has been imported" banner explicitly tells users when zero POS records exist anywhere, superseding the generic stale-data message.

  • Prominent warning banners for stale data

    The Data Aging screen now displays colored warning banners when data is stale or missing: an amber banner when vendor data is old or has never been synced, and a red banner when POS data is old or has never been imported. These banners match the colors of the title-bar aging indicator and provide clear messaging about data freshness, ensuring users can immediately see when pricing analysis may be based on outdated information.

  • Communications Tester moved to diagnostics section

    The Communications Tester utility has been moved from the middle of the menu to the diagnostics section alongside log file tools, since it serves a diagnostic purpose rather than a data management function.

  • "No POS data" banner for stores that have never imported

    A dedicated red banner now appears when no POS data has ever been imported into Margin Master, with explanatory text guiding users to import their point-of-sale data. This evidence-based check verifies that the database actually contains records rather than just checking timestamps, preventing confusion when the import timestamp looks valid but tables are empty.

  • SQL Server Setup renamed to SQL Server Tools

    The SQL Server Setup window and all its entry points (menu items, buttons, dialog titles) have been renamed to "SQL Server Tools" to better reflect that it now hosts instance management, database migration/deletion, and support scripts—not just initial setup. References updated in MainMMWindow, DatabaseSetupWindow, SqlServerSetupWindow, InstallationScriptsView, and related view models.

  • DateTime.MinValue displayed as "—" in import history grid

    When enriching POS import history from main tables that lack a LastUpdate column, the CreateDate now displays as "—" instead of "01/01/01 12:00 AM", which was confusing and appeared to be corrupt data.

  • "SQL Server Setup" renamed to "SQL Server Tools"

    All references to the "SQL Server Setup" window and menu items have been renamed to "SQL Server Tools" to better reflect that the window handles both installation and management tasks for SQL Server Express and SQL Server Management Studio, not just initial setup.

Architecture 2 items
  • DataAgingIndicatorPlanner extended with VendorIsStale and PosIsStale flags

    The DataAgingIndicatorPlanner.Result record now includes VendorIsStale and PosIsStale boolean flags, making it easier for the Data Aging dialog to determine when to show banners without re-evaluating thresholds. Unit tests added to verify the flags match the existing ShowWarning and IsAlarm logic.

  • Data aging stale flags exposed in planner result

    The DataAgingIndicatorPlanner.Result record now includes VendorIsStale and PosIsStale boolean flags, allowing the Data Aging dialog to share the exact same staleness logic as the title-bar aging indicator. This ensures both UI elements always agree on whether data is current or needs attention.

Infrastructure 2 items
  • Safety backup before cleanup

    Before modifying the connection registry, a safety backup is written to DatabaseConnections.json.cleanup.bak, providing a recovery path if manual restoration is needed. The cleanup runs fire-and-forget on a background thread after successful startup validation and swallows all exceptions to ensure it never affects application startup or stability.

  • Removed unsafe legacy cleanup methods

    Removed dead code (SqlServerService.RemoveDeletedDatabasesAsync and SyncDiscoveredInstancesAsync) whose unsafe semantics would have deleted remote server entries and lacked the careful reachability checks implemented in the new cleanup system.

Connect with us

© 2026 Retailersoft, Inc. All rights reserved.

Loading...

Reconnecting to the server...

This usually takes a few seconds.