feat(machine): VITE_DEMO_TAG for the public web demo
The browser path (no electronAPI) is already a first-class code path: initializeWithLightning() resolves an EPHEMERAL LocalSigner, allows mock fallback and leaves debugMode on, so the bill simulator stands in for the validator. That is what makes a hosted kiosk demo possible at all. Two things still needed fixing for it. 1. Cursor. `cursor: none` was applied globally for the touchscreen, which in an ordinary browser reads as a broken page. Scope it to `.kiosk`, set on <html> by main.ts unless VITE_DEMO_TAG is present — so every real machine keeps today's behavior and only the demo build shows a pointer. 2. Cleanup. An ephemeral identity per page load is the right call (it isolates concurrent visitors, and each fresh account gets its own auto-credit under LNBITS_DEMO_MODE, whereas a single baked-in key would be credited once and then drain). The cost is a throwaway LNbits account per visit, and nothing in an auto-created row distinguishes one: pubkey-set/prvkey-NULL equally describes a real ATM. A nostr pubkey can't carry a marker — grinding a vanity prefix is far too slow to do on page load — and the account/wallet the server auto-creates isn't nameable by the client. So when VITE_DEMO_TAG is set the ATM mints one extra, never-used wallet whose NAME is the tag, turning the sweep into an exact string match instead of a heuristic about what looks disposable. Both are inert on a real machine: the var is unset outside the demo build. The marker call is fire-and-forget — losing it degrades cleanup, not the demo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013A6683cCHnQxFUosx1krY4
This commit is contained in:
parent
ac40ea9bb6
commit
8264dd7472
4 changed files with 51 additions and 4 deletions
|
|
@ -73,6 +73,18 @@ VITE_SPIRE_SEED=
|
|||
# Show "Under Service" screen and block all transactions
|
||||
# VITE_MAINTENANCE_MODE=true
|
||||
|
||||
# =============================================================================
|
||||
# Public Web Demo
|
||||
# =============================================================================
|
||||
|
||||
# Set ONLY for the browser demo build (atm.demo.aiolabs.dev). Leave blank on
|
||||
# every real machine. When set it:
|
||||
# - keeps the mouse cursor visible (kiosk builds hide it)
|
||||
# - mints one extra, never-used LNbits wallet named with this exact string,
|
||||
# so the throwaway accounts the demo creates (one per page load, each with
|
||||
# its own ephemeral identity) can be swept by name instead of guessed at.
|
||||
# VITE_DEMO_TAG=bitspire-web-demo
|
||||
|
||||
# =============================================================================
|
||||
# Mock Fallback (Production Safety)
|
||||
# =============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue