openreceive-rails 0.4.23 → 0.4.25
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 +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +2 -0
- data/app/models/open_receive_meta.rb +9 -1
- data/lib/openreceive/rails/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2a9b3a9a1defa5d75a860f9871c92f9b30e442db9a78933e6c1c6ac1335f4282
|
|
4
|
+
data.tar.gz: 12e620ec2f21624bfe02ee21accf46a8aa20aaf750ed7ef44b42b757d4e2f9c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f92dd48e46ada6f2e24f7a4b640aeea2b30d24a500fdfc3570d26e4550b72c3951148b34faa6d0a1e2848185dd5a5aa90ae30a7224250e6549e63080b7cf1a90
|
|
7
|
+
data.tar.gz: 972899e0cc861d98abbd796fbc8712d84a3ff40e239f16602753f5e86f552a684b3be85fa3fcde9743be71419bd8df9a69951b2a639f86fed737c3b9cc726765
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.25 - 2026-10-13
|
|
4
|
+
|
|
5
|
+
Release with the complete 0.4.25 package family. The reconcile gate's
|
|
6
|
+
interval now also runs from the end of the last pass, not only from its
|
|
7
|
+
claim, as in every other engine. A pass slower than the interval used to
|
|
8
|
+
leave the gate open when it ended, so each request in a checkout's burst of
|
|
9
|
+
status checks ran a wallet scan of its own. The gate row stores
|
|
10
|
+
`finished_at`; older engines sharing the table ignore it. The bundled agent
|
|
11
|
+
skill adds directions for Flask and NestJS, and every server stack's
|
|
12
|
+
directions link the new guide for mobile apps.
|
|
13
|
+
|
|
14
|
+
## 0.4.24 - 2026-10-12
|
|
15
|
+
|
|
16
|
+
Release with the complete 0.4.24 package family. The gem's registry page
|
|
17
|
+
now links openreceive.org's Rails page, and its documentation link is the
|
|
18
|
+
Rails quickstart there. The bundled agent skill's Lovable directions need
|
|
19
|
+
`@openreceive/*` 0.4.24, whose Supabase functions no longer hang when two
|
|
20
|
+
requests write one order, and keep the app's own order flow. Its FastAPI directions run doctor through `dotenv run` and never
|
|
21
|
+
load `.env` into the shell, and the Node, Next.js, Fastify, FastAPI and Django
|
|
22
|
+
directions link the serverless guide. No Ruby runtime changes from 0.4.23.
|
|
23
|
+
|
|
3
24
|
## 0.4.23 - 2026-10-11
|
|
4
25
|
|
|
5
26
|
Release with the complete 0.4.23 package family. The bundled agent skill adds
|
data/README.md
CHANGED
|
@@ -7,6 +7,8 @@ and sends payments directly to a wallet you control. Mount the engine, connect
|
|
|
7
7
|
a receive-only Nostr Wallet Connect (NWC) wallet, and connect three hooks:
|
|
8
8
|
authorize a request, look up the order amount, and handle a settled payment.
|
|
9
9
|
|
|
10
|
+
Docs and setup: [openreceive.org/integrations/rails](https://openreceive.org/integrations/rails)
|
|
11
|
+
|
|
10
12
|
OpenReceive supports optional swaps from **USDT, USDC, SOL, and ETH** through
|
|
11
13
|
a configured swap provider. The provider converts the payment to **BTC over
|
|
12
14
|
Lightning**, which settles into the merchant's connected wallet. Available
|
|
@@ -79,6 +79,11 @@ class OpenReceiveMeta < ActiveRecord::Base
|
|
|
79
79
|
current = parse_gate(row&.value)
|
|
80
80
|
claimed = current["claimed_at"]
|
|
81
81
|
return nil if claimed && fresh_timestamp?(now, claimed, interval_seconds)
|
|
82
|
+
# The interval also runs from the end of the last pass. A pass that takes
|
|
83
|
+
# longer than the interval would otherwise leave the gate open on release,
|
|
84
|
+
# and every sequential request after it would pay a full scan of its own.
|
|
85
|
+
finished = current["finished_at"]
|
|
86
|
+
return nil if finished && fresh_timestamp?(now, finished, interval_seconds)
|
|
82
87
|
return nil if current.fetch("lease_until", 0) > now && current.fetch("claimed_at", 0) <= now + 60
|
|
83
88
|
|
|
84
89
|
gate = {
|
|
@@ -105,7 +110,10 @@ class OpenReceiveMeta < ActiveRecord::Base
|
|
|
105
110
|
raise ArgumentError, "Reconciliation checkpoint exceeded bounded cohorts" if windows.length > 2 || windows.any? { |w| w.fetch("attempts").length > 200 }
|
|
106
111
|
|
|
107
112
|
gate["scheduler"] = scheduler
|
|
108
|
-
|
|
113
|
+
if release
|
|
114
|
+
gate["lease_until"] = 0
|
|
115
|
+
gate["finished_at"] = Integer(now)
|
|
116
|
+
end
|
|
109
117
|
encoded = JSON.generate(gate)
|
|
110
118
|
raise ArgumentError, "Reconciliation checkpoint exceeded 128 KiB" if encoded.bytesize > 128 * 1024
|
|
111
119
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openreceive-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.25
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenReceive
|
|
@@ -15,28 +15,28 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.4.
|
|
18
|
+
version: 0.4.25
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.4.
|
|
25
|
+
version: 0.4.25
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: openreceive-server
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.4.
|
|
32
|
+
version: 0.4.25
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.4.
|
|
39
|
+
version: 0.4.25
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: rails
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -126,15 +126,15 @@ files:
|
|
|
126
126
|
- lib/openreceive/reconcile_scan.rb
|
|
127
127
|
- lib/rails/commands/openreceive/openreceive_command.rb
|
|
128
128
|
- lib/tasks/openreceive.rake
|
|
129
|
-
homepage: https://openreceive.org
|
|
129
|
+
homepage: https://openreceive.org/integrations/rails
|
|
130
130
|
licenses:
|
|
131
131
|
- MIT
|
|
132
132
|
metadata:
|
|
133
|
-
homepage_uri: https://openreceive.org
|
|
133
|
+
homepage_uri: https://openreceive.org/integrations/rails
|
|
134
134
|
source_code_uri: https://github.com/openreceive/openreceive
|
|
135
135
|
changelog_uri: https://github.com/openreceive/openreceive/blob/master/packages/ruby/openreceive-rails/CHANGELOG.md
|
|
136
136
|
bug_tracker_uri: https://github.com/openreceive/openreceive/issues
|
|
137
|
-
documentation_uri: https://
|
|
137
|
+
documentation_uri: https://openreceive.org/guides/quickstart-rails
|
|
138
138
|
rubygems_mfa_required: 'true'
|
|
139
139
|
rdoc_options: []
|
|
140
140
|
require_paths:
|