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.325.32634 v2026.325.32634
March 25, 2026 32 changes-
Require manual approval for auto-updates setting
Added a new "Require approval before applying updates" checkbox in Settings > Miscellaneous > Auto Update Check. When enabled, updates will never be automatically downloaded and installed — users must explicitly click "Update Now" in the update notification dialog. When disabled (default), updates continue to download and install automatically at startup unless snoozed. This gives users more control over when disruptions from updates occur.
-
Support scripts download from cloud storage
Support scripts in the Installation Scripts tool now download the latest version from Azure Blob Storage (marginmasterdownloads container) using SAS token authentication when executed. If offline, scripts fall back to a local cache at C:\ProgramData\RetailerSoft\MarginMaster\Scripts\, and finally to embedded resources bundled with the application. A status message displays during download to show progress.
-
Support scripts now download from cloud storage
-
Auto-select issue when opening from notification pill
When clicking the open issues notification pill in the main window, if there's exactly one open issue it will be automatically selected and displayed. If multiple issues exist, the Support Issues screen opens with the most recent issue selected. This eliminates an extra click for users responding to issue notifications.
-
System information auto-trimmed from issue descriptions
The auto-captured system information block (OS version, .NET version, database path, etc.) is now hidden when viewing your own issue descriptions in the Support Issues screen, since you're already on that same system. The information is still captured and visible to support staff on the server side.
-
Added direct "Create New Database" command
Added a new SwitchToCreateNewCommand that allows users to quickly switch to Create New mode from Connect Existing mode without losing their server connection settings. This command is exposed in the new File menu and is enabled only when in Connect Existing mode.
-
Added File menu command for Create New mode
Added SwitchToCreateNewCommand that allows users to quickly return to Create New Database mode from the File menu, complementing the existing mode-switching functionality. This command is only enabled when in Connect to Existing mode.
-
Improved dialog window positioning
Updated Support Scripts dialogs to open centered over the Database Setup window (CenterOwner) rather than CenterScreen, providing better visual context. Also set the password prompt and scripts window to have the Database Setup as their owner window, improving focus management.
-
Smart sender labels with role identification
All support conversation messages now display formatted sender labels that combine the user's name with their role (e.g., "Brad Green (Support)" or "John Smith (User)"). If a name is missing or appears as a GUID, the system displays generic labels like "Support (Support)" or "User (User)" to ensure clarity. In thread view, sender initials are extracted and displayed in the avatar circle (e.g., "BG" for Brad Green).
-
Fixed catalog item lookup for Do-It-Best stores
The "Add Item from Catalog" feature was querying the MMVendorData SQL view, which depends on multiple tables that may not exist or be populated. The query has been updated to read directly from DIBCatalogRecords, making the feature work reliably regardless of view availability.
-
Fixed support scripts dialogs appearing behind window
Password prompt and support scripts dialogs now properly set their Owner window and use CenterOwner positioning, preventing them from appearing behind the Database Setup window where they could cause the application to appear frozen. Added Topmost flag to password dialog for additional visibility.
-
Fixed catalog SKU list population for Do-It-Best
The initial SKU lookup list displayed in the "Add Item from Catalog" dialog was also querying MMVendorData. This query now reads directly from DIBCatalogRecords, ensuring all available catalog items appear in the selection list.
-
Contact delete and edit operations in issue submission
Implemented DELETE contact API integration with confirmation dialog. Added "Edit Contact" command that selects a contact in the list and populates the edit form. Fixed issue where the "Continue" button could be clicked even when no contact was selected by adding validation that at least one contact checkbox must be checked.
-
Redesigned contact selection in Support Issues screen
Replaced the dropdown contact selector with a side-by-side layout: contact list with checkboxes on the left, edit form on the right. Users can now select multiple contacts to notify (primary + CC), click any contact to edit it, add new contacts via "Add Contact" button, or delete outdated contacts with inline delete buttons. Support employee contacts (Retailer Software staff) cannot be edited or deleted but can be selected for notifications.
-
Added menu bar to Database Setup window
The Database Setup window now features a File menu (Create New Database, Restore Database, Cancel) and Tools menu (Support Scripts). This provides quicker access to common operations without scrolling through the full form. The bottom action bar has been simplified to show only Proceed and Cancel buttons.
-
Removed obsolete database connection screens
Deleted multiple deprecated database connection views and windows (DatabaseConnectionWindow, DatabaseConnectionView, and associated ViewModels) that were no longer being used. All database configuration functionality is now consolidated in the modern DatabaseSetupWindow. This cleanup removes over 1,200 lines of unused code and eliminates confusion from having multiple similar screens.
-
iMessage-style bubble view for support conversations
Support conversations now default to a modern bubble chat interface similar to iMessage. User messages appear right-aligned in blue bubbles (with white text), while support team responses appear left-aligned in light gray bubbles (with dark text). Each bubble displays the sender name and role above it (e.g., "Brad Green (User)" or "Support (Support)"), with a timestamp in the bottom corner. Bubbles have rounded corners with a subtle "tail" effect (flat bottom-right for user messages, flat bottom-left for support messages) and a light drop shadow for depth. Bubbles are limited to 75% of the chat area width to maintain readability.
-
iMessage-style chat bubbles for support conversations
Support ticket conversations in the Support Tools screen now display in an iMessage-style interface with rounded chat bubbles. User messages appear in blue bubbles aligned to the right, while support team messages appear in light gray bubbles aligned to the left. Each bubble includes rounded corners with a subtle "tail" effect (flat corner on the sender's side), drop shadows for depth, and displays the sender's name/role label above the bubble with timestamps inside.
-
Added menu bar to Database Setup window
Added a new menu bar to the Database Setup screen with File and Tools menus. The File menu provides quick access to "Create New Database," "Restore Database," and "Cancel" actions. The Tools menu contains the password-protected Support Scripts option. This improves discoverability of key functions that were previously only available through buttons.
-
Database Setup window margins tightened
Reduced margins and spacing in the Database Setup Window so all content fits cleanly within the 720px window height without requiring scrolling. Adjusted padding between Database Configuration and Store Information sections from 15px to 5px.
-
Installation Scripts dialog auto-resizes to content
-
Twitter-style thread view as an alternative layout
A new thread view option displays conversations in a full-width, social-media-style layout. Each message shows a circular avatar with the sender's initials, followed by the sender name with role label and timestamp in the header, then the full message text below. Messages are separated by horizontal dividers and fill the entire width of the chat area, making it easier to scan long technical discussions.
-
Dual view toggle between bubble and thread layouts
Added radio button controls above the conversation area allowing users to switch between "Bubbles" (iMessage-style) and "Thread" (Twitter/X-style) layouts. The bubble view emphasizes visual separation and modern chat aesthetics, while the thread view displays messages in a traditional vertical feed with avatar circles, sender labels, and horizontal separators. The selected view preference is saved to application settings and persists across sessions.
-
Quick Find dialog auto-sizes to content
Quick Find dialog (Ctrl+F) now uses SizeToContent instead of a fixed 400x300 pixel size, allowing it to dynamically adjust to its content. This ensures the search interface displays optimally regardless of screen resolution.
-
SKU Lookup dialog auto-resizes to content
-
Persistent view toggle with radio buttons
Two radio buttons labeled "Bubbles" and "Thread" appear at the top-right of the chat area, allowing instant switching between the two conversation layouts. The selected view is saved via the new SupportCommentUseBubbleView setting and restored when reopening the Support Issues screen, so each user's preference persists across sessions.
-
Avatar initials and enhanced sender identification
In thread view, each message displays an avatar circle showing the sender's initials (e.g., "BG" for "Brad Green"). Both views now show clear sender labels indicating whether the message is from "Support" or "User" to eliminate confusion about message origin. System-generated usernames are automatically replaced with generic labels for cleaner display.
-
Auto-scroll comments to most recent message
The Support Issues chat area now automatically scrolls to the bottom when comments are loaded or when new comments arrive during polling, ensuring the most recent message is always visible without manual scrolling.
-
Database Setup window spacing refinements
-
Support comment tracking enhancement
Added `IsFromSupport` boolean field to the `IssueCommentForDev` model to reliably distinguish between customer-originated and support team-originated comments, replacing the previous string-based comment type parsing logic. This provides more accurate message direction determination for the new chat bubble alignment and styling.
-
IsFromSupport flag replaces comment-type parsing
The API response model now includes an explicit IsFromSupport boolean flag on each comment, replacing the previous approach of parsing comment type strings to determine message alignment and styling. This simplifies the UI logic and makes the distinction between user and support messages more reliable. New converters handle alignment, colors, corner radius, initials, and sender labels based on this flag.
-
Removed obsolete database connection screens
Deleted eight unused files including DatabaseConnectionWindow (both startup and in-app versions), DatabaseConnectionView, DatabaseConnectionViewModel, and DatabaseConnectionAction enum. These screens were fully replaced by the newer DatabaseSetupWindow but remained in the codebase. Also removed their dependency injection registrations and dialog service references from MainMMWindow.

