openreceive 0.4.23 → 0.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb5542a9163a02e90baa6f8938172785600029980002c119fde4631b452da20c
4
- data.tar.gz: 7f71eb77da79968df633485d01ca9e7a89bbd839186a1daf1d137323f889daba
3
+ metadata.gz: dd185f08cf0e3d60b0477eb5f109df48b386e58bac6e2dc9e68438d964f5b009
4
+ data.tar.gz: bf33fa7ac49d2baff5c17a39d5f88dd29fe5f0f1a3927368be29b41cb6bb0ab1
5
5
  SHA512:
6
- metadata.gz: 75465da88449b28ff097b5b4a4d7eadb141e2ba8be2a1e4797ae021fd23ba876df3b50cbef86e7afb0b05df4f718e957dd78a5c4979cda2558e79bb9642c20c4
7
- data.tar.gz: 90884d4fef6027acb5919a5a9d36c0e7d1ba066d13d21db1793c940dad7c2c6653288a26efb0540eccb7b7baf37a4817e99d3826fb58af034aa594bc303ff260
6
+ metadata.gz: 52511e9cf27f2cf168a3a8b5c59a0d71fa7b2f8d41e1db67ddda8dda32926b291119b952edc643132368ecec87057b51092d7f2574451c7b71c916ffa0c373cc
7
+ data.tar.gz: 89caad630814757eb881d325cb728173b28ebb8ff246697a5b92c2e7f0dc21dd8392683d99a4add6366ddb67182a571753ebbe8299b551f7a6018a5f6da9b23a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.24 - 2026-10-12
4
+
5
+ Release with the complete 0.4.24 package family. The gem's registry page
6
+ now links openreceive.org's Rails page. The bundled agent skill's
7
+ Lovable directions need `@openreceive/*` 0.4.24, whose Supabase functions
8
+ no longer hang when two requests write one order, and keep the app's own
9
+ order flow. Its FastAPI directions run doctor through `dotenv run` and never
10
+ load `.env` into the shell, and the Node, Next.js, Fastify, FastAPI and Django
11
+ directions link the serverless guide. No Ruby runtime changes from 0.4.23.
12
+
3
13
  ## 0.4.23 - 2026-10-11
4
14
 
5
15
  Release with the complete 0.4.23 package family. The bundled agent skill adds
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenReceive
4
- VERSION = "0.4.23"
4
+ VERSION = "0.4.24"
5
5
  end
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/btcpay/full.md
17
17
  - Never tick the spend-capable override to make a save succeed.
18
18
  - Do not suggest rotating or revoking a code because it was pasted here.
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Connect a BTCPay Server store to a receive-only NWC wallet with the OpenReceive
23
23
  plugin, and optionally let payers pay BTCPay invoices with USDT, USDC, ETH or
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/django/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Django project — the app you are already working in. You
23
23
  do not need a copy of the OpenReceive source: the Python package is on PyPI
@@ -389,6 +389,7 @@ enough; drop the `.md` for the same page a person would read.
389
389
  - https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
390
390
  - https://openreceive.org/guides/storage.md — the engine tables and the attempt state machine
391
391
  - https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
392
+ - https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
392
393
  - https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
393
394
  - https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
394
395
  - https://openreceive.org/guides/headless-checkout.md — the controller, the display models, refunds
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (FastAPI)
4
4
 
5
5
  ```sh
6
- # READ THIS FIRST: this file is 39 KB and a summary drops required steps. Download it whole:
6
+ # READ THIS FIRST: this file is 40 KB and a summary drops required steps. Download it whole:
7
7
  curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
8
8
  # Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
9
9
  ```
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a FastAPI application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the engine is on PyPI
@@ -126,6 +126,11 @@ you store it. Ask one question per message.
126
126
  with `uvicorn --env-file .env` (update the app's run script or Procfile, not
127
127
  just your own command). When it is started with Docker Compose, give the
128
128
  service `env_file: .env`. Restart the server after writing the file.
129
+ Doctor needs the file too: run it as
130
+ `dotenv -f .env run -- openreceive doctor …`. The `dotenv` command comes
131
+ with python-dotenv, which `uvicorn --env-file` already needs; if it is
132
+ missing, `pip install "python-dotenv[cli]"`. Never `source`, `export` or
133
+ `cat` the file: the codes contain `&`, and the shell prints the pieces.
129
134
 
130
135
  Do not invent placeholder URIs. Start the quickstart only once `NWC_URI` is
131
136
  saved and `LSC_URI_PRIMARY` is saved or explicitly declined. The first boot
@@ -133,8 +138,9 @@ runs the receive-only preflight: if it reports spend methods such as
133
138
  `pay_invoice`, remove `NWC_URI` from `.env` and ask for a receive-only code
134
139
  again. Never set the spend-capable override to get past it.
135
140
 
136
- After the router is wired, run `openreceive doctor --app <module>:app`. It
137
- reports `NWC_URI` presence without printing it, probes the wallet, and names
141
+ After the router is wired, run
142
+ `dotenv -f .env run -- openreceive doctor --app <module>:app`. It reports
143
+ `NWC_URI` presence without printing it, probes the wallet, and names
138
144
  any hook still on a placeholder and whether the migration ran. Exit code 1 is a
139
145
  finding to fix, not a reason to skip the check.
140
146
 
@@ -152,7 +158,8 @@ Only then start the quickstart.
152
158
  ## After the quickstart — hand over, then stop
153
159
 
154
160
  The quickstart is done when
155
- `openreceive doctor --app <module>:app --url <app url>` is clean and this app
161
+ `dotenv -f .env run -- openreceive doctor --app <module>:app --url <app url>`
162
+ is clean and this app
156
163
  serves the checkout page for one of its orders. Doctor names any failed check
157
164
  and exits nonzero; fix it before going on.
158
165
 
@@ -383,6 +390,7 @@ enough; drop the `.md` for the same page a person would read.
383
390
  - https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
384
391
  - https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
385
392
  - https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
393
+ - https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
386
394
  - https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
387
395
  - https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
388
396
  - https://openreceive.org/guides/headless-checkout.md — the controller, the display models, refunds
@@ -658,8 +666,13 @@ send it after commit.
658
666
 
659
667
  A page without a bundler renders the same checkout as a custom element:
660
668
  `<openreceive-checkout reference="…" prefix="/openreceive">` from
661
- `@openreceive/elements`. You can also serve its standalone build from your
662
- static directory.
669
+ `@openreceive/elements`. For Jinja templates without a JavaScript build, serve
670
+ its standalone build from your static directory: copy
671
+ `openreceive-checkout.js` and `openreceive-checkout.css` from
672
+ `node_modules/@openreceive/elements/dist/standalone/` to `static/openreceive/`,
673
+ and load both on the checkout page. The `openreceive` package from PyPI carries
674
+ the same two files in `openreceive/django/static/openreceive/`, so you can copy
675
+ them from there without npm.
663
676
 
664
677
  Buy a Button is a runnable illustration of the boundary
665
678
  (`examples/buttons/server/fastapi`).
@@ -671,9 +684,16 @@ shape onto the models in THIS app.
671
684
  ### 6. Verify
672
685
 
673
686
  ```sh
674
- openreceive doctor --app main:app
687
+ dotenv -f .env run -- openreceive doctor --app main:app
675
688
  ```
676
689
 
690
+ Doctor reads the process environment. `dotenv -f .env run --` loads `.env`
691
+ into it, as `uvicorn --env-file .env` does for the server. The `dotenv`
692
+ command comes with python-dotenv, which `uvicorn --env-file` needs anyway; if
693
+ it is missing, run `pip install "python-dotenv[cli]"`. Never `source` or
694
+ `export` `.env` in a shell: the codes contain `&`, and the shell splits the
695
+ line and prints the pieces.
696
+
677
697
  `openreceive doctor` checks Python, `NWC_URI`, and swap-provider
678
698
  configuration. It also probes the wallet relay to confirm the code is
679
699
  receive-only. With `--app module:attr` (your FastAPI app, the router, or an
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastify/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Fastify application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the packages are on npm, and
@@ -372,6 +372,7 @@ enough; drop the `.md` for the same page a person would read.
372
372
  - https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
373
373
  - https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
374
374
  - https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
375
+ - https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
375
376
  - https://openreceive.org/guides/node-orms.md — recipes for Prisma, Drizzle, Knex, TypeORM, Sequelize
376
377
  - https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
377
378
  - https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/laravel/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Laravel application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the package is on Packagist
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (Lovable)
4
4
 
5
5
  ```text
6
- READ THIS FIRST: this file is 25 KB and a summary drops required steps. Read all of it:
6
+ READ THIS FIRST: this file is 26 KB and a summary drops required steps. Read all of it:
7
7
  https://openreceive.org/agent-directions/lovable/full.md
8
8
  If your fetch tool gave you a summary, fetch that URL again for the full text.
9
9
  ```
@@ -17,7 +17,7 @@ If your fetch tool gave you a summary, fetch that URL again for the full text.
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start Step 1 only once NWC_URI is saved, and LSC_URI_PRIMARY is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to this Lovable app: a TanStack Start app on Cloudflare
23
23
  Workers, with Lovable Cloud or a connected Supabase project as its database.
@@ -117,7 +117,7 @@ saved or explicitly declined.
117
117
 
118
118
  ## Step 1 — the packages
119
119
 
120
- Add `@openreceive/http` and `@openreceive/react` at 0.4.23 or newer.
120
+ Add `@openreceive/http` and `@openreceive/react` at 0.4.24 or newer.
121
121
  Nothing else: no `pg`, no Postgres driver, no OpenReceive scaffold. Do not
122
122
  change the Vite or Wrangler configuration.
123
123
 
@@ -148,9 +148,12 @@ every settlement.
148
148
  `crypto.randomUUID()` (HttpOnly, Secure, SameSite=Lax, path `/`, one
149
149
  year) with `getCookie` and `setCookie` from `@tanstack/react-start/server`,
150
150
  then inserts the order with `buyer_token` set to it through `supabaseAdmin`
151
- from `@/integrations/supabase/client.server`, and returns the id. If the app
152
- creates orders in the browser today, move that insert into this function.
153
- Keep the order's user column too, if the app has sign-in.
151
+ from `@/integrations/supabase/client.server`, and returns the id. Keep the
152
+ app's order flow as it is: where it creates orders on the server today (a
153
+ server route a form posts to, or another server function), call this
154
+ function there, and keep those routes, forms and redirects working. If the
155
+ app creates orders in the browser today, move that insert into this
156
+ function. Keep the order's user column too, if the app has sign-in.
154
157
  - **The order is unpaid or paid.** Do not copy attempt statuses (`pending`,
155
158
  `expired`, `failed`, `attention`) onto it, and do not add a relation to
156
159
  `openreceive_payments`.
@@ -408,7 +411,7 @@ idempotent. See Payment storage.
408
411
 
409
412
  On Supabase the route keeps payments in your Supabase database through its
410
413
  HTTPS API, with the project's secret key. There is no `pg` pool. Use
411
- `@openreceive/*` 0.4.23 or newer:
414
+ `@openreceive/*` 0.4.24 or newer:
412
415
 
413
416
  ```sh
414
417
  npm install @openreceive/http @openreceive/react
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/next/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Next.js App Router application — the app you are already
23
23
  working in. You do not need a copy of the OpenReceive source: the packages are
@@ -378,6 +378,7 @@ enough; drop the `.md` for the same page a person would read.
378
378
  - https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
379
379
  - https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
380
380
  - https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
381
+ - https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
381
382
  - https://openreceive.org/guides/node-orms.md — recipes for Prisma, Drizzle, Knex, TypeORM, Sequelize
382
383
  - https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
383
384
  - https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/node/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Node application — the app you are already working in. You
23
23
  do not need a copy of the OpenReceive source: the packages are on npm, and the
@@ -368,6 +368,7 @@ enough; drop the `.md` for the same page a person would read.
368
368
  - https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
369
369
  - https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
370
370
  - https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
371
+ - https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
371
372
  - https://openreceive.org/guides/node-orms.md — recipes for Prisma, Drizzle, Knex, TypeORM, Sequelize
372
373
  - https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
373
374
  - https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/php/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a PHP application — the app you are already working in. You
23
23
  do not need a copy of the OpenReceive source: the engine is on Packagist
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/rails/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Add OpenReceive to a Rails application — the app you are already working in. You
23
23
  do not need a copy of the OpenReceive source: the gem is on RubyGems, the
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/woocommerce/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Setup is done only when the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.23.
20
+ These directions describe OpenReceive 0.4.24.
21
21
 
22
22
  Install and configure the OpenReceive payment gateway in the WooCommerce store
23
23
  you are working in. Preserve its theme, checkout, customer accounts, order
@@ -95,7 +95,7 @@ is saved or the user said "Bitcoin only". Never invent a placeholder code.
95
95
  Install this release from the WordPress.org plugin directory:
96
96
 
97
97
  ```sh
98
- wp plugin install openreceive --version=0.4.23 --activate
98
+ wp plugin install openreceive --version=0.4.24 --activate
99
99
  ```
100
100
 
101
101
  If that fails because WordPress.org does not have this version yet, install
@@ -103,7 +103,7 @@ the ZIP attached to the same GitHub release. Never install the GitHub
103
103
  source-code ZIP or a ZIP from an older release:
104
104
 
105
105
  ```sh
106
- wp plugin install https://github.com/OpenReceive/openreceive/releases/download/v0.4.23/openreceive-wordpress-0.4.23.zip --activate
106
+ wp plugin install https://github.com/OpenReceive/openreceive/releases/download/v0.4.24/openreceive-wordpress-0.4.24.zip --activate
107
107
  ```
108
108
 
109
109
  It needs WooCommerce active, and PHP 8.2+ with GMP and sodium in BOTH the web
@@ -252,7 +252,7 @@ database or application.
252
252
 
253
253
  Each GitHub release also attaches the same plugin as a ZIP, for a site that
254
254
  cannot reach WordPress.org or when WordPress.org does not list a release yet.
255
- Download [openreceive-wordpress-0.4.23.zip](https://github.com/OpenReceive/openreceive/releases/download/v0.4.23/openreceive-wordpress-0.4.23.zip)
255
+ Download [openreceive-wordpress-0.4.24.zip](https://github.com/OpenReceive/openreceive/releases/download/v0.4.24/openreceive-wordpress-0.4.24.zip)
256
256
  and install it through **Plugins → Add New → Upload Plugin**. Historical
257
257
  releases may lack this asset. If that exact URL returns 404, build the same tag
258
258
  below; never silently install an older ZIP. The GitHub source-code ZIP is not
@@ -262,7 +262,7 @@ GMP/sodium, Composer and WP-CLI:
262
262
  ```sh
263
263
  git clone https://github.com/OpenReceive/openreceive.git
264
264
  cd openreceive
265
- git checkout v0.4.23
265
+ git checkout v0.4.24
266
266
  npm ci
267
267
  npm run build:packages
268
268
  composer install --working-dir=packages/php/wordpress
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openreceive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.23
4
+ version: 0.4.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenReceive
@@ -67,11 +67,11 @@ files:
67
67
  - skills/integrate-openreceive/references/php.md
68
68
  - skills/integrate-openreceive/references/rails.md
69
69
  - skills/integrate-openreceive/references/woocommerce.md
70
- homepage: https://openreceive.org
70
+ homepage: https://openreceive.org/integrations/rails
71
71
  licenses:
72
72
  - MIT
73
73
  metadata:
74
- homepage_uri: https://openreceive.org
74
+ homepage_uri: https://openreceive.org/integrations/rails
75
75
  source_code_uri: https://github.com/openreceive/openreceive
76
76
  changelog_uri: https://github.com/openreceive/openreceive/blob/master/packages/ruby/openreceive/CHANGELOG.md
77
77
  bug_tracker_uri: https://github.com/openreceive/openreceive/issues