cash_out_enabled: operator switch to take a machine's cash-out out of service deliberately #51

Open
opened 2026-10-10 20:28:43 +00:00 by padreug · 0 comments
Owner

Deferred from #50 (ADR-005 slice 2). Today a machine refuses cash-out only when it latches itself after a terminal dispenser fault (cashOutHeld, released by Recount / Resume). There is no way for the operator to turn cash-out off on purpose — a bay about to run dry, a planned refill visit, a machine they want cash-in-only for a while.

Shape (bitspire ADR-005 Decision 5 / Future directions):

  • dca_machines.cash_out_enabled (default true) + a toggle on the machine card, published to the machine in the existing kind-30078 operator config doc (cash_out_enabled: false) rather than as an op — it is state, not an event.
  • Machine side: a separate flag from cashOutHeld; cashOutAvailable guard = !held && enabled && inventory. The idle screen shows "cash-out unavailable" the same way it does for a hold; the availability beacon carries it.
  • Both flags visible in the hold banner so the operator can tell "I turned it off" from "it jammed".

Needs the bitspire half (guard + config field); file there when picked up.

Deferred from #50 (ADR-005 slice 2). Today a machine refuses cash-out only when it latches itself after a terminal dispenser fault (`cashOutHeld`, released by Recount / Resume). There is no way for the operator to turn cash-out off on purpose — a bay about to run dry, a planned refill visit, a machine they want cash-in-only for a while. Shape (bitspire ADR-005 Decision 5 / Future directions): - `dca_machines.cash_out_enabled` (default true) + a toggle on the machine card, published to the machine in the existing kind-30078 operator config doc (`cash_out_enabled: false`) rather than as an op — it is state, not an event. - Machine side: a separate flag from `cashOutHeld`; `cashOutAvailable` guard = `!held && enabled && inventory`. The idle screen shows "cash-out unavailable" the same way it does for a hold; the availability beacon carries it. - Both flags visible in the hold banner so the operator can tell "I turned it off" from "it jammed". Needs the bitspire half (guard + config field); file there when picked up.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/spirekeeper#51
No description provided.