Skip to content

A kitchen is not the place to find out the sound does not work - #858

Merged
sridharkalaibala merged 2 commits into
developfrom
fix/check-an-installer-before-a-kitchen-does
Sep 17, 2026
Merged

sridharkalaibala merged 2 commits into
developfrom
fix/check-an-installer-before-a-kitchen-does

Conversation

@sridharkalaibala

Copy link
Copy Markdown
Contributor

A shop had a correct build installed and heard nothing. The repository was green throughout and was right to be: every source file was correct. What was wrong was the installer, which carried a page bundle built before the code that page was supposed to contain.

No test here can see that. frontend/public/ is gitignored build output, so the one link that broke is the one link invisible from the source tree.

So this looks at an installed app instead, and walks the whole chain:

  OK    the announcement is composed
  OK    the switches are readable
  MISS  the bells are struck notes, not a beep
  OK    the bridge carries it to a page
  OK    audio is allowed without a user gesture
  ----  the app is not running, so the page and the CSP were not checked
  ----  this machine has not been switched on yet (Core Settings, then Test)

That is real output from the machine here, against the installer that went out. Five links, and breaking any one of them is silence with no error anywhere, which is why it reports all of them rather than stopping at the first:

  1. the main process can compose and synthesise
  2. the bridge carries it to a page
  3. a page is listening — the one that broke
  4. the browser may play a data: sound
  5. somebody turned it on

The trap it is built around

The installer contained frontend/static/script/js/core/kitchen-call.js, correct and current, sitting next to a dashboard.*.js that did not contain it. Checking for the source file would have reported everything fine. So the checker resolves the bundle the running app actually serves, and greps that.

Read only

It is pointed at a till in a working restaurant, often mid-service. A diagnostic that writes is one somebody is right to refuse to run, and then it never gets run. A test asserts it contains no write calls.

Usage

npm run check:installed
npm run check:installed -- "C:/Users/x/AppData/Local/Programs/Posnic"

It finds a default installation by itself, because whoever runs it is diagnosing a silent kitchen, not reading a script.

Tests

tests/a-kitchen-is-not-the-place-to-find-out.test.js

  • it walks every link in the chain, named individually, because a checker that quietly stopped testing link 3 would say "Ready" about the exact failure it exists to catch
  • it reads the served bundle and not the source file beside it
  • it is read only
  • it can be run without knowing where anything is

Promote develop to main: a publish that builds what it ships
A shop had a correct build installed and heard nothing. The repository
was green throughout and was right to be: every source file was correct.
What was wrong was the installer, which carried a page bundle built
before the code that page was supposed to contain.

No test here can see that. frontend/public/ is gitignored build output,
so the one link that broke is the one link invisible from the source
tree. This looks at an installed app instead and walks the whole chain:

  the main process can compose and synthesise
  the bridge carries it to a page
  a page is listening                          <- the one that broke
  the browser may play a data: sound
  somebody turned it on

Breaking any one of them is silence with no error anywhere, which is why
it reports all five rather than stopping at the first.

It reads the served bundle rather than the source file beside it. The
installer contained frontend/static/script/js/core/kitchen-call.js,
correct and current, sitting next to a dashboard bundle that did not
contain it - so looking for the source file would have reported
everything fine.

Read only, because it is pointed at a till in a working restaurant,
often mid-service. A diagnostic that writes is one somebody is right to
refuse to run, and then it never gets run.

    npm run check:installed

Run against the machine here it correctly reports the currently
installed build as not ready.
@sridharkalaibala
sridharkalaibala merged commit 455768c into develop Sep 17, 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 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