Windows Update — clicking Update no longer fails while uninstalling the older version. The leftover sweep no longer removes the current StorePulse copy, and a failed previous uninstaller no longer aborts the upgrade (exit code 2).
v1.0.342026-08-25
Added
Lists reports — Dead stock, anticipated needs, and a read-only negative-stock preview on /lists. Completed warehouse lists also write vp_lists_orders on the store UniCenta.
v1.0.332026-08-20
Changed
Faster reports and dashboards — sales queries stay on the date range instead of scanning the whole ticket history. Settings → Database can add the missing report indexes and will warn if MySQL memory is too small for this store.
Fixed
Windows installer removes old copies — leftover Viewport Admin, older StorePulse MSI installs, and mixed per-user / per-machine copies are uninstalled before the new version is copied, so you no longer end up with two apps.
v1.0.322026-08-18
Added
All sales on product Sales tab — an All preset loads lifetime sales for that product (summary is complete; the table still shows the latest 500 rows).
Changed
Sales reports — queries start from receipts in the date range (closed sessions from closedcash), exclude refunds, and accept till, cashier, category, and product text filters instead of loading every product into a dropdown.
Fixed
Report filter dropdowns — category, supplier, cashier, and till lists now load for the active database and match on ids.
List infinite scroll — products, customers, suppliers, and shelf tags no longer replace the first page when you scroll for more rows.
v1.0.312026-08-18
Fixed
Windows update install — the installer no longer stalls on Retry because StorePulse could not be closed. The hidden background server is shut down before the new version is applied.
v1.0.302026-08-18
Added
Supplier picker on products — search suppliers by name and add a new supplier without leaving product create or edit.
Invoice lookup — find POS tickets by date, cashier, till, product name or barcode, and ticket amount (about / exact / at least / at most).
Products on receipts — look up which receipts sold a product in a chosen date range from the Sales page.
v1.0.292026-07-03
Changed
Differential (incremental) updates — enabled blockmap-based differential downloads so future updates only download changed blocks instead of the full ~140 MB installer. Subsequent updates after this version will be significantly smaller.
v1.0.282026-07-01
Fixed
Login bug — non-admin POS users no longer see "Access denied" alongside "Welcome" after signing in. The page permissions endpoint now grants read access to any authenticated user.
Changed
Consolidated Users & Roles page — merged the four separate tabs into a cleaner Unified View with All Users, Roles & Access, and User Permissions.
Added
POS staff CRUD — edit POS staff name, role, card/RFID, password, and visibility directly from the Users page. Deactivate or create POS-only staff.
POS role detail editor — edit role name and raw Java-serialised permissions blob as hex from the Roles & Access tab.
v1.0.272026-06-30
Added
Multi-Buy Offer on products — toggle "Buy X for £Y" per product with quantity and total price inputs in the Properties tab.
v1.0.262026-06-29
Added
Tax by Tax Category report — groups tax totals by tax category (Standard Rate, Zero Rated, etc.) from recorded taxlines, with donut chart and filter dropdown.
Multi-DB PDF export — export all database results as a combined PDF with per-database color-coded pages.
Select dropdown filters on reports — Category, Product, Customer, Cashier, and Tax Category filters now use dropdowns populated from the database.
Cancel button on report runner — abort long-running reports mid-execution.
Elapsed timer — live timer during report execution and final time displayed after completion.
Tax Category report (matches uniCenta sales_taxcatsales) — daily tax breakdown by tax name with per-category subtotals and grand total row.
Changed
Tax reports renamed for clarity: "Tax by Category" → "Tax by Product Category", "Daily Tax Breakdown" → "Tax Category".
Tax Category report SQL optimized with STRAIGHT_JOIN to use DATENEW index, avoiding 5M-row full table scan.
All LIKE-based text filters converted to exact-match for select dropdowns.
tax-by-tax-category now uses LEFT JOIN so taxes without a category are not dropped.
Donut chart now shows TOTALBASE so non-VAT categories are visible.
ONLY_FULL_GROUP_BY compatibility for Tax Category report.
Elapsed time persists after report completes.
v1.0.242026-06-27
Added
Scheduled reports: custom output folder with native folder picker (Browse button in schedule form).
"Send Test Email" button on schedule form to verify SMTP delivery before scheduling.
"Run after saving" toggle — schedule runs immediately after creation.
Status indicator dots (green/red/gray) on each schedule in the sidebar.
Changed
Scheduled report email HTML now uses a styled template with StorePulse branding.
Email delivery failures no longer block the report file from being saved locally.
Fixed
Scheduled reports now use correct date arithmetic regardless of local timezone.
v1.0.232026-06-26
Fixed
Reports page date range now correctly includes the final day regardless of local timezone.
Reports page shows clear error messages when no database profile is selected.
Schedule remove and toggle actions now display error feedback on failure.
Report catalog and schedule list show error messages when they fail to load.
Fixed four broken reports: User Voids, Customer Vouchers, Price Discrepancies, and Slow Moving Products.
v1.0.222026-06-25
Added
Shelf Tags page — dedicated barcode-scanning and label-printing workspace for shelf edge tags.
Text barcode input with instant product lookup and auto-open label designer.
Product search table (Name, Code, Final Price) with one-click print on the Tags page.
Android camera barcode scanning via ML Kit — scan shelf barcodes with your phone camera.
Phone-to-desktop silent printing — tap Print on Desktop on your phone and the Windows app prints the label automatically over LAN.
Desktop print queue with background polling and silent Electron print (no OS dialog).
Changed
Label designer HTML generation extracted to a shared utility for reuse across interactive and silent print paths.
v1.0.212026-06-25
Added
Per-user page access permissions — control which pages each user can access.
"Fix Issues" button in Database Validator that creates missing tables, adds columns, and installs triggers automatically.
Quotation preview modal with inline PDF viewer, line-item breakdown, and status management.
Multi-database product push now copies all product fields exactly (image, stockcost, stockvolume, margins, attributes, unit).
Changed
User management consolidated into the main menu Users page with Accounts, Permissions, POS Roles, and Staff tabs.
Users tab removed from Settings.
Fixed
Editing a quotation no longer wipes the quote number field.
Database Validation tab shows trigger status and offers a one-click fix button.
v1.0.122026-05-28
Added
Price History rows now show the product tax category name instead of a tax percentage
Product Save can now review and push selected changes to other databases from a vertical product-card modal
Changed
Multi-database product push now highlights changed product fields before pushing to selected databases
The active database pill now reflects multi-database save review mode and target count
Fixed
Product detail pages now switch to the matching product when changing database profiles, with a loading state and a clear not-found message when the product does not exist in the selected database
v1.0.112026-05-28
Added
Customer records can now be created, edited, and deleted from the Customers module
Supplier records can now be created, edited, and deleted from the Suppliers module
Price History rows can now print product shelf tags directly
Changed
Price History now opens faster on the latest 100 price changes and shows skeleton rows while loading
Fixed
Price History no longer renders escaped Unicode labels such as \u2192 in the table
Invoice customer search now reliably shows matching customers when creating invoices
Customer change dialogs on invoices and quotations now read customer search results correctly
v1.0.102026-05-26
Added
Per-database company profiles for distinct company details and logos per database
System Admin role with full Admin access
Multi-database product push for price, tax category, and stock updates
Cross-database stock transfers from the Inventory Transfer page
Change or set the customer on any invoice or quotation with a confirmation prompt
v1.0.52026-05-08
Fixed
Desktop cloud sign-in now uses the hosted StorePulse API so installed apps no longer fail with local SaaS database login errors
StorePulse token login now returns clear authentication statuses for desktop sign-in instead of validation errors
Desktop device registration accepts the longer fingerprints generated by installed apps, fixing the remaining cloud sign-in 500 error
Windows MSI packaging excludes Capacitor Android build artifacts that could break installer generation
v1.0.42026-05-07
Added
Label designer: drag-and-drop positioning, shapes, images, and standard size presets
Users page with role-based page permissions and sidebar navigation registry
Two-step POS login flow
Login overhaul: sign up link, forgot/reset password flow
Customer CRUD, Stripe invoices, cash renewal, and annual pricing on website portal
New app logo SVG, full favicon set, and web manifest
App logo added to all email templates; admin email test panel in overview
Android APK download (debug build) on the downloads page
MSI installer added to downloads; all platform downloads always visible
Fixed
Linux: Wayland session auto-detection for correct ozone-platform flag
Linux: sandbox permission fix for the desktop app launcher
Login: removed duplicate SSO browser SSO button
v1.0.22026-04-30
Added
Price history table, database trigger, API and in-app UI
Database schema registry with audit and recreate endpoints
Product writes set session variables so triggers record actor/source
Backup destinations: SFTP, SMB, and FTP transport adapters plus dispatcher
POS user sync endpoints and optional local user mirroring with role mapping
Database profile rename/delete safety and named-pool close support
Fixed
Trigger creation and session var handling to avoid DELIMITER/multi-statement issues
v1.0.12026-04-18
Added
Public features page on storepulse.flagshipbusiness.com
Public changelog page on storepulse.flagshipbusiness.com
In-app About tab in Settings with version info and changelog
Website navigation links for Features and Changelog
Automatic patch-version increment on every desktop build
v1.0.02026-04-18
Added
Product table: margin column with color-coded percentages
Product table: column visibility toggle modal
Product table: all data columns are now sortable
Quotation PDF generation and status management
Low stock threshold configuration in Settings → Core tab
Dashboard with KPI cards, sales charts, and top products
Full product, category, inventory, sales, and quotation management
Customer and supplier directories
Bills and reports modules
Multi-database profile support with runtime switching
Shelf tag / barcode label printing
Electron desktop packaging for Windows and Linux
SaaS control panel with Stripe billing integration
DaisyUI v5 + Tailwind CSS v4 design system with theme switching
JWT-based authentication with session management
In-app changelog (Settings → About)
Public features and changelog pages on the website