Ticket waves render again in the organiser table (aiolabs/events#68).
The chip's inline LNbits.utils call threw — that global is not in Vue
template scope — and took the whole v-for with it, so every event showed
an empty wave list and no wave could be edited from the LNbits UI.
Frontend only; no schema change, no migration. Added alongside
v1.6.8-aio.3. Archive sha256 verified against two independent fetches
and spot-checked for the fix.
Honours per-wave fiat when the organiser set an explicit payment-method
list (aiolabs/events#67). The published tickets_payment_methods tag no
longer advertises fiat for a wave that cannot take it, which previously
contradicted the same event's absent tickets_allow_fiat and produced a
card button the purchase endpoint refused.
Eight lines in models.py; no schema change, no migration. Added
alongside v1.6.8-aio.2 rather than over it. Archive sha256 verified
against two independent fetches and spot-checked for the fix.
Preserves ticket waves when a client edits an event without them
(aiolabs/events#65) and exposes waves on public event responses so a
buyer can choose a tier (#66). No schema change.
Added alongside v1.6.8-aio.1 rather than over it — instances still on
the previous version need theirs to stay resolvable.
Archive sha256 verified against two independent fetches, and the archive
spot-checked for both changes. Prerequisite for aiolabs/webapp#176,
which is merged to dev.
Rebase onto upstream v1.6.8 — ticket waves, with pricing, inventory and
the published NIP-52 counts following the wave the buyer selected rather
than the primary-wave roll-up; per-wave capacity required; SatsPay
on-chain dropped pending native LndRest (aiolabs/events#41).
Added alongside v1.6.1-aio.18 rather than over it — instances still on
the previous version need theirs to stay resolvable.
Archive sha256 verified against two independent fetches. Tested on
bohm's dev LNbits before tagging: fork migration m004 applied, a
purchase from the 25-sat wave minted a 25-sat invoice rather than the
primary wave's 10, and the relay copy carried the active wave's counts.
Adds the entry alongside aio.17; older versions stay resolvable.
aiolabs/events#62: tickets_available is always published, including
zero. Omitting it meant "unlimited", but api_get_event and
api_ticket_create both read `amount_tickets < 1` as sold out — so a
zero-capacity event advertised unlimited tickets on the card while both
the detail page and the purchase returned 410. Three were live on
aio-demo.
Adds the entry alongside aio.16; older versions stay resolvable.
aiolabs/events#59: api_ticket_create stopped subtracting `sold` from
`amount_tickets`, which are the same tickets counted twice. Every event
declared itself sold out at half capacity — 16 of 24 live events on
aio-demo affected, 3 refusing sales with stock left.
aiolabs/events#58: publishes are confirmed against the relay's NIP-01
OK rather than the send queue, so an undelivered calendar event stays
flagged for the republish sweep instead of being recorded as sent.
Adds the entry alongside aio.15; older versions stay resolvable for
instances still running them.
Covers aiolabs/events #54 and #55: skipped publishes log at WARNING
instead of returning silently, events.nostr_publish_pending marks a row
from before each publish attempt until a confirmed success, and a
5-minute sweep republishes whatever is still flagged. Carries migration
m003.
The operator publishes what it did to a bay and the machine, which holds
the notes, owns the running count. Removes the endpoint that let a
dashboard form loaded before a dispense discard that dispense.
Pairs with aiolabs/bitspire#106 on the machine side; deploy this first.
v0.1.5 stays resolvable for instances still on it.
Adds a per-row Edit button to the Access doors table (backend PUT already
existed and preserves the controller token). Lets operators set a door's
Home Assistant webhook URL after creation without delete + recreate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The previous commit re-serialised extensions.json with 2-space indent; only
the new events entry was meant to change.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo
Adds the /api/v1/verify SUN-check endpoint the aiolabs access extension uses
for door authorization. Kept 1.1.1-aio.1 alongside for rollback.
archive: aiolabs/boltcards @ v1.1.1-aio.2
sha256: fe7fbbea81f55cb85fcfbeb02e2be905483f170731e33454f1d84349f7f03cf7
aiolabs fork of the lnbits boltcards extension adding a /pay deposit
endpoint (tap a Bolt Card to RECEIVE sats). Consumed by the bitSpire ATM
cash-in flow (aiolabs/bitspire #84).
Fork of upstream v1.1.1 (upstream's config.json lags at 1.1.0, but the
released tag is v1.1.1) → 1.1.1-aio.1.
archive: aiolabs/boltcards @ v1.1.1-aio.1
sha256: a01287fa7a19292e41e61db0aedab5e996b637689555743c25b764cc7fbe6cf5
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New entry alongside v0.1.0 (not overwritten — 0.1.0 installs need it
resolvable). Archive pinned to v0.2.0 tag (sha256 95291e60…e74).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
New aio-original extension. Archive pinned to v0.1.0 tag (sha256
4f96a2c1…c4b1). aio-original, not a fork, so plain vX.Y.Z tag scheme.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
New entry alongside v0.1.2. Fixes the localhost-relay /pair gotcha: a seed
minted via the Pair UI baked ws://127.0.0.1 (lnbits' internal bunker relay)
into bunker_url, unreachable by the remote ATM → BunkerTimeoutError. Now
defaults bunker_relay to the spire's public event relay. See spirekeeper#35;
design follow-up #36.
New entry alongside v0.1.1. Fixes the regression where an unpaired machine
(machine_npub NULL, nullable since #29) crashed normalize_public_key(None):
platform-fee update 500 + cassette consumer error-spam. See spirekeeper#33.
Demo upgrades v0.1.1 -> v0.1.2 to clear it (restart lnbits + hard-refresh).
New entry alongside -aio.1 (instances on the old version keep resolving
it). Enables bitSpire cash-in settlements: a withdraw link's extra now
rides onto the payout payment so spirekeeper's cash_in listener fires.
See aiolabs/withdraw#3.
New entry alongside aio.5 (not in place) so instances on the prior
version stay resolvable. Fixes the live ticket-count stall: a same-second
republish no longer ties created_at and gets dropped by relays.
aiolabs/events#26 / #27. sha256 of the v1.6.1-aio.6.zip archive pinned.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New aio extension — the v2-bitspire line of satmachineadmin split into
its own repo (aiolabs/spirekeeper). Operator-side admin for bitSpire
ATMs: Nostr-native DCA distribution + settlement. Archive sha256-pinned.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumped 1.6.1-aio.3 → 1.6.1-aio.5 (aio.4 skipped; no tagged release at
that version). Catalog now offers both -aio.3 and -aio.5; older
installs stay resolvable per "don't overwrite a version entry in
place".
aiolabs/events#24
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Ships split-ledger routing (aiolabs/libra#28 + #29 from PR #32),
settlement net+credit semantics (#33, #41), voided-tx in user-entries
endpoint (#34), and an integration test suite. New entry added
alongside v0.2.2 per "don't overwrite versions" policy.
Live immediately for any host pointing at the manifest URL — operators
click Upgrade in lnbits admin UI to pull the new code.
Nostr-driven inventory sync (ticket counts in NIP-52 tags, republish
on every sale), multi-ticket purchases as N independently-scannable
rows on one invoice, GET /tickets/user + polling endpoint, republish-
all / republish-mine admin tools. Co-merges aiolabs/events PR #15 +
PR #16.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>