spaced4ndy
|
eee013dfcb
|
core: credit store receipts from a standard work queue
|
2026-10-06 17:10:05 +04:00 |
|
spaced4ndy
|
0d7efd0bc3
|
ios, android: tell the buyer of a refusal without relying on the store echoing the invoice
|
2026-10-06 16:18:40 +04:00 |
|
spaced4ndy
|
110aa53c35
|
ios, android: hand store receipts to core, finish what it settles, and show why a held purchase is not credited yet
|
2026-10-06 13:34:17 +04:00 |
|
spaced4ndy
|
ba1731c551
|
core: pin the badge-held and internal-retry rules without depending on timing
|
2026-10-06 12:57:35 +04:00 |
|
spaced4ndy
|
0663f2141f
|
core: classify an unverifiable badge credential, settle before broadcasting, and narrow the stash deletion to codes
|
2026-10-06 12:31:51 +04:00 |
|
spaced4ndy
|
8e61ee8ff2
|
fix compilation
|
2026-10-05 19:07:41 +04:00 |
|
spaced4ndy
|
b6aa5a7f72
|
core: hold a store receipt until its worker credits it, report why it is not credited yet, and delete records that fund no badge after a month
|
2026-10-05 18:00:07 +04:00 |
|
spaced4ndy
|
3696ec1d7f
|
ios, android: drop the body text from the checking screen; core: clarify the unpaid record bound
|
2026-10-05 13:49:47 +04:00 |
|
spaced4ndy
|
c3629d0266
|
core, ios, android: drop the store purchase checking state, and hide unpaid records after a week
|
2026-10-05 13:39:16 +04:00 |
|
spaced4ndy
|
15a1782b76
|
update comments
|
2026-10-05 13:23:23 +04:00 |
|
spaced4ndy
|
bdc7c64f97
|
core, ios, android: state the real reason in the badge purchase comments
|
2026-10-05 13:10:30 +04:00 |
|
spaced4ndy
|
4b5b239fdb
|
tests: refuse a key that loses the store claim race as receipt_used, and show no badge after receipt_used
|
2026-10-02 19:09:31 +04:00 |
|
spaced4ndy
|
26e519f50c
|
tests: credit a store purchase that loses the claim race, and drop the client's keys on receipt_used
|
2026-10-02 18:45:10 +04:00 |
|
spaced4ndy
|
c53f560e2d
|
presentUnfinished comment
|
2026-10-02 18:42:00 +04:00 |
|
spaced4ndy
|
db8755ec8d
|
ios: let the purchase state screen scroll, so Dismiss stays reachable at large text sizes
|
2026-10-02 18:32:51 +04:00 |
|
spaced4ndy
|
e80e885aac
|
ios, android: catch a failed purchase presentation, word store purchase errors, and sweep abandoned purchases on a profile switch
|
2026-10-02 18:28:12 +04:00 |
|
spaced4ndy
|
7da11f71fd
|
comment
|
2026-10-02 17:29:42 +04:00 |
|
spaced4ndy
|
c74e313d02
|
android: close the badge purchase screens in one step; ios, android: drop the order screen spinner
|
2026-10-02 17:22:52 +04:00 |
|
spaced4ndy
|
3edeb3be02
|
android, desktop: offer the badge store lane when test products stand in for a store
|
2026-10-02 15:53:34 +04:00 |
|
spaced4ndy
|
7844706f01
|
ios, android: title both issuing screens alike, and let the purchase screens be dismissed
|
2026-10-02 15:22:24 +04:00 |
|
spaced4ndy
|
e9fae20118
|
use dev service
|
2026-10-02 14:56:09 +04:00 |
|
spaced4ndy
|
5549471f48
|
ios, android: show the order spinner only after a second, without a backdrop
|
2026-10-02 14:41:58 +04:00 |
|
spaced4ndy
|
59668a5f44
|
ios, android: lighten the order summary rows, keeping the values a step bolder
|
2026-10-02 14:33:35 +04:00 |
|
spaced4ndy
|
8524bcefe5
|
fix kotlin build
|
2026-10-02 14:24:41 +04:00 |
|
spaced4ndy
|
62fc897cca
|
ios, android: show the order spinner only while a purchase is issued, and shorten the tier cards
|
2026-10-02 14:20:26 +04:00 |
|
spaced4ndy
|
ba4da8db74
|
ios, android: lead the badge cards with their price, and set the order card on a grouped background
|
2026-10-02 14:06:00 +04:00 |
|
spaced4ndy
|
e33a06fc32
|
ios, android: show progress while a badge is bought, and say the payment is complete while it is issued
|
2026-10-02 13:47:39 +04:00 |
|
spaced4ndy
|
a70ab3bac5
|
ios, android: show the real end date and full price at badge checkout, and disable subscriptions
|
2026-10-02 13:39:36 +04:00 |
|
spaced4ndy
|
172f70a0e6
|
postgres schema
|
2026-10-01 19:32:15 +04:00 |
|
spaced4ndy
|
a3609d731b
|
drop redundant import
|
2026-10-01 19:11:24 +04:00 |
|
spaced4ndy
|
0dbf3b0ef1
|
fix StoreTransactionRef comments
|
2026-10-01 19:09:22 +04:00 |
|
spaced4ndy
|
9711251afa
|
core: rename badgeServiceTarget to requireBadgeService and requestStashedBadge to redeemBadgeStash; clarify its comment
|
2026-10-01 19:00:21 +04:00 |
|
spaced4ndy
|
406ee114a7
|
core: simplify the ledger entry rebuild comment
|
2026-10-01 18:28:22 +04:00 |
|
spaced4ndy
|
4bb8a5e0e6
|
explain the nullable store receipt columns
|
2026-10-01 18:18:44 +04:00 |
|
spaced4ndy
|
f0a28859b1
|
clarify the deferred payment_id draft
|
2026-10-01 18:12:28 +04:00 |
|
spaced4ndy
|
e143d0bbe1
|
badge service: say which payment funds no purchase when the claim is lost
|
2026-10-01 18:05:29 +04:00 |
|
spaced4ndy
|
84c6397175
|
badge service: name a funding's state by whether it was credited, not claimed
|
2026-10-01 17:04:15 +04:00 |
|
spaced4ndy
|
f495e8b8c0
|
badge service: say why store products are not in the seeded catalog
|
2026-10-01 16:48:15 +04:00 |
|
spaced4ndy
|
2f878af8a7
|
scripts: list both dev switches in the deployment template
|
2026-10-01 16:37:31 +04:00 |
|
spaced4ndy
|
730562a17d
|
badge service: rename storeReceipt to toStoreReceipt
|
2026-10-01 16:18:16 +04:00 |
|
spaced4ndy
|
9a973af057
|
badge service: refuse a store quantity other than one, rather than multiply by it
|
2026-10-01 16:11:01 +04:00 |
|
spaced4ndy
|
039bf2e0f7
|
core, badge service: say how a verified transaction and a stored payment differ
|
2026-10-01 16:01:26 +04:00 |
|
spaced4ndy
|
dc392994bf
|
core, badge service: share one store transaction reference, and mark a verified transaction as such
|
2026-10-01 15:53:20 +04:00 |
|
spaced4ndy
|
6df330e232
|
core: say why a store purchase may arrive without an invoice id
|
2026-10-01 14:41:58 +04:00 |
|
spaced4ndy
|
bebb8ef094
|
ios, android: don't promise a purchase that may not exist
|
2026-10-01 14:24:59 +04:00 |
|
spaced4ndy
|
7473e7a61c
|
android: no badge can be bought where there is no platform store
|
2026-10-01 14:12:28 +04:00 |
|
spaced4ndy
|
8448bc28b5
|
ios, android: word purchase errors for a purchase, not a code
|
2026-10-01 14:12:05 +04:00 |
|
spaced4ndy
|
94675cda8c
|
core, ios, android: rename BadgeStorePurchase to OpenStorePurchase, and drop a dead canBuy clause
|
2026-10-01 13:57:12 +04:00 |
|
spaced4ndy
|
abf775020f
|
core, ios, android: rename BadgeStorePurchase to OpenStorePurchase
|
2026-10-01 13:56:29 +04:00 |
|
spaced4ndy
|
75e990f120
|
ios, android: show a pending badge purchase only on the profile that made it, and keep the buyer's alert
|
2026-10-01 13:46:19 +04:00 |
|