Skip to content

3.12.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 00:20
· 245 commits to main since this release
3.12.0
0e89bd8

[3.12.0] - 2026-10-03

Added

  • add owner-only daily sales Excel/CSV export (#809)
  • allow cashiers to record cash movements from pos topbar (#811)
  • add Japanese language support (#823)
  • add Simplified Chinese (zh-CN) language support (#816)
  • volume units and linked portion deduction (#817)
  • add Italian (it-IT) language support (#818)
  • add Korean language support (#819)
  • add Bahasa Indonesia (id-ID) language support (#820)
  • end-to-end store diagnostics for checkout, payments, and API failures (#815)
  • supplies stock and recipe BOM depletion (#821)
  • Polish dashboard UI (#826)
  • improve kitchen station assignments (#828)
  • add Arabic locale support and stabilize RTL setup hydration (#831)
  • add safe store currency reset (#832)
  • cashier shift open/close with variance and session Z (#279) (#836)
  • add Dutch language support (#846)
  • add Traditional Chinese Taiwan support (#847)
  • add Hindi language support (#848)
  • add Bengali language support (#849)
  • add Albanian language support (#850)
  • add Vietnamese language support (#851)
  • add Urdu language support (#852)
  • add Russian language support (#853)
  • add Thai language support (#854)
  • add Nepali language support (#855)
  • add configurable role permissions
  • add restore-from-file control (#892)
  • print courier slips with full contact (#895)
  • add an in-app diagnostics screen (#888)
  • delivery address on receipt (#906)
  • add Instagram handle and prepare 3.12.22
  • overhaul menu navigation and add x/z report exports (#922)
  • dispatch cash close via whatsapp
  • enforce kitchen delivery before bill settlement (#941)
  • show payment status and amount due on delivery slips
  • add category-level add-on group assignments (#943)
  • report run mode and install source (#954)

Changed

  • refresh translated readmes (#825)
  • reuse browser for visual evidence captures (#842)
  • redesign the developer documentation tree (#857)
  • make the suite capable of failing (Wave 0 test harness) (#860)
  • drive the unlink branch on Windows (#863)
  • measure receipt columns from emitted bytes and pin them to a golden (#866)
  • derive locale lists from registry (#867)
  • prove the auth bypass is really fixed (#871)
  • normalise static audit paths for Windows (#869)
  • fix four review findings (#870)
  • extract jwt secret and guard migrations (#862)
  • order-item mutations leave the registrar (#874)
  • rename matrix workflow to match its name (#880)
  • name the stale build in locale chunk check (#879)
  • distinguish superseded pushes from failures (#891)
  • refresh stale order.create.failed assertions (#896)
  • state the 64-bit-only system requirement (#889)
  • remove dead loaders, CSVs, and old logo (#898)
  • move frontend docs to docs/ and widen gate (#899)
  • correct the role and permission model (#902)
  • skip redundant frontend npm ci (#904)
  • unify diagnostics into the /support hub
  • preserve diagnostics read race coverage
  • release 3.12.0
  • configure manual coderabbit and greptile reviews (#921)
  • make macOS release verification portable (#929)
  • include macOS system tools in release checks (#931)
  • telemetry defaults on for new installs (#944)
  • Update GitHub funding configuration (#946)
  • run release-mac on cloud macos-14 with explicit keychain setup (#956)

Fixed

  • keep Drive backup job successful when post-upload retention fails (#808)
  • zero-balance settlement, zero-total split siblings, refunded sibling completion (#812)
  • reject terminal-order and refunded-bill mutations (#810)
  • cap order item payload size and clamp bill flat discounts to subtotal (#813)
  • double web print, phase-aware timeout, zombie eviction, close throw guard (#814)
  • prevent inventory link regressions
  • unblock local restore after stale Drive state (#827)
  • validate setup currencies against supported list (#839)
  • address kitchen station validation follow-ups (#840)
  • prevent customer inputs overlapping the table picker (#844)
  • link reserved table customers to dine-in orders (#841)
  • print cash tendered and change on receipts (#845)
  • restore the application menu on Windows and Linux (#856)
  • repair Bengali snack seed script corruption (#864)
  • drain work by key not entry (#865)
  • 80mm receipts resolve to 42 columns (#872)
  • refunded items counted in printed tax (#873)
  • business day differed between UI and reports (#876)
  • persist JWT secret before caching it (#878)
  • no permission save may strand the store (#883)
  • reject non-chef and inactive accounts in station assignment (#875)
  • order 500s and PowerShell CLIXML noise in support tickets (#886)
  • use the fresh subtotal as the tax basis (#882)
  • throttled read must not abort save (#894)
  • finish and rebase the auth/SSRF/CSV/KDS and privileged-IPC security fixes (#897)
  • name what a save takes away (#881)
  • owner PIN confirms self-lockout (#893)
  • sender-check the four database management IPC channels (#900)
  • recover a store with no administrator (#901)
  • correct the hub after review
  • load the ticket form only when its tab is shown
  • disable unknown transmission toggle
  • responsive menus, centered identity
  • drop placeholder-only summaries (#907)
  • align restricted staff permissions (#913)
  • provide snap desktop entry
  • stage snap desktop entry for core24
  • isolate macOS release signing keychain
  • delivery slip note, permission labels & printer token hardening (#926)
  • bound instagram handle & COP test (#937)
  • clarify network pairing choices
  • raise raster render timeout for slow runners (#948)
  • add retries and content length for release asset upload (#952)
  • stream large release assets via gh and disable undici body timeout (#953)
  • stream gh release upload output to prevent pipe buffer deadlock (#955)

Full Changelog: 3.11.0...3.12.0