Promote develop to main: everything the re-staged exe should carry - #862
Merged
Merged
Conversation
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.
…itchen-does A kitchen is not the place to find out the sound does not work
"Call waiter" on the ordering page writes into the cloud database. The lane that brings it down was built tonight (Gateway "A call reaches the till", #853), and what arrived landed in the request dock silently: the dock polls, so the call showed within seconds, but the sound a counter-made call raises comes from the API's insert path, which a synced row never takes. A pulled call now rings the arrival bell once, the same treatment a synced-in order gets, and sends nothing to the kitchen printer. It does not ring until answered: that alarm needs the call's id so that "seen" can stop it, and the agent's line carries a count. What that next step needs is written beside the code.
scripts/check-installed-app.js declares a shebang and was committed 100644. cron or a deploy that calls it by path gets 'permission denied'. tests/executable-scripts.test.js has refused the suite over it since it landed; this is the mode bit, nothing else.
…call-makes-a-sound
Make the checker executable, as its shebang promises
The installed-app check can be run
A table call that arrived by sync makes a sound
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nine commits, and the exe is built from
main, so this should land before it is re-staged rather than after.What it carries
A table call that arrived by sync makes a sound (#859). A call that reached the till through the sync agent rather than a direct request was silent, so the one kind of call that happens when the handset cannot reach the till directly was the one nobody heard.
An installed-app check (#858, #860, #861).
npm run check:installedinspects an installed app and walks all five links of the audio chain, because breaking any one of them is silence with no error anywhere:It resolves the bundle the running app actually serves rather than the source file beside it, which is exactly the thing that lied tonight: the installer contained
core/kitchen-call.js, correct and current, next to a dashboard bundle that did not contain it. Read-only, with a test enforcing that, because it gets pointed at a till mid-service.The file mode was fixed twice, from two directions (#860 and #861), which is what a shebang without
chmod +xgets you.Why now
mainalready has the audio, the Active KOT note fix and thepublishfix, so a re-stage would work. But it would ship without the sync-call sound, and whoever runsnpm run check:installedfrom amaincheckout would not have it.After this
Re-stage with
npm run buildornpm run publish, both correct now. Then on the kitchen machine:npm run check:installed, Core Settings, both switches on, press Test the sound.Do not squash. A squashed release PR conflicts with the next one.