Commit graph

  • 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
  • 13ac33047b feat(v2): machine detail dialog — settlements + per-row actions (P9b) Padreug 2026-05-14 18:01:08 +02:00
  • 21d159d709 feat(v2): tabbed dashboard skeleton + Fleet tab (P9a) Padreug 2026-05-14 17:58:43 +02:00
  • 0bdee0f62b feat(v2): LP auto-forward to LN address (P6 — closes #8) Padreug 2026-05-14 17:46:02 +02:00
  • 578f2c142d feat(v2): abandoned-tx queue + force-reset for stuck settlements (P3f) Padreug 2026-05-14 17:43:20 +02:00
  • 3ede66ff92 fix(v2)(security): wallet IDOR + settlement-processing concurrency Padreug 2026-05-14 17:37:58 +02:00
  • d0a947b7e6 feat(v2): balance settlement at current rate (P3e) Padreug 2026-05-14 17:17:41 +02:00
  • 2883eb7b79 feat(v2): partial-dispense + operator notes on settlements (P3d) Padreug 2026-05-14 15:46:33 +02:00
  • e8dcbfe26e feat(v2): commission splits CRUD endpoints (P3c) Padreug 2026-05-14 15:37:16 +02:00
  • b7f6f0a696 feat(v2): deposit CRUD + confirmation endpoints (P3b) Padreug 2026-05-14 15:36:04 +02:00
  • 7226b8289d feat(v2): client CRUD + balance summary endpoints (P3a) Padreug 2026-05-14 15:35:15 +02:00
  • 56be3e5c52 feat(v2): settlement distribution — three leg groups, super-fee write (P2) Padreug 2026-05-14 15:34:07 +02:00
  • 10b79ae900 feat(v2): operator-scoped API surface — machines, settlements, payments (P1b) Padreug 2026-05-14 14:50:07 +02:00
  • b91e49b642 feat(v2): wire bitSpire invoice listener + settlement landing (P1a) Padreug 2026-05-14 14:48:44 +02:00
  • cba327d0f0 fix(v2): use payment_hash as settlement idempotency key Padreug 2026-05-14 14:46:08 +02:00
  • 937749f149 feat(v2): operator-scoped CRUD + stub legacy entry points Padreug 2026-05-14 14:37:48 +02:00
  • 013e3d5f6b feat(v2): rewrite models.py for v2 schema Padreug 2026-05-14 14:33:16 +02:00
  • ae4e241d1c feat(v2): add m005 satmachine_v2 schema for bitSpire + multi-tenant Padreug 2026-05-14 14:30:45 +02:00
  • 28241e70c3 feat: add deposit edit and delete for pending deposits Padreug 2026-04-26 16:00:04 +02:00
  • 6eb076d5f6 chore: bump version to 0.0.4 padreug 2026-01-11 16:10:48 +01:00
  • 545a0284a7 fix: cap DCA allocations when ATM cash exceeds tracked balances padreug 2026-01-11 15:54:48 +01:00
  • 49f3670bac fix: cast amount to float for LNbits create_invoice API padreug 2026-01-11 15:40:17 +01:00
  • 397fd4b002 feat: add unit tests for DCA calculations with empirical Lamassu data padreug 2026-01-11 14:14:18 +01:00
  • 8d94dcc2b7 fix: reset correct loading state after manual transaction processing padreug 2026-01-05 20:57:25 +01:00
  • ab4e3d6b12 fix: use check_user_exists for LNbits 1.4 compatibility padreug 2026-01-05 12:14:48 +01:00
  • 25be6cff87 Fix LNbits 1.4 compatibility: add null guards for g.user.wallets padreug 2026-01-05 11:11:19 +01:00
  • cd0d958c2c consolidate docs padreug 2025-11-03 22:22:55 +01:00
  • 1b7374fa70 Removes test transaction UI button padreug 2025-10-24 00:30:34 +02:00
  • fe38e08d4e Adds manual transaction processing feature padreug 2025-10-24 00:15:22 +02:00
  • 230beccc37 Improve balance verification in LamassuTransactionProcessor: Added rounding to two decimal places for balance and fiat amounts to ensure precision in comparisons. Enhanced logging for insufficient balance scenarios, improving clarity in transaction processing and error reporting. padreug 2025-07-19 00:21:13 +02:00
  • 077e097fc2 Refactor transaction data handling in LamassuTransactionProcessor: Improved consistency in processing None and empty values during data ingestion. Defaulted numeric fields to 0 and percentage fields to 0.0 for better error handling. Ensured clean extraction of transaction details, enhancing reliability in transaction processing. padreug 2025-07-08 06:14:52 +02:00
  • 4843b43147 FIX: exclude flow_clients remaining_balance values less than 0.01 padreug 2025-07-06 02:04:11 +02:00
  • 5d41e0c50e Refine distribution logic in transaction processing: Updated the LamassuTransactionProcessor to only create distributions for clients with positive allocated sats. Enhanced logging to indicate when clients are skipped due to zero amounts, improving clarity and accuracy in transaction reporting. padreug 2025-07-06 01:15:26 +02:00
  • bca39b91cd Enhance commission memo generation in transaction processing: Added discount handling to the commission memo in LamassuTransactionProcessor, allowing for the calculation of effective commission percentages when discounts are applied. This improves clarity in transaction details by providing a more accurate representation of commissions after discounts. padreug 2025-07-06 00:54:19 +02:00
  • a864f285e4 Refactor m004_convert_to_gtq_storage migration: Streamlined the conversion of centavo amounts to GTQ by detecting the database type (PostgreSQL or SQLite) and applying appropriate data type changes and updates. This enhances clarity and ensures proper handling of data conversions across relevant tables. padreug 2025-07-06 00:24:49 +02:00
  • c83ebf43ab 01 Refactor currency handling to store amounts in GTQ: Removed currency conversion utilities, updated models and API endpoints to directly handle GTQ amounts, and modified transaction processing logic for consistency. Enhanced frontend to reflect these changes, ensuring accurate display and submission of GTQ values across the application. padreug 2025-07-06 00:00:30 +02:00
  • aa71321c84 00 Add currency conversion utilities and update models for GTQ handling: Introduced currency conversion functions for GTQ and centavos, updated API and database models to handle GTQ amounts directly, and modified API endpoints to streamline deposit and balance summary responses. Adjusted frontend to reflect changes in currency representation, ensuring consistency across the application. padreug 2025-07-05 23:38:23 +02:00
  • 7b40fcef21 Change order of transaction confirmation sorting: Updated the SQL query in the LamassuTransactionProcessor to sort confirmed transactions in ascending order by confirmation date, improving the retrieval of older transactions. padreug 2025-07-05 18:31:59 +02:00
  • d701b7c770 Implement final balance verification in distribution process: Added checks to ensure clients have positive balances before finalizing distributions and making payments. Enhanced logging for rejected clients and balance sufficiency, improving transaction reliability and transparency. padreug 2025-07-05 18:31:20 +02:00
  • f0f38f73bf Update currency handling in frontend and backend: Adjusted amount formatting to display GTQ instead of centavos in the UI. Modified data submission logic to convert GTQ to centavos for backend processing, ensuring consistency in currency representation across the application. padreug 2025-07-05 17:35:11 +02:00
  • 1943da1fc3 Enhance DCA distribution logic: Improved the proportional distribution algorithm to include precise calculations with banker's rounding and handle remainder allocation fairly among clients. Added verification to ensure total distributed amount matches the base allocation, enhancing accuracy and reliability in transaction processing. padreug 2025-07-05 15:06:32 +02:00
  • e222922a6a Update fiat amount handling in models and transaction processor: Modified models to store fiat amounts in centavos for precision. Adjusted transaction processing logic to calculate and display fiat values in centavos, ensuring consistency across the application. Enhanced comments for clarity on the new storage format. padreug 2025-07-05 14:58:38 +02:00
  • 7af0e47d48 Add max_daily_limit_gtq field to lamassu_config: Updated database schema and models to include max_daily_limit_gtq for configurable client limits. Enhanced API and frontend to support this new field, ensuring proper handling and validation in the user interface. padreug 2025-06-27 23:21:03 +02:00
  • ae50db10c7 Normalize transaction_time to UTC in transaction processing: Enhanced the LamassuTransactionProcessor to ensure transaction_time is consistently converted to UTC if present, improving accuracy in time handling across transactions. padreug 2025-07-05 16:55:44 +02:00
  • 3e4effb76f Refactor logging and transaction time normalization: Updated the get_client_balance_summary function to use loguru for improved logging clarity. Enhanced transaction processing to normalize transaction_time to UTC, ensuring consistency and accuracy in time handling across transactions. padreug 2025-07-05 16:50:31 +02:00
  • 5988a25983 Refine client balance summary logic: Updated the get_client_balance_summary function to filter payments based on transaction_time for improved temporal accuracy. Enhanced logging to clarify balance calculations with respect to the cutoff time, ensuring better transparency in reported balances. padreug 2025-07-05 16:41:41 +02:00
  • 59e4d53215 Enhance timestamp parsing in transaction processing: Improved handling of PostgreSQL timestamp formats to ensure consistency in UTC. Added error logging for invalid timestamps and implemented a fallback mechanism to use the current UTC time when parsing fails, enhancing robustness in transaction time management. padreug 2025-07-05 16:06:00 +02:00
  • c5227100b8 Enhance transaction time handling: Updated the transaction processing logic to ensure all timestamps are normalized to UTC for consistency. Added logging to warn about timezone-naive timestamps and to inform about conversions from other timezones. Adjusted the client balance summary logging to include timezone information when as_of_time is used, improving clarity in balance reporting. padreug 2025-07-05 15:48:51 +02:00
  • 7e39bb160a Enhance client balance summary retrieval: Updated the get_client_balance_summary function to accept an optional as_of_time parameter for temporal accuracy in balance calculations. Adjusted SQL queries to filter results based on the specified time, ensuring accurate balance summaries. Added logging for cases where as_of_time is utilized. Updated transaction processing to leverage this new functionality for improved accuracy in client balance calculations. padreug 2025-07-05 15:35:58 +02:00
  • 8871f24cec Refactor DCA API endpoints to use superuser authentication: Updated all relevant DCA-related API endpoints to require check_super_user instead of require_admin_key, enhancing security. Adjusted client-side API calls to remove wallet admin key usage, ensuring session-based superuser authentication is utilized. Updated documentation in CLAUDE.md to reflect these changes. padreug 2025-06-26 13:18:01 +02:00
  • dfc2dd695c Remove test client creation functionality from admin extension padreug 2025-06-26 12:04:55 +02:00
  • 76807663db Update database references from 'satmachineadmin' to 'satoshimachine': Modified all relevant CRUD operations and migration scripts to reflect the new database name, ensuring consistency across the application. padreug 2025-06-26 10:14:49 +02:00
  • 4d3e6a4b37 Add SSH configuration handling in transaction processor: Introduced a temporary SSH config file for secure connections, including strict settings and proper key handling. Enhanced error handling for cleanup of SSH key and config files. Updated connection methods to utilize the new SSH config structure for improved security and maintainability. padreug 2025-06-23 00:20:37 +02:00
  • 3a2f10f949 Add transaction_time field to DCA payments: Updated the database schema to include a new transaction_time column in the dca_payments table, modified the CreateDcaPaymentData model to accept transaction_time, and adjusted the create_dca_payment function to store the original ATM transaction time. Updated transaction processing to capture this new field. padreug 2025-06-22 16:50:27 +02:00
  • 18323dc0c8 move to parent folder padreug 2025-06-22 11:51:45 +02:00
  • 466d2c74e3 Refactor DCA API endpoints to require admin key for access: Updated wallet dependency in multiple DCA-related endpoints to use require_admin_key instead of require_invoice_key, enhancing security and access control. Cleaned up code formatting for improved readability. padreug 2025-06-22 11:13:41 +02:00
  • 931ae1308f remove helper bash script padreug 2025-06-22 10:59:49 +02:00
  • 628d5b4254 update CLAUDE.md padreug 2025-06-20 22:32:54 +02:00
  • 2569fbdf0d update manifest padreug 2025-06-20 22:24:18 +02:00
  • 6db94179cc Replace [mM]yextension with [sS]at[mM]achine[aA]dmin padreug 2025-06-20 22:16:58 +02:00
  • 896ca5f3ca Refactor DCA Admin migration script: Simplify and consolidate database schema creation for Dollar Cost Averaging administration, including DCA clients, deposits, payments, and Lamassu configuration. Remove legacy migration functions and enhance clarity with updated table structures and comments. padreug 2025-06-20 22:10:16 +02:00
  • 75dd03b15a Refactor MyExtension to DCA Admin: Update extension name and description in config.json, remove legacy MyExtension CRUD operations and related API endpoints, and adjust router tags. Clean up unused files and methods to streamline the codebase for DCA administration functionality. padreug 2025-06-20 21:51:38 +02:00