bitspire/packages/hal
Padreug c70d43523c feat(hal): dispense error taxonomy, F56 decode table, and the first HAL tests (ADR-005 §7)
Every dispenser now returns a tagged DispenseError: errorCode (the
family name, e.g. F56DispenseError), rawCode (driver-native, '78 42'),
errorClass (terminal | recoverable | inventory) and a human decode. The
class is what the state machine routes on: terminal latches cash-out off,
recoverable shows the fault screen but stays in service, inventory means
nothing was asked of the hardware.

The F56 table is built empirically and from the Fujitsu F56-BDU Error
Code List, seeded with sintra's 78 42 (note stopped at the cassette exit,
terminal) and the Tejo's 82 00 (long-bill reject, recoverable), plus the
83/84/86 00 checks and the 85 0n / B5 .. families. An unknown code fails
SAFE — terminal — so an unfamiliar fault latches rather than letting the
next customer pay into it. f56-rs232 surfaces the raw code structurally
instead of only inside the message string.

Drops the borrowed statusCode 570 from the F56 driver: lamassu-server
read 570 as "insufficient funds", so a jam told operators to refill full
cassettes (their 34ba9203 fix). Puloon gets the same contract with every
fault terminal until it has a decode table.

packages/hal had no tests at all (ADR-005 finding 10). Adds the first
two: the decode table, and the bill-length table — every window [hi, lo]
sane, and GTQ/USD(/HNL when added) sharing one window for what is
physically the same 156 mm note. That second test would have caught the
GTQ fault months ago.
2026-10-10 21:37:47 +02:00
..
src feat(hal): dispense error taxonomy, F56 decode table, and the first HAL tests (ADR-005 §7) 2026-10-10 21:37:47 +02:00
build.rs feat(docker): add dev.sh with auto-funding and ATM app setup 2026-02-15 14:19:16 -05:00
Cargo.toml refactor: rename the remaining Lamassu-branded identifiers 2026-10-09 21:58:55 +02:00
package.json chore: scrub "Lamassu" from shipped labels 2026-09-19 09:58:42 +02:00
tsconfig.json feat(docker): add dev.sh with auto-funding and ATM app setup 2026-02-15 14:19:16 -05:00