quonfig-openfeature 0.0.5 → 0.0.7

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: fa87b5af665b9d6e902e11b4f5de5e24f906ecd5735dbbf358515234e721791d
4
- data.tar.gz: 757082a137f3100fd5df2dc14d36decc643ff9cac1b99b4fffcc07f26564b5eb
3
+ metadata.gz: 36f41778142500638c95acd53e753e1d1ff4b33ab8ef34438b54d2261dcc5d5f
4
+ data.tar.gz: cb71a68a50a9bd3fc09bfe83b0b13125c9d571343b655fc07982048803a3d754
5
5
  SHA512:
6
- metadata.gz: bcbe4750fb066acd5c2a4814b9f7ce92d04f26fcbc4e93ba19d7ef2fc0d7f53d06d64c87d70517fc1ce4c4b3edd850af9a4ccc9a3999ea41f6fce9a681c1f1fd
7
- data.tar.gz: 3bab2f045e9c4797bfb0acf2a5e7091352b7a92a860d4fa49dde09c51a9fe6b68f5ffef32ea45066f43dc09b1604d7808b1d9dbfbbf8a45903ac1c538eeef332
6
+ metadata.gz: e59756be3d86a0694086cf585d5e3c5126179e5116f72804f80ecf79d548dee2843d53761eb59e5090d706175004f1770f5fb9c954d54794ce37fea2de81e171
7
+ data.tar.gz: 9cb3224d767dd5d0bb3a70064d436ea595e0f6a24f7cc2936c228b943cef010b409547fdb1ef384a378752a9a32a6e3a5b4bf4ce36dba0b3dfe16ffffc3306fb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.7 - 2026-05-15
4
+
5
+ - **Chore: bump `quonfig` runtime floor to `>= 0.0.16` (qfg-35sm + four post-review hardening fixes).** The 0.0.16 release of the native Ruby SDK replaces `ld-eventsource` entirely with an SDK-owned SSE reconnect loop and lands four post-review hardening fixes: `Thread#raise` containment via `handle_interrupt` (qfg-tj18), `on_envelope` callback isolation so a buggy listener can't cause reconnect storms (qfg-m3lk), 401/403/404 terminal-error classification so bad SDK keys stop hammering api-delivery-sse (qfg-i5xv), and a `Process._fork` hook so SSE auto-restarts in Puma/Unicorn workers without manual `on_worker_boot` wiring (qfg-ryov). Provider code is unchanged — all four improvements live in the SDK's SSE delivery path and fork lifecycle. Tightening the floor signals this provider is tested against and requires the production-hardened SDK.
6
+
7
+ ## 0.0.6 - 2026-05-15
8
+
9
+ - **Chore: bump `quonfig` runtime floor to `>= 0.0.15` (qfg-ie49).** The 0.0.15 release of the native Ruby SDK fixes how `restart_total` (Layer 1 SSE) is counted under clean-FIN reconnects and hardens the reconnect-counting logger wrapper against worker-thread death. Provider code is unchanged — the fix is in the SDK's SSE delivery path. Tightening the floor signals this provider is tested against and requires the fixed SDK so downstream installs of the OpenFeature provider can't pull in an SSE-restart-buggy SDK.
10
+
3
11
  ## 0.0.5 - 2026-05-07
4
12
 
5
13
  - **Chore: bump `quonfig` runtime floor to `>= 0.0.13` (qfg-7jnb.11).** The 0.0.13 release of the native Ruby SDK adds support for the `IS_PRESENT` and `IS_NOT_PRESENT` targeting operators (qfg-7jnb.6). Tightening the floor signals that this provider is tested against and requires the new SDK; downstream Bundler resolutions already on `>= 0.0.12` would have picked up 0.0.13 automatically, but the explicit floor prevents a stale install from masking missing-operator behaviour.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.7
@@ -145,21 +145,29 @@ module Quonfig
145
145
  # the SDK consumes. The Quonfig SDK's *_details methods don't raise, so
146
146
  # this is a pure mapping layer.
147
147
  def to_resolution(details, default_value)
148
+ variant = details.variant
149
+ flag_metadata = details.flag_metadata || {}
148
150
  case details.reason
149
151
  when ::Quonfig::EvaluationDetails::REASON_STATIC
150
- ResolutionDetails.new(value: details.value, reason: Reason::STATIC)
152
+ ResolutionDetails.new(value: details.value, reason: Reason::STATIC,
153
+ variant: variant, flag_metadata: flag_metadata)
151
154
  when ::Quonfig::EvaluationDetails::REASON_TARGETING_MATCH
152
- ResolutionDetails.new(value: details.value, reason: Reason::TARGETING_MATCH)
155
+ ResolutionDetails.new(value: details.value, reason: Reason::TARGETING_MATCH,
156
+ variant: variant, flag_metadata: flag_metadata)
153
157
  when ::Quonfig::EvaluationDetails::REASON_SPLIT
154
- ResolutionDetails.new(value: details.value, reason: Reason::SPLIT)
158
+ ResolutionDetails.new(value: details.value, reason: Reason::SPLIT,
159
+ variant: variant, flag_metadata: flag_metadata)
155
160
  when ::Quonfig::EvaluationDetails::REASON_DEFAULT
156
- ResolutionDetails.new(value: default_value, reason: Reason::DEFAULT)
161
+ ResolutionDetails.new(value: default_value, reason: Reason::DEFAULT,
162
+ variant: variant, flag_metadata: flag_metadata)
157
163
  when ::Quonfig::EvaluationDetails::REASON_ERROR
158
164
  ResolutionDetails.new(
159
165
  value: default_value,
160
166
  reason: Reason::ERROR,
161
167
  error_code: map_error_code(details.error_code),
162
- error_message: details.error_message
168
+ error_message: details.error_message,
169
+ variant: variant,
170
+ flag_metadata: flag_metadata
163
171
  )
164
172
  else
165
173
  # Defensive default: surface as ERROR so unknown reasons don't
@@ -168,7 +176,9 @@ module Quonfig
168
176
  value: default_value,
169
177
  reason: Reason::ERROR,
170
178
  error_code: ErrorCode::GENERAL,
171
- error_message: "unknown reason: #{details.reason.inspect}"
179
+ error_message: "unknown reason: #{details.reason.inspect}",
180
+ variant: variant,
181
+ flag_metadata: flag_metadata
172
182
  )
173
183
  end
174
184
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quonfig-openfeature
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-08 00:00:00.000000000 Z
11
+ date: 2026-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openfeature-sdk
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.13
33
+ version: 0.0.16
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.13
40
+ version: 0.0.16
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement