Skip to content

The kitchen hears a ticket arrive - #837

Merged
sridharkalaibala merged 1 commit into
developfrom
feat/the-kitchen-hears-a-ticket
Sep 16, 2026
Merged

sridharkalaibala merged 1 commit into
developfrom
feat/the-kitchen-hears-a-ticket

Conversation

@sridharkalaibala

Copy link
Copy Markdown
Contributor

"whenever new KOT received one tink sound with full sound i want. need to place in kitchen. if possible read the items. Example Table 5 new order. Ting! one chicken briyani, one chicken tikka masala."

A printer in a kitchen is silent and a ticket is small. A cook with their hands in a pan does not see one arrive, and the first anybody knows is a waiter asking where the food is.

Table 5, new order. One Chicken Biryani. One Chicken Tikka Masala.

Four judgements worth reviewing

The ting comes first, and the words wait for it to finish - not on a timer, on the sound actually ending. A speaker still ringing while it talks loses its first two words, and the first two words are the table number, the one part nobody can infer from the rest. It is a third tone: a cook must never have to work out whether that was their ticket or the counter's online order.

It fires when the ticket is claimed, not after it prints. A jammed or empty printer is exactly when a kitchen most needs to hear that a table ordered - the silent failure this exists for is a ticket nobody knows about. It sits behind the same claim that stops a ticket printing twice, so a repeated poll does not say it twice.

Six lines, then "and three more." Six courses from a table of six arrive within seconds; kot-manager already debounces printing for that reason. Read in full that is a minute of talking, and a kitchen that has stopped listening misses the next one too. The paper ticket still has the detail.

Off by default, per machine, not per shop. Only the machine at the pass has the speaker. A shop-wide switch makes the counter talk in front of customers; somebody mutes the counter; on many installs that is the same Windows volume the kitchen speaker is on.

Names and counts only - no notes, no descriptions, no prices.

A test caught a real mistake

Bracketed text was being stripped from dish names to drop decoration like "(Half)". It turned "Gobi (65)" into "Gobi" - a different dish. What is in brackets is usually the part that tells a cook which one. The shop's name is the shop's.

Tests, and what they deliberately do not cover

✔ IT SAYS THE TABLE FIRST, then the food
✔ counts are words, because that is how somebody says them
✔ and digits once words stop helping
✔ a takeaway is called what the shop calls it, not Table Take away
✔ a ticket with no table still reads the food
✔ an amendment says so, because a cook must not start it twice
✔ a long ticket is cut short, and says how much it cut
✔ the name is the shop own, brackets and all
✔ nothing worth saying is said as nothing
✔ a line with no quantity is not announced as an order for none
✔ a machine is SILENT until somebody says otherwise
✔ a settings file somebody broke by hand means silence, not noise

They hold the sentence and the switch, because those are the parts that can be wrong without anybody noticing until service. The tone and the speech engine belong to a sound card and a Windows voice, which a test cannot honestly stand in for.

This needs one try on the kitchen machine before anybody trusts it. Turn it on there with posnic.kitchenCall.setOn(true); it is off everywhere else and stays off across updates.

Owner: "whenever new KOT received one tink sound with full sound i want.
need to place in kitchen. if possible read the items. Example Table 5 new
order. Ting! one chicken briyani, one chicken tikka masala."

A printer in a kitchen is silent and a ticket is small. A cook with their
hands in a pan does not see one arrive, and the first anybody knows is a
waiter asking where the food is. A speaker says it across the room
without anybody having to look at anything.

    Table 5, new order. One Chicken Biryani. One Chicken Tikka Masala.

THE TING FIRST, AND THE WORDS WAIT FOR IT rather than starting on a
timer. A speaker still ringing while it talks loses its first two words,
and the first two words are the table number - the one part nobody can
work out from the rest. A third tone, deliberately not either of the
existing two: a cook must never have to decide whether that was their
ticket or the counter's online order.

SAID WHEN THE TICKET IS CLAIMED, not after it prints. A jammed or empty
printer is exactly when a kitchen most needs to hear that a table
ordered; the silent failure this exists for is a ticket nobody knows
about. Behind the same claim that stops a ticket printing twice, so a
poll that sees the job again does not say it again.

SIX LINES, THEN HOW MANY ARE LEFT. Six courses from a table of six
arrive within seconds - kot-manager already debounces printing for that
reason. Read in full it is a minute of talking, and a kitchen that has
stopped listening does not hear the next one either. The paper still has
the detail.

NAMES AND COUNTS ONLY. Not notes, not descriptions, not prices. What
makes announcements fail is never that they said too little.

OFF BY DEFAULT AND PER MACHINE, not per shop. Only the machine at the
pass has the speaker. A shop-wide switch would make the counter talk in
front of customers, somebody would mute the counter, and on many installs
that is the same Windows volume the kitchen speaker is on. A till that
started announcing orders after an update is a support call.

English, by the owner's choice: "All english as of now."

A test caught a real mistake: bracketed text was being stripped from
names to drop decoration like "(Half)", which turned "Gobi (65)" into
"Gobi" - a different dish. The shop's name is the shop's.

Twelve tests, on the sentence and the switch, because those are the parts
that can be wrong without anybody noticing until service. The tone and
the speech engine belong to a sound card and a Windows voice, which a
test cannot stand in for honestly - this needs one try on the kitchen
machine before anybody trusts it.
@sridharkalaibala
sridharkalaibala merged commit 993566c into develop Sep 16, 2026
8 of 9 checks passed
@github-actions github-actions Bot added the ready for QA Merged to develop and live on develop.posnic.io - anyone can test it label Sep 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Merged to develop. Anyone can test this - you do not need write access.

Try it at https://develop.posnic.io, or run it yourself:

git fetch origin develop && git checkout develop
npm install && npm --prefix api install
npm run dev   # then http://localhost:3000

When you have tested it, say what you did and what happened, and set
QA passed or QA failed. If you cannot set labels, just comment -
a maintainer will.

Reporting that something is broken is as useful as fixing it. It is
better found here than by a shopkeeper.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready for QA Merged to develop and live on develop.posnic.io - anyone can test it

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant