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.323.34001 v2026.323.34001
March 23, 2026 16 changes(3 deployments combined)-
Install OLEDB 12.0 driver script for RockSolid POS support
Added a new PowerShell script (Install-OleDb12.ps1) that downloads and installs the Microsoft Access Database Engine 2016 (64-bit), providing the Microsoft.ACE.OLEDB.12.0 provider. The script detects 32-bit Office conflicts, verifies successful installation, and includes full documentation. Required for RockSolid POS data imports from MS Access .mdb files.
-
Added OLEDB 12.0 installer script for RockSolid POS support
A new "Install OLEDB 12.0" script downloads and installs the Microsoft Access Database Engine 2016 (64-bit), which provides the Microsoft.ACE.OLEDB.12.0 provider required by Margin Master for importing RockSolid POS data from MS Access .mdb files. The script detects 32-bit Office conflicts, verifies provider registration after installation, and supports download-only mode or using a pre-downloaded installer via the -MediaPath parameter.
-
Scripts copied to log folder for support re-execution
Each executed PowerShell script is now automatically copied to the log folder alongside its execution log. This allows support staff to re-run the exact same script directly on the customer's machine without needing Margin Master, which is helpful for troubleshooting or repeating operations.
-
Scripts copied to log folder after execution
When a support script executes, the application now automatically copies the script file to the logs folder alongside the execution log. This allows support staff to see exactly which version of a script was run and re-execute it manually if needed for troubleshooting.
-
Session-based password caching for Support Scripts
The support password is now cached for the duration of the application session once entered correctly. Users no longer need to re-enter the password when opening the Support Scripts dialog multiple times during a work session — the authorization resets only when Margin Master is restarted.
-
Added session-based password authentication
The Support Scripts dialog now remembers successful password authentication for the duration of the application session. Once you enter the correct password, you won't be prompted again until you restart Margin Master. This reduces friction for support staff who need to run multiple scripts during a single troubleshooting session.
-
Script execution logging with log viewer
All script executions are now wrapped in Start-Transcript, capturing full output to timestamped log files in %TEMP%\MarginMaster\InstallationScripts\Logs\. Added "View Last Log" and "Open Log Folder" buttons to the dialog for easy access to execution logs, improving troubleshooting and support diagnostics.
-
Enhanced script execution logging
All script executions now generate timestamped transcript log files saved to %TEMP%\MarginMaster\InstallationScripts\Logs\. The dialog displays the path to the most recent log and includes buttons to view or send the log file to support for troubleshooting failed installations.
-
Support Scripts menu item now appears in Utilities menu
The Support Scripts menu item was previously defined in a file that was excluded from the build, making it invisible to users. The menu item definition has been moved to the correct location in the main window, and is now properly displayed in the Utilities menu between the Reset options and Database submenu.
-
Fixed Support Scripts execution failure
Support Scripts were failing to execute because embedded resource names now include subfolder paths (SqlScripts.Powershell, OLEDB.Powershell) due to the project's LinkBase configuration. Added ResourceSubPath tracking to each script record to correctly resolve and load the embedded PowerShell files.
-
Support Scripts execution error resolved
Fixed incorrect embedded resource paths that prevented PowerShell scripts from being found and executed. The script extraction now properly maps to the folder structure (SqlScripts/Powershell and OLEDB/Powershell) so all installation and upgrade scripts can run successfully.
-
Redesigned Support Scripts dialog with master-detail layout
The dialog now displays a TreeView on the left organizing scripts by category (SQL Server, OLEDB), with a detail pane on the right showing the selected script's full description and an Execute button. This replaces the previous flat list of script cards, making it easier to find and understand scripts as the library grows.
-
Redesigned Support Scripts dialog with categorized tree view
The Installation Scripts dialog has been completely redesigned with a two-pane layout. The left pane shows scripts organized in a tree structure by category (SQL Server, OLEDB), and the right pane displays the selected script's description and execution button. All scripts are now auto-expanded by default, and the interface includes Help buttons linking to full documentation for each script.
-
Enhanced error messages for missing scripts
Improved error reporting when an embedded script cannot be found, now showing only relevant script resources in the diagnostic output instead of all embedded resources.
-
Reorganized script folder structure by category
Scripts are now organized into category subfolders (scripts/SqlScripts/Powershell/, scripts/OLEDB/Powershell/) mirroring the UI categories. Updated the .csproj to embed scripts using a recursive glob pattern (**/*.ps1) and updated CLAUDE.md with a PR checklist for adding new scripts (requires .ps1, .md, catalog entry, support doc, and index entry).
-
Reorganized script embedding and documentation structure
PowerShell scripts are now organized in category subfolders (scripts/SqlScripts/Powershell/, scripts/OLEDB/Powershell/) and embedded using a recursive glob pattern. Each script now requires accompanying markdown documentation in both the scripts/ folder (developer reference) and docs/marginmaster/support/scripts/ (user-facing support docs), with corresponding index.json entries.

