Commit graph

  • a5ab02e4b6 Merge pull request 'fix(pairing): default bunker_relay to the spire's public event relay, not localhost' (#35) from fix/pair-bunker-relay-default into main main v0.1.3 padreug 2026-06-22 15:21:12 +00:00
  • b55fc8bc1c fix(pairing): default bunker_relay to the spire's public event relay, not localhost Padreug 2026-06-22 17:18:24 +02:00
  • d0d20b0f94 Merge pull request 'fix: guard every machine_npub deref against unpaired machines (500 + cassette-consumer crash)' (#33) from fix/unpaired-machine-npub-guards into main v0.1.2 padreug 2026-06-22 14:58:03 +00:00
  • 8dad72a00d fix: complete the unpaired-machine sweep + regression test Padreug 2026-06-22 16:53:45 +02:00
  • d52a3bfafe fix: guard every machine_npub deref against unpaired machines (None) Padreug 2026-06-22 16:45:29 +02:00
  • 622c1be5d3 Merge pull request 'feat(cash-in): secure create_withdraw nostr-transport RPC (#31)' (#32) from feat/secure-cashin-rpc into main v0.1.1 padreug 2026-06-22 13:54:43 +00:00
  • f67cb49bc3 fix(cash-in): return bech32 LNURL, not the raw URL Padreug 2026-06-22 15:32:44 +02:00
  • 9abf695fd5 feat(cash-in): super_config.max_cash_in_sats per-tx cap + UI (#31) Padreug 2026-06-22 12:51:59 +02:00
  • 607b71e796 feat(cash-in): secure create_withdraw nostr-transport RPC (#31) Padreug 2026-06-22 12:17:17 +02:00
  • 56ac4a69e9 Merge pull request 'fix(settlements): process cash-in (outbound) payments, not just cash-out' (#30) from fix/cash-in-settlement into main padreug 2026-06-22 10:19:44 +00:00
  • 7b55dc152b fix(settlements): process cash-in (outbound) payments, not just cash-out Padreug 2026-06-21 17:27:58 +02:00
  • 490605333c Merge pull request 'feat(pairing,ui): optional machine_npub + bunker_relay override + fee decimal-input UX' (#29) from feat/optional-machine-npub-pairing-ux into main padreug 2026-06-21 13:41:57 +00:00
  • 73bd274979 feat(pairing,ui): optional machine_npub + bunker_relay override + fee decimal-input UX Padreug 2026-06-21 12:31:55 +02:00
  • 47b7efc53c Merge pull request 'docs(pairing): TTL + token-revoke now enforced post-bind (nsecbunkerd#27)' (#28) from docs/ttl-revoke-enforced-post-bind into main padreug 2026-06-20 10:05:36 +00:00
  • b193f6262d docs(pairing): TTL + token-revoke now enforced post-bind (nsecbunkerd#27) Padreug 2026-06-19 23:23:11 +02:00
  • cc8d786331 Merge pull request 'fix(fleet-ui): pair-dialog v-else compiler error + TTL docstring correction' (#27) from fix/pair-dialog-and-ttl-doc into main padreug 2026-06-18 23:01:15 +00:00
  • 554b2e2e17 docs(pairing): correct duration_hours TTL docstring Padreug 2026-06-19 00:59:29 +02:00
  • 76090ab5da fix(fleet-ui): wrap pair-dialog steps in template v-if/v-else Padreug 2026-06-19 00:59:29 +02:00
  • 22678dfb4f feat(pairing): authorize kind-22242 (NIP-42 AUTH) in spire policy (#52) Padreug 2026-06-18 19:27:29 +02:00
  • a18f653ca7 feat(ui): Fleet Pair / Revoke spire UI (#9/#12) Padreug 2026-06-18 19:23:22 +02:00
  • d826e68413 feat(ui): Fleet Pair / Revoke spire UI (#9/#12) Padreug 2026-06-18 19:23:22 +02:00
  • 846d5d9d0f Merge pull request 'feat(pairing): optional token TTL + revoke endpoint (#9/#12, #22)' (#23) from feat/pairing-revoke-ttl into main padreug 2026-06-18 17:09:01 +00:00
  • 4db5c3de4e Merge branch 'main' into feat/pairing-revoke-ttl padreug 2026-06-18 17:08:44 +00:00
  • 32959d1533 Merge pull request 'feat(pairing): seed-URL pairing — operator-side producer (S0 / #9)' (#21) from feat/seed-url-pairing into main padreug 2026-06-18 17:03:34 +00:00
  • a5efdf22a1 feat(pairing): optional token TTL + revoke endpoint (#9/#12, #22) Padreug 2026-06-18 18:51:54 +02:00
  • 9c5f07c72e refactor(pairing): use lnbits' public ensure_policy, drop fork duplicate (#9) Padreug 2026-06-18 18:31:21 +02:00
  • 761f078053 feat(pairing): POST /machines/{id}/pair endpoint (#9) Padreug 2026-06-16 23:39:18 +02:00
  • a77f5bcb5c feat(pairing): bunker pairing service — mint per-spire key + seed URL (#9) Padreug 2026-06-16 23:17:48 +02:00
  • bb473f5385 feat(pairing): m010 schema — bunker pairing columns on dca_machines Padreug 2026-06-16 22:47:42 +02:00
  • c651d53419 assets: replace extension logo with AIO mark (256x256) Padreug 2026-06-16 18:10:29 +02:00
  • 86f132afbe chore: bitSpire-accurate short_description for 0.1.0 release v0.1.0 Padreug 2026-06-16 17:43:55 +02:00
  • 439c47ceae docs: repoint migrated issue refs to spirekeeper numbers Padreug 2026-06-16 17:42:56 +02:00
  • 40639ee437 docs: add satmachineadmin -> spirekeeper data-migration runbook Padreug 2026-06-13 22:37:48 +02:00
  • 4ac640a499 docs: update functional identifier refs to spirekeeper Padreug 2026-06-13 22:31:21 +02:00
  • a059e3f596 refactor: rename extension identity to spirekeeper Padreug 2026-06-13 22:30:05 +02:00
  • 9c4d2c1324 docs(security-pathway): flag kind:21001 CLINK collision + rotation Padreug 2026-06-06 21:00:14 +02:00
  • 8a9aa00c20 Merge pull request 'feat(v2): operator fee-config Nostr publisher (closes #39)' (#43) from feat/fee-transport into v2-bitspire padreug 2026-06-01 18:20:09 +00:00
  • 794d7e5395 feat(v2): wire fee-config publish into machine + super-config triggers (#39 3/3) Padreug 2026-06-01 20:07:56 +02:00
  • 12f39226f0 feat(v2): fee_transport — kind-30078 publisher for operator fee config (#39 2/3) Padreug 2026-06-01 20:00:29 +02:00
  • aeaee1f568 refactor(v2): extract kind-30078 publish primitives to nostr_publish.py (#39 1/3) Padreug 2026-06-01 19:54:08 +02:00
  • 52911af7b1 Merge pull request 'feat(v2): principal-based fee split + per-direction config (closes #38)' (#42) from feat/principal-based-fees into v2-bitspire padreug 2026-06-01 17:45:30 +00:00
  • 10f4b50ca5 feat(v2)(ui): per-direction fee inputs in super-config + machine modals (#38 5/5) Padreug 2026-06-01 14:46:27 +02:00
  • d9e8a04b8b feat(v2): record fee_mismatch_sats per settlement, Phase 1 (#38 4/5) Padreug 2026-06-01 14:34:25 +02:00
  • 1babdfbf06 feat(v2): principal-based fee split — fixes super under-payment (#38 3/5) Padreug 2026-06-01 11:24:09 +02:00
  • 4cd0041923 feat(v2): CRUD + per-direction fee cap validation (#38 2/5) Padreug 2026-06-01 10:42:03 +02:00
  • d87d0db324 feat(v2): m009 + models — split fee fractions by direction (#38 1/5) Padreug 2026-06-01 10:18:37 +02:00
  • e9f81d0cbb Merge pull request 'feat(v2): nostr-transport roster-resolver hook — path B wallet routing (#20)' (#36) from feat/roster-resolver into v2-bitspire padreug 2026-05-31 20:33:17 +00:00
  • 99efa52b69 feat(v2): nostr-transport roster-resolver hook (#20 path-B) Padreug 2026-05-31 19:14:45 +02:00
  • 213f95bab7 Merge pull request 'feat(v2): collision guard — refuse machines whose npub matches an operator account (closes #32)' (#33) from feat/collision-detection into v2-bitspire padreug 2026-05-31 18:10:30 +00:00
  • 7bab182abb chore(tests): remove stale test_init.py cookiecutter leftover Padreug 2026-05-31 19:23:36 +02:00
  • 05c1105897 feat(v2): collision guard — refuse machines whose npub matches an operator account (#32) Padreug 2026-05-31 18:45:56 +02:00
  • 44f6c0b1bd Merge pull request 'feat(v2): operator-side cassette inventory v1.1 + signer.nip44_* migration (#29)' (#30) from feat/cassette-config-v1 into v2-bitspire padreug 2026-05-31 13:54:18 +00:00
  • d448fab0d2 chore(v2): lint pass — black + ruff auto-fix + mypy regressions (#29 v1.1) Padreug 2026-05-31 15:50:14 +02:00
  • dcb7de0c27 refactor(v2): cassette transport — signer.nip44_* migration (#29 v1.1 / closes #21 partial) Padreug 2026-05-31 09:21:43 +02:00
  • 4b128ca53c test(v2): re-wire bitspire cross-test fixture for v1.1 positions-keyed shape (#29 v1.1) Padreug 2026-05-30 22:43:12 +02:00
  • 1cebefcde5 test(v2): rewrite cassette tests for v1.1 position-keyed wire shape (#29 v1.1) Padreug 2026-05-30 22:31:08 +02:00
  • 3014962563 refactor(v2)(ui): denomination editable per slot, position read-only (#29 v1.1) Padreug 2026-05-30 22:28:37 +02:00
  • 34e324b4c5 refactor(v2): cassette consumer + API endpoint — position-keyed (#29 v1.1) Padreug 2026-05-30 22:26:55 +02:00
  • 5dbd7314f4 refactor(v2): cassette CRUD + transport — position-keyed (#29 v1.1) Padreug 2026-05-30 22:25:27 +02:00
  • 427cad33de refactor(v2): cassette models — position-keyed wire shape (#29 v1.1) Padreug 2026-05-30 22:23:51 +02:00
  • df6e8e0a22 feat(v2): m008 flip cassette_configs PK to (machine_id, position) (#29 v1.1) Padreug 2026-05-30 22:22:29 +02:00
  • 23b615601f fix(v2)(ui): dirty cassette row — inset shadow accent, not bg-color class Padreug 2026-05-30 19:39:35 +02:00
  • 5f9c84b6e8 fix(v2)(ui): dirty cassette row needs explicit text-grey-9 under dark theme Padreug 2026-05-30 19:34:11 +02:00
  • 5631246337 test(v2): wire bitspire's NIP-44 v2 cross-test fixture from coord log (#29 v1) Padreug 2026-05-30 18:34:54 +02:00
  • 407149137a feat(v2)(ui): cassette sub-tab in machine detail + overwrite-confirm modal (#29 v1) Padreug 2026-05-30 18:26:05 +02:00
  • f8042f8e4d feat(v2): POST cassettes/publish API endpoint + ownership guard (#29 v1) Padreug 2026-05-30 18:21:51 +02:00
  • e57a73083e feat(v2): bootstrap consumer task — auto-populate cassette_configs (#29 v1) Padreug 2026-05-30 18:19:15 +02:00
  • b9d5ea3c57 feat(v2): cassette_transport — kind-30078 publish + decrypt (#29 v1) Padreug 2026-05-30 18:14:16 +02:00
  • da07bae554 feat(v2): hand-rolled NIP-44 v2 crypto + reference-vector tests (#29 v1) Padreug 2026-05-30 18:10:30 +02:00
  • 9b8008db1f feat(v2): cassette_configs CRUD + unit tests (#29 v1) Padreug 2026-05-30 18:03:52 +02:00
  • 13684e7134 feat(v2): m007 cassette_configs schema + Pydantic models (#29 v1) Padreug 2026-05-30 18:00:11 +02:00
  • 58a0974117 chore: ignore uv.lock until PEP 621 migration Padreug 2026-05-26 23:33:49 +02:00
  • cf6c0b4b7a docs: security pathway write-up + printable PDF Padreug 2026-05-26 23:30:36 +02:00
  • ecf432c6a0 feat(v2)(ui): tx_type chip in operator settlements table (S8 UI) Padreug 2026-05-26 23:28:42 +02:00
  • eca6e961b7 feat(v2): wire cash-in routing — direction discriminator + DCA skip Padreug 2026-05-26 23:21:30 +02:00
  • dcd08748a7 revert(v2): drop NIP-78 fleet publishing (privacy by default) Padreug 2026-05-26 23:20:24 +02:00
  • e13178d3ac feat(v2): route nostr_publish signing through lnbits#17 signer abstraction (hybrid) Padreug 2026-05-26 22:24:29 +02:00
  • 131ff92aa8 feat(v2): publish operator-signed kind:30078 fleet roster + per-machine config (S4) Padreug 2026-05-26 20:28:26 +02:00
  • d717a6e214 refactor(v2): canonical sat-amount vocabulary + delete Lamassu-era reverse-derivation Padreug 2026-05-26 20:08:30 +02:00
  • 6348c55e37 fix(v2)(ui): split v-text from <q-chip> children in deposit dialog Padreug 2026-05-16 18:04:40 +02:00
  • d2e682712d feat(v2): lock deposit currency to machine.fiat_code (closes #26) Padreug 2026-05-16 18:03:34 +02:00
  • da25d2e1f8 fix(v2): read fiat_amount directly from Payment.extra (bill-validator truth) Padreug 2026-05-16 16:39:47 +02:00
  • cfad4e341c feat(v2)(ui): operator-side LP UI matches the new dca_lp authority split Padreug 2026-05-16 10:12:23 +02:00
  • 80b5a6d785 refactor(v2): hoist LP state (wallet, mode, autoforward) into dca_lp table Padreug 2026-05-16 10:05:54 +02:00
  • 1feaba80ed refactor(v2): rename net_sats → principal_sats for semantic clarity Padreug 2026-05-15 23:21:32 +02:00
  • 9414a18f82 feat(v2): reject settlements that fail nostr attribution cross-check (S5 G5) Padreug 2026-05-15 22:39:30 +02:00
  • 47916bdddd fix(v2): m002 — rename dca_commission_splits.wallet_id → target Padreug 2026-05-15 07:55:57 +02:00
  • a86f8dc25d fix(v2): refuse /retry when any leg already completed (double-pay guard) Padreug 2026-05-14 19:38:32 +02:00
  • 5de9cd5205 feat(v2): commission split target accepts wallet id, invoice key, LN address, or LNURL Padreug 2026-05-14 19:37:33 +02:00
  • 8968c0ae07 fix(v2)(ui): finish expanding self-closing q-* tags (rules-attribute corner case) Padreug 2026-05-14 19:25:03 +02:00
  • 32484e3ce8 fix(v2): reorder /settlements/stuck before /settlements/{id} (route literal vs path-param collision) Padreug 2026-05-14 19:22:10 +02:00
  • 2886dd7394 chore(v2): collapse m001-m007 into single m001_satmachine_v2_initial Padreug 2026-05-14 19:15:28 +02:00
  • cb19ba3675 fix(v2): m005-m007 idempotency + SQLite CREATE INDEX syntax; template self-closing tags Padreug 2026-05-14 19:12:51 +02:00
  • b96837164e chore(v2): dead-code purge (fix bundle 3) Padreug 2026-05-14 19:00:43 +02:00
  • 00b8253dd3 fix(v2): partial-dispense preserves original split ratio (H6) Padreug 2026-05-14 18:58:15 +02:00
  • ecef916dda fix(v2): decouple listener + skipped-leg audit (fix bundle 2) Padreug 2026-05-14 18:49:16 +02:00
  • f4eb7ec928 feat(v2): super-fee edit + Worklist + Reports (P9f+g, completes P9) Padreug 2026-05-14 18:09:07 +02:00
  • 5c8e629752 feat(v2): Commission splits editor (P9e) Padreug 2026-05-14 18:07:08 +02:00
  • ce4d7e4dd6 feat(v2): Deposits tab — record/confirm/reject workflow (P9d) Padreug 2026-05-14 18:05:25 +02:00
  • 0800a1acb0 feat(v2): Clients tab — LP management + settle balance modal (P9c) Padreug 2026-05-14 18:03:29 +02:00