fix(cassettes): republish after a dispense the renderer didn't run
Two dispense paths bypassed the refresh-and-publish step that cash-out does. The kind-21003 management command persisted the transaction and stopped there, and the operator-command poller runs entirely in the main process, where the renderer cannot see the bays move at all. In both cases the renderer kept serving a stale inventory and the operator's cassette view stayed frozen until the next customer cash-out. The management handler takes an after-hook, and the main process emits 'cassettes:changed' when it mutates the table so the renderer can catch up. Both land on one helper that reloads the inventory and republishes the state document. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
0d43c4e033
commit
db68e6e244
4 changed files with 52 additions and 3 deletions
|
|
@ -841,6 +841,11 @@ function startCommandPoller(): void {
|
|||
error: result.error,
|
||||
})
|
||||
|
||||
// This dispense happened entirely in the main process, so the renderer
|
||||
// has no idea the bays moved — it would keep serving a stale inventory
|
||||
// and would never republish the operator's view. Tell it.
|
||||
mainWindow?.webContents.send('cassettes:changed')
|
||||
|
||||
// Only remediate the original tx if ALL requested bills were dispensed
|
||||
let refRemediated = false
|
||||
if (parsed.ref_txid && result.dispensed) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue