Skip to content

v1.5.6 — transaction hardening + printer fix

Latest

Choose a tag to compare

@itsbkm itsbkm released this 22 Apr 20:06

v1.5.6 — Enterprise-grade transaction hardening + printer format fix

Data integrity

  • Every multi-statement mutation (order creation, order item add/cancel/restore, order status, bill generate/payment/discount, addon group create/delete) now runs inside an atomic SQLite transaction via a new withTxn() helper. No more partial writes if the process dies mid-flight.
  • Startup now runs PRAGMA integrity_check + PRAGMA foreign_key_check and logs any violations.
  • Self-healing auto-repair for a pre-fix bills.payment_details corruption where payment JSON was stored as {A},{A} instead of [A]. Idempotent, only fixes rows whose math still balances.
  • Added busy_timeout=5000 and synchronous=NORMAL pragmas — concurrent KDS writes no longer throw SQLITE_BUSY.
  • On final payment, lingering pending/preparing/ready order_items are bulk-closed to served to prevent the "completed order with stuck KDS items" split-brain.

Printer

  • Fixed column alignment bug in all three receipt templates (compact, classic, detailed) where product name wasn't padded to its column width, producing mangled output like Cheeseburger2 5% ₹540.00. Now reads cleanly on both 58mm and 80mm paper.
  • Refactored receipt rendering to shared itemHeader / itemRow / addonRow helpers.

Misc fixes

  • Removed the dropAllTables() footgun (violated AGENTS.md rule #1).
  • DevTools no longer opens automatically for packaged end users (gated behind isDev).
  • Backup _flo_meta.app_version now stores the real app version instead of the schema version.
  • README download filenames / latest-version synced.
  • Fixed build:all script name in README (was build:all-platforms).

Tests

  • npm test runs backup + printer + db-audit suites.
  • npm run test:printer -- --live sends a real test page to your default printer.
  • npm run test:db-audit walks PK/FK/orphans/JSON/math sanity.
  • npm run repair:payments -- --apply one-time repair for the legacy payment_details bug (auto-runs on app startup too).
  • Tests use Node 22.5+ built-in node:sqlite so they run without rebuilding better-sqlite3 against system Node.

Downloads (macOS)

File Arch SHA-256
Flo-1.5.6.dmg Intel (x64) e450268fb4723e3ec4265aaff78d435a3db660a7b848f942d5f660a13b557fec
Flo-1.5.6-arm64.dmg Apple Silicon (arm64) 27bcc7adcf757f23b52758617e31ffea8c1908d4634ae04c0e2e170080094f28

⚠️ These DMGs are unsigned — the Codify Apps Private Limited (BKDY677XJA) Developer ID cert wasn't in the keychain at build time. Users will see a Gatekeeper warning. To sign, re-run npm run build:mac after importing the cert, or distribute via a separate signed channel.

Windows and Linux builds not included — build from source with npm run build:win / npm run build:linux on the respective platforms.