Repository navigation
3.12.0
[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