Dinar POS · project status · 9 September 2026, afternoon
Milestone 1, three tasks in
The milestone that ends with a sale and a printed ticket started this morning. Three of its nine tasks are done and merged on the milestone branch; three more are being built in parallel right now. This page is what a shop could try today and what is left.
Branch m1/2026-09-09
15 commits since main · every check green how the work runs
172
Rust tests, formatting and strict warnings clean
207
TypeScript tests across four packages
5 / 5
browser tests against the real API and database
3 + 3
tasks done, tasks in progress, of nine
What a shop could try today
The screen only talks to its own tillevery request carries a key made at launch; a page or a program on the same PC that lacks it is refused
Products: add, edit, deactivatename, barcode, category, unit, VAT rate, cost, selling and wholesale prices, low-stock alert; stock is shown, never edited here (the sale moves it)
Store information for the ticket headername, RC, NIF, NIS, AI, address, phone; saved whole, a cleared field stays cleared
Tax regime with its dateRéel or IFU, in force since a day; a change dated ahead is shown as planned; days are counted on Algeria's calendar
The sale: document, numbering without gaps, stock going downbeing built now; also writes the rule that decides ticket or facture at the till
French, English and Arabic right to left on every screenbeing built now; a language switch in the header, browser tests run once per language
Daily backup, keep 30, restore from settingsbeing built now; the copy is opened and checked before it replaces the live file
The till screenafter the sale lands
The 80 mm ticket in three languagesafter the sale lands; reference files per language
Printing on the thermal printerneeds Samir at the laptop with the printer
Found and fixed by the reviews today
Each merged task was read by a reviewer before landing; what they found is fixed and covered by a test that fails without the fix.
A wrong method on the health route answered outside the usual error shape, and the browser preview served a permanent key; the key is now made fresh per run.
Editing a product could silently overwrite its stock from a stale list; the stock now belongs to the stock ledger only.
The tax regime counted days in UTC, so a change dated 1 January read as "planned" until 01:00 in Algiers; applying the regime already in force only moved its "since" date to today. Both refused now.
The seller block on a ticket must be a copy taken at issue, since store information can be corrected later; written into the sale task before it was coded.
Open, needs a person
The checkpoint pull request of this branch into main waits for Samir; the automated build on GitHub runs there.
The printer test, at the laptop.
The comptable's answers on rounding and the stamp when a credit sale is paid later; the Arabic wording review.
Fax and e-mail in the ticket header: the spec lists them, the database does not; decided when the ticket template shows what it prints.
Next
The three tasks in progress land one by one, each reviewed; the sale gets the full review with every finding proven by running it.
Then the till screen and the ticket template.
A checkpoint to main after the till, and another when the backup lands, which closes the milestone except the printer.