Skip to content

The kitchen's speaker lives with the kitchen - #874

Merged
sridharkalaibala merged 3 commits into
developfrom
fix/the-kitchen-speaker-lives-with-the-kitchen
Sep 17, 2026
Merged

sridharkalaibala merged 3 commits into
developfrom
fix/the-kitchen-speaker-lives-with-the-kitchen

Conversation

@sridharkalaibala

Copy link
Copy Markdown
Contributor

"this is about kitchen play right? not restaurant module?"

Right, and it took three goes to get this in the correct place.

  1. Sale tab of Core Settings, beside the auto-focus switches, because those are device-local too
  2. Print tab, because the kitchen ticket is printed
  3. Hardware Manager, where it belongs

Per-device was the right instinct and the wrong page both times. A speaker is a device on one computer, like the cash drawer, the weighing scale and the kitchen screen. Hardware Manager is where those live, and it is the window somebody setting up the machine at the pass is already standing in.

So it is a 🔔 Kitchen Sound tab, immediately after 📺 Kitchen Screen:

  Ring a bell                      switch
  Read the order out               switch
  Bell when the order arrives      picker + Play
  Bell before each dish            picker + Play
  Voice                            picker + Play
  Test the sound                   button

Not the Multi KOT Print tab, which would have been the obvious guess. That one is hidden unless multi-KOT is enabled, and a setting that disappears depending on another setting is exactly how this feature spent its whole life switched off and unfindable.

Removed from the settings page, not left in both

Two homes drift apart and then a shop has two answers to one question. A comment stays behind on both files saying where it went and why, because the next person will wonder.

The hard-won part is carried over rather than re-learned: the switches are set before anything that can fail, and the pickers fill inside their own guard. On the settings page, filling the voice picker threw, the failure path hid the switches and the Test button, and left three empty pickers on screen.

A guard caught me

tests/settings-windows.test.js failed on this while I was writing it:

switchTab('sound') has no entry in tabMap. switchTab hides every panel before
showing the requested one, so an unmapped name blanks the window - which is
exactly what Receipt Printer did.

Clicking the new tab would have blanked the whole window. Somebody wrote that test after being bitten, and it caught the next person, which is the entire point of writing them that way.

Tests

tests/the-kitchen-switch-has-somewhere-to-live.test.js rewritten for the new home, 11 of them: the switches exist and are two rather than one, they show what the machine is set to, they are set before anything that can fail, the tab hides itself where there is no bridge, the Test button reaches the real announcer and says why when nothing happened, and the controls are really gone from the settings page rather than living in two places.

Zero assertion failures across the desktop suite.

Promote develop to main: every IPC handler has a door
Promote develop to main: the switches survive everything
Owner: "this is about kitchen play right? not restaurant module?"

He is right, and it took three goes. First the Sale tab of Core
Settings, beside the auto-focus switches, because those are device-local
too. Then the Print tab, because the kitchen ticket is printed. Per-device
was the right instinct and the wrong page both times.

A speaker is a device on ONE COMPUTER, like the cash drawer, the weighing
scale and the kitchen screen. Hardware Manager is where those live, and it
is the window somebody setting up the machine at the pass is already
standing in. So it is a Kitchen Sound tab, next to Kitchen Screen.

Not the Multi KOT Print tab, which would have been the obvious guess: that
one is hidden unless multi-KOT is enabled, and a setting that disappears
depending on another setting is how this feature spent its whole life
switched off and unfindable.

Removed from the settings page rather than left in both, with a note there
saying where it went. Two homes drift apart and then a shop has two
answers to one question.

The switches are set BEFORE anything that can fail and the pickers fill
inside their own guard, which is the fix from the settings page carried
over rather than re-learned: filling the voice picker threw there, the
failure path hid the switches and the Test button, and left three empty
pickers on screen.

tests/settings-windows.test.js caught a real bug in this while I was
writing it: switchTab('sound') had no entry in tabMap, and switchTab hides
every panel before showing the requested one, so clicking the tab would
have blanked the window. Its message says Receipt Printer did exactly that
once. A guard somebody wrote after being bitten, catching the next person.
@sridharkalaibala
sridharkalaibala merged commit eadbc98 into develop Sep 17, 2026
10 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 17, 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